class EcsDeployCli::Runners::Validate
Public Instance Methods
run!()
click to toggle source
# File lib/ecs_deploy_cli/runners/validate.rb, line 6 def run! services, _, crons = @parser.resolve validate_cluster! validate_services!(services) validate_crons!(crons) end
Private Instance Methods
validate_cluster!()
click to toggle source
# File lib/ecs_deploy_cli/runners/validate.rb, line 16 def validate_cluster! data = ecs_client.describe_clusters(clusters: [config[:cluster]]) raise "No such cluster #{config[:cluster]}." if data.to_h[:failures]&.any? || data.to_h[:clusters].length == 0 rescue Aws::ECS::Errors::ClusterNotFoundException raise "No such cluster #{config[:cluster]}." end
validate_crons!(crons)
click to toggle source
# File lib/ecs_deploy_cli/runners/validate.rb, line 32 def validate_crons!(crons) crons&.each do |cron_name, _| items = cwe_client.list_targets_by_rule( { rule: cron_name, limit: 1 } ) raise "No such cron #{cron_name}." if items.targets.empty? rescue Aws::CloudWatchEvents::Errors::ResourceNotFoundException raise "No such cron #{cron_name}." end end
validate_services!(services)
click to toggle source
# File lib/ecs_deploy_cli/runners/validate.rb, line 24 def validate_services!(services) services&.each do |service_name, _| data = ecs_client.describe_services(cluster: config[:cluster], services: [service_name]) raise "No such service #{service_name}." if data.to_h[:failures]&.any? || data.to_h[:services].length == 0 end end