Sha256: d24da533c7ec73293cfaa2c018a93a71e8c1209ad67415854bfe4132cec4e3da

Contents?: true

Size: 794 Bytes

Versions: 4

Compression:

Stored size: 794 Bytes

Contents

class AwsInventory::Ecs::Service < AwsInventory::Base
  def header
    ["Service", "Cluster", "Running Tasks"]
  end

  def data
    ecs_services.map do |service|
      [
        service.service_name,
        cluster_name(service.cluster_arn),
        service.running_count,
      ]
    end
  end

  def cluster_name(cluster_arn)
    resp = ecs.describe_clusters(clusters: [cluster_arn]) # cluster takes name or ARN
    resp.clusters.first.cluster_name
  end

  def ecs_services
    cluster_arns = ecs.list_clusters.cluster_arns
    @ecs_services ||= cluster_arns.map do |cluster_arn|
        service_arns = ecs.list_services(cluster: cluster_arn).service_arns
        resp = ecs.describe_services(services: service_arns, cluster: cluster_arn)
        resp.services
      end.flatten
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
aws-inventory-0.4.5 lib/aws_inventory/ecs/service.rb
aws-inventory-0.4.3 lib/aws_inventory/ecs/service.rb
aws-inventory-0.4.2 lib/aws_inventory/ecs/service.rb
aws-inventory-0.4.0 lib/aws_inventory/ecs/service.rb