mikoshi 0.2.1 → 0.3.0

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: a78590a8807358c4ba28fae1dc1368ad7abc5738
4
- data.tar.gz: e621c2727414da2e6068c2655bb9c5dc35a9e927
3
+ metadata.gz: 66ad04d55f747d3091c3cd1f31a223864561eaea
4
+ data.tar.gz: 15f22a4a24d5e8cbbb5b10689676a6bcb3571966
5
5
  SHA512:
6
- metadata.gz: 408dfd6af42bab61164d4d593162880bcfc946b08585867cfda89599a0fb27ab397d374726228f059259f3d9c2c6dccb8041fb2ad5fb5b7821b9ecf63ddce288
7
- data.tar.gz: c08270d8c4c0a5a25e36195321bb50850a35afc6e2e9076c518502f33a6e232fa5782b60a1fa4a396fb9ff975715a3e11c29ec5c1ff9a493803d5ed6b9ac9287
6
+ metadata.gz: 2b9ff8154a87ff40e3039e625b2612362733f8f132d4d580b8ffdb356feb24f42b4df03df0d4ecdf54ed993695df88eecf5848e8e7ad7bf44eb3efbe37db3b18
7
+ data.tar.gz: c793828dfc4816c89900db56f442661329064827736b9583fef1e9e840f225d87c5c02b8d0debd47364955124a222348d2a3c9bb881764e7c461a53ba8514c81
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # Mikoshi
2
2
  [![Build Status](https://travis-ci.org/unasuke/mikoshi.svg?branch=master)](https://travis-ci.org/unasuke/mikoshi)
3
- [![codecov](https://codecov.io/gh/unasuke/mikoshi/branch/master/graph/badge.svg)](https://codecov.io/gh/unasuke/mikoshi)
3
+ [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/71ceb38e09ab4a319e54a2964725f16a)](https://www.codacy.com/app/unasuke/mikoshi?utm_source=github.com&utm_medium=referral&utm_content=unasuke/mikoshi&utm_campaign=Badge_Coverage)
4
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/71ceb38e09ab4a319e54a2964725f16a)](https://www.codacy.com/app/unasuke/mikoshi?utm_source=github.com&utm_medium=referral&utm_content=unasuke/mikoshi&utm_campaign=Badge_Grade)
5
+ [![Gem downloads](https://img.shields.io/gem/dtv/mikoshi.svg)]()
6
+ [![Gem version](https://img.shields.io/gem/v/mikoshi.svg)]()
4
7
 
5
8
  This gem is tool to deploy ECS task definition and service with described by yaml documents.
6
9
 
@@ -22,37 +22,32 @@ module Mikoshi
22
22
  invoke_before_create_hooks
23
23
 
24
24
  @client.create_service(@data[:service].except(:service))
25
+ wait_until_services_stable
26
+
27
+ invoke_after_create_hooks
25
28
  end
26
29
 
27
30
  def update_service
28
31
  invoke_before_update_hooks
29
32
 
30
33
  @client.update_service(@data[:service].except(:service_name, :placement_strategy, :placement_constraints))
34
+ wait_until_services_stable
35
+
36
+ invoke_after_update_hooks
31
37
  end
32
38
 
33
39
  def deploy_service(message: false)
40
+ @message = message
41
+
34
42
  case operation
35
43
  when :create
36
44
  create_service
37
45
  when :update
38
46
  update_service
39
47
  end
40
-
41
- @client.wait_until(:services_stable, cluster: @data[:service][:cluster], services: [@data[:service][:service]]) do |w|
42
- w.max_attempts = 30
43
- w.delay = 10
44
-
45
- w.before_wait do
46
- puts 'Waiting to change status of service...' if message
47
- end
48
- end
49
-
50
- case operation
51
- when :create
52
- invoke_after_create_hooks
53
- when :update
54
- invoke_after_update_hooks
55
- end
48
+ rescue => e
49
+ invoke_failed_hooks
50
+ raise e
56
51
  end
57
52
 
58
53
  private
@@ -72,6 +67,19 @@ module Mikoshi
72
67
  end
73
68
  end
74
69
 
70
+ def wait_until_services_stable
71
+ params = { cluster: @data[:service][:cluster], services: [@data[:service][:service]] }
72
+
73
+ @client.wait_until(:services_stable, params) do |w|
74
+ w.max_attempts = 30
75
+ w.delay = 10
76
+
77
+ w.before_wait do
78
+ puts 'Waiting to change status of service...' if @message
79
+ end
80
+ end
81
+ end
82
+
75
83
  %w[before after].each do |step|
76
84
  %w[create update].each do |func|
77
85
  define_method "invoke_#{step}_#{func}_hooks" do
@@ -79,6 +87,9 @@ module Mikoshi
79
87
  end
80
88
  end
81
89
  end
90
+ def invoke_failed_hooks
91
+ invoke_hooks(@data[:hooks][:failed]) unless @data.dig(:hooks, :failed).nil?
92
+ end
82
93
  end
83
94
  end
84
95
  end
@@ -18,6 +18,9 @@ module Mikoshi
18
18
  invoke_after_register_hooks
19
19
 
20
20
  resp
21
+ rescue => e
22
+ invoke_failed_hooks
23
+ raise e
21
24
  end
22
25
 
23
26
  private
@@ -27,6 +30,9 @@ module Mikoshi
27
30
  invoke_hooks @data[:hooks]["#{step}_register".to_sym] unless @data.dig(:hooks, "#{step}_register".to_sym).nil?
28
31
  end
29
32
  end
33
+ def invoke_failed_hooks
34
+ invoke_hooks(@data[:hooks][:failed]) unless @data.dig(:hooks, :failed).nil?
35
+ end
30
36
  end
31
37
  end
32
38
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mikoshi
4
- VERSION = '0.2.1'
4
+ VERSION = '0.3.0'
5
5
  end
data/mikoshi.gemspec CHANGED
@@ -30,10 +30,9 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'thor'
31
31
 
32
32
  spec.add_development_dependency 'bundler', '~> 1.14'
33
- spec.add_development_dependency 'codecov'
33
+ spec.add_development_dependency 'codacy-coverage'
34
34
  spec.add_development_dependency 'rake', '~> 10.0'
35
35
  spec.add_development_dependency 'rspec'
36
- spec.add_development_dependency 'simplecov'
37
36
  spec.add_development_dependency 'unasukecop'
38
37
  spec.add_development_dependency 'pry'
39
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mikoshi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yusuke Nakamura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-29 00:00:00.000000000 Z
11
+ date: 2017-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.14'
69
69
  - !ruby/object:Gem::Dependency
70
- name: codecov
70
+ name: codacy-coverage
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -108,20 +108,6 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: simplecov
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: unasukecop
127
113
  requirement: !ruby/object:Gem::Requirement