hako 0.20.0 → 0.20.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: 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