MCPcopy Create free account
hub / github.com/BishopFox/cloudfox / getECSWorkloadsPerRegion

Method getECSWorkloadsPerRegion

aws/workloads.go:370–423  ·  view source on GitHub ↗
(r string, wg *sync.WaitGroup, semaphore chan struct{}, dataReceiver chan Workload)

Source from the content-addressed store, hash-verified

368}
369
370func (m *WorkloadsModule) getECSWorkloadsPerRegion(r string, wg *sync.WaitGroup, semaphore chan struct{}, dataReceiver chan Workload) {
371 defer func() {
372 m.CommandCounter.DecrExecuting()
373 m.CommandCounter.IncrComplete()
374 wg.Done()
375
376 }()
377 semaphore <- struct{}{}
378 defer func() {
379 <-semaphore
380 }()
381
382 // Get ECS clusters
383 ecsClusters, err := sdk.CachedECSListClusters(m.ECSClient, aws.ToString(m.Caller.Account), r)
384 if err != nil {
385 m.modLog.Error(err)
386 }
387 for _, cluster := range ecsClusters {
388
389 // Get ECS tasks
390 taskARNs, err := sdk.CachedECSListTasks(m.ECSClient, aws.ToString(m.Caller.Account), r, cluster)
391 if err != nil {
392 m.modLog.Error(err)
393 }
394
395 Tasks, err := sdk.CachedECSDescribeTasks(m.ECSClient, aws.ToString(m.Caller.Account), r, cluster, taskARNs)
396 if err != nil {
397 m.modLog.Error(err.Error())
398 m.CommandCounter.IncrError()
399 return
400 }
401
402 for _, task := range Tasks {
403 var role string
404 // Get ECS task definition
405 ecsTaskDefinition, err := sdk.CachedECSDescribeTaskDefinition(m.ECSClient, aws.ToString(m.Caller.Account), r, aws.ToString(task.TaskDefinitionArn))
406 if err != nil {
407 m.modLog.Error(err)
408 }
409 if ecsTaskDefinition.TaskRoleArn != nil {
410 role = aws.ToString(ecsTaskDefinition.TaskRoleArn)
411 }
412
413 dataReceiver <- Workload{
414 AWSService: "ECS",
415 Region: r,
416 Type: "task",
417 Name: getNameFromARN(aws.ToString(task.TaskDefinitionArn)),
418 Arn: aws.ToString(task.TaskArn),
419 Role: role,
420 }
421 }
422 }
423}
424
425func (m *WorkloadsModule) getLambdaWorkloadsPerRegion(r string, wg *sync.WaitGroup, semaphore chan struct{}, dataReceiver chan Workload) {
426 defer func() {

Callers 1

executeChecksMethod · 0.95

Calls 9

CachedECSListClustersFunction · 0.92
CachedECSListTasksFunction · 0.92
CachedECSDescribeTasksFunction · 0.92
getNameFromARNFunction · 0.85
DecrExecutingMethod · 0.80
IncrCompleteMethod · 0.80
ErrorMethod · 0.80
IncrErrorMethod · 0.80

Tested by

no test coverage detected