hako 0.17.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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