(r string, wg *sync.WaitGroup, semaphore chan struct{}, dataReceiver chan Workload)
| 368 | } |
| 369 | |
| 370 | func (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 | |
| 425 | func (m *WorkloadsModule) getLambdaWorkloadsPerRegion(r string, wg *sync.WaitGroup, semaphore chan struct{}, dataReceiver chan Workload) { |
| 426 | defer func() { |
no test coverage detected