Sha256: 2818d6a0ae78af0be189b909b0df0c285b77c0f52aa00331a49c6313fd9647b6

Contents?: true

Size: 788 Bytes

Versions: 4

Compression:

Stored size: 788 Bytes

Contents

class Inventory::Ecs::Service < Inventory::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.3.2 lib/inventory/ecs/service.rb
aws-inventory-0.3.1 lib/inventory/ecs/service.rb
aws-inventory-0.3.0 lib/inventory/ecs/service.rb
aws-inventory-0.2.1 lib/inventory/ecs/service.rb