Sha256: cb251a5edb9389131ed68234a412f1d4b9b769e730bb45a5b70ca25212aca5b4
Contents?: true
Size: 1.33 KB
Versions: 7
Compression:
Stored size: 1.33 KB
Contents
require 'aws-sdk' require 'hollerback' require_relative './service' module Rollo module Model class ServiceCluster def initialize(ecs_cluster_name, region, ecs_resource = nil) @region = region @ecs_cluster_name = ecs_cluster_name @ecs_resource = ecs_resource || Aws::ECS::Resource.new(region: region) @ecs_cluster = get_ecs_cluster end def name @ecs_cluster_name end def replica_services get_ecs_service_arns .collect {|arn| Service.new(@ecs_cluster_name, arn, @region)} .select(&:is_replica?) end def with_replica_services(&block) all_replica_services = replica_services callbacks = Hollerback::Callbacks.new(block) callbacks.try_respond_with( :start, all_replica_services) all_replica_services.each do |service| callbacks.try_respond_with(:each_service, service) end end private def get_ecs_cluster @ecs_resource.client .describe_clusters(clusters: [@ecs_cluster_name]) .clusters[0] end def get_ecs_service_arns @ecs_resource.client .list_services(cluster: @ecs_cluster.cluster_name) .inject([]) {|arns, response| arns + response.service_arns} end end end end
Version data entries
7 entries across 7 versions & 1 rubygems