hako 0.20.0 → 0.20.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: 3dfc4cedaae2deaccaf4cc32a0f794470f74de82
4
- data.tar.gz: 46ede129bf2e3c7a89ce46bf62106e13c7e56b38
3
+ metadata.gz: a138ad34e8358e637424783db88022f2b3018fdd
4
+ data.tar.gz: 26643b7c4701669d9014cc15e0c9efaa6c6d4911
5
5
  SHA512:
6
- metadata.gz: 02d2c29d73ea3bd2eced9c916e6de1dffa8f0f3c38fb2f9e3dee672e2b1281f61ed9cf37984058a17361980abffe2045f284087fdc7b21173ee86258fa7aec54
7
- data.tar.gz: 723a2e83cc6ebf0825a7a4dc08803ed8aef02da28e6c4bb5e35c37885b52fd1060b62a7362e90b831ad527f824fc4d1a6090457949bc0683d0a80c8f3fe814fc
6
+ metadata.gz: 6ac024fb63476147ae026c12af7a60af5677e7c2978c5d7a42051fccd34e6a09da751ead807072f4ddf3891271e69849ea33187b01da86a9d88abb89dc5f3daa
7
+ data.tar.gz: 933b38fb37e3d364a835285903b470656e7fecbb6ea5d9dc7cb36807a93fe8350ec56e1243e142a4c1c54c2951adce03710c1216ed0a93f7f66860c06e5aa303
data/lib/hako/cli.rb CHANGED
@@ -12,6 +12,7 @@ module Hako
12
12
  show-yaml
13
13
  status
14
14
  remove
15
+ stop
15
16
  ].freeze
16
17
 
17
18
  def self.start(argv)
@@ -250,5 +251,33 @@ module Hako
250
251
  end
251
252
  end
252
253
  end
254
+
255
+ class Stop
256
+ def run(argv)
257
+ parse!(argv)
258
+ require 'hako/application'
259
+ require 'hako/commander'
260
+ Commander.new(Application.new(@yaml_path)).stop(dry_run: @dry_run)
261
+ end
262
+
263
+ def parse!(argv)
264
+ @dry_run = false
265
+ parser.parse!(argv)
266
+ @yaml_path = argv.first
267
+
268
+ if @yaml_path.nil?
269
+ puts parser.help
270
+ exit 1
271
+ end
272
+ end
273
+
274
+ def parser
275
+ @parser ||= OptionParser.new do |opts|
276
+ opts.banner = 'hako stop FILE'
277
+ opts.version = VERSION
278
+ opts.on('-n', '--dry-run', 'Enable dry-run mode') { @dry_run = true }
279
+ end
280
+ end
281
+ end
253
282
  end
254
283
  end
@@ -70,6 +70,10 @@ module Hako
70
70
  scripts.each(&:after_remove)
71
71
  end
72
72
 
73
+ def stop(dry_run:)
74
+ load_scheduler(@app.yaml['scheduler'], [], dry_run: dry_run).stop
75
+ end
76
+
73
77
  private
74
78
 
75
79
  TRAP_SIGNALS = %i[INT TERM].freeze
@@ -22,9 +22,11 @@ module Hako
22
22
  docker_labels
23
23
  cpu
24
24
  memory
25
+ memory_reservation
25
26
  links
26
27
  port_mappings
27
28
  command
29
+ user
28
30
  ].each do |name|
29
31
  define_method(name) do
30
32
  @definition[name]
@@ -42,6 +42,10 @@ module Hako
42
42
  raise NotImplementedError
43
43
  end
44
44
 
45
+ def stop
46
+ raise NotImplementedError
47
+ end
48
+
45
49
  private
46
50
 
47
51
  # @param [String] message
@@ -234,6 +234,21 @@ module Hako
234
234
  ecs_elb_client.destroy
235
235
  end
236
236
 
237
+ # @return [nil]
238
+ def stop
239
+ service = describe_service
240
+ if service
241
+ if @dry_run
242
+ Hako.logger.info("ecs_client.update_service(cluster: #{@cluster}, service: #{@app_id}, desired_count: 0)")
243
+ else
244
+ ecs_client.update_service(cluster: @cluster, service: @app_id, desired_count: 0)
245
+ Hako.logger.info("#{service.service_arn} is stopped")
246
+ end
247
+ else
248
+ puts "Service #{@app_id} doesn't exist"
249
+ end
250
+ end
251
+
237
252
  private
238
253
 
239
254
  # @return [Aws::ECS::Client]
@@ -428,6 +443,7 @@ module Hako
428
443
  image: container.image_tag,
429
444
  cpu: container.cpu,
430
445
  memory: container.memory,
446
+ memory_reservation: container.memory_reservation,
431
447
  links: container.links,
432
448
  port_mappings: container.port_mappings,
433
449
  essential: true,
@@ -436,6 +452,7 @@ module Hako
436
452
  mount_points: container.mount_points,
437
453
  command: container.command,
438
454
  volumes_from: container.volumes_from,
455
+ user: container.user,
439
456
  }
440
457
  end
441
458
 
@@ -7,7 +7,7 @@ module Hako
7
7
  @expected_container = expected_container
8
8
  end
9
9
 
10
- CONTAINER_KEYS = %i[image cpu memory links docker_labels].freeze
10
+ CONTAINER_KEYS = %i[image cpu memory memory_reservation links docker_labels user].freeze
11
11
  PORT_MAPPING_KEYS = %i[container_port host_port protocol].freeze
12
12
  ENVIRONMENT_KEYS = %i[name value].freeze
13
13
  MOUNT_POINT_KEYS = %i[source_volume container_path read_only].freeze
data/lib/hako/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hako
3
- VERSION = '0.20.0'
3
+ VERSION = '0.20.1'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.20.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kohei Suzuki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-06 00:00:00.000000000 Z
11
+ date: 2016-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk