hako 0.17.0 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee95e37d80652b4fab57fff012c2b40e0b8ee5d2
4
- data.tar.gz: 30ddde0b682e1dc63d1119c1de91c7bb2dc3dacf
3
+ metadata.gz: 1a1f4be2a7a0950001e3c6dbcbb4f76e88460b7b
4
+ data.tar.gz: d43f1b995730e81462c597377d03a7ccb3ce9e6d
5
5
  SHA512:
6
- metadata.gz: 59d03d5f2422b3fb21dcc20db36cc850a49ac6fab2af338b94db6946a6a0b01fa8d2ffdb2252a7e8b12be245de4899e391182d082d07a54d4e43ed150f8e2e6a
7
- data.tar.gz: d8cc1d44728b3c9a64287a9e82d6633fb24bca4ff3a638a1b540251d5df02d05dd3c4be0849c4d8c5ac0bfce6be5a5d5a06b54c95abcde33dc162a6af435bb92
6
+ metadata.gz: 1597c0176b534aec392c471f8aa51eb6eee9fcd608801a6e2f2d5ff68b96c36bf757d5685483b1faa010cda23cb229fe3fa89549da2a7eff59cacb692c1a6650
7
+ data.tar.gz: ddcc12d26dd752be52164fb862f410843fd21ab0ed03fa6431486fbe36805fd7ea0a989f075081cd65f732afc440b1afc2ed3f35afd5dde60d82ce6aed6bbfaf
@@ -211,6 +211,9 @@ module Hako
211
211
  ecs_client.delete_service(cluster: @cluster, service: @app_id)
212
212
  Hako.logger.info "#{service.service_arn} is deleted"
213
213
  end
214
+ if @autoscaling
215
+ @autoscaling.remove(service)
216
+ end
214
217
  else
215
218
  puts "Service #{@app_id} doesn't exist"
216
219
  end
@@ -22,7 +22,7 @@ module Hako
22
22
  # @param [Aws::ECS::Types::Service] service
23
23
  # @return [nil]
24
24
  def apply(service)
25
- resource_id = "service/#{service.cluster_arn.slice(%r{[^/]+\z}, 0)}/#{service.service_name}"
25
+ resource_id = service_resource_id(service)
26
26
  service_namespace = 'ecs'
27
27
  scalable_dimension = 'ecs:service:DesiredCount'
28
28
 
@@ -77,6 +77,24 @@ module Hako
77
77
  nil
78
78
  end
79
79
 
80
+ # @param [Aws::ECS::Types::Service] service
81
+ # @return [nil]
82
+ def remove(service)
83
+ resource_id = service_resource_id(service)
84
+ service_namespace = 'ecs'
85
+ scalable_dimension = 'ecs:service:DesiredCount'
86
+
87
+ Hako.logger.info("Deregister scalable target #{resource_id} and its policies")
88
+ unless @dry_run
89
+ begin
90
+ autoscaling_client.deregister_scalable_target(service_namespace: service_namespace, resource_id: resource_id, scalable_dimension: scalable_dimension)
91
+ rescue Aws::ApplicationAutoScaling::Errors::ObjectNotFoundException => e
92
+ Hako.logger.warn(e)
93
+ end
94
+ end
95
+ nil
96
+ end
97
+
80
98
  private
81
99
 
82
100
  # @param [Hash] options
@@ -96,6 +114,12 @@ module Hako
96
114
  @cw_client ||= Aws::CloudWatch::Client.new
97
115
  end
98
116
 
117
+ # @param [Aws::ECS::Types::Service] service
118
+ # @return [String]
119
+ def service_resource_id(service)
120
+ "service/#{service.cluster_arn.slice(%r{[^/]+\z}, 0)}/#{service.service_name}"
121
+ end
122
+
99
123
  class Policy
100
124
  attr_reader :alarms, :cooldown, :adjustment_type, :scaling_adjustment, :metric_interval_lower_bound, :metric_interval_upper_bound, :metric_aggregation_type
101
125
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hako
3
- VERSION = '0.17.0'
3
+ VERSION = '0.17.1'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kohei Suzuki