shards 2.1.6 → 2.2.1.pre.test

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: 84a189cde1dd20ee0c703592580ddccbca10bdc5
4
- data.tar.gz: bc439f40ae05dcdc97111c061933aa01da8e257a
3
+ metadata.gz: 11aaa88e5e9af9729d5b5554f54842bde6a885c0
4
+ data.tar.gz: 7373e2a508097075659ef1a1a644ed0947dc711a
5
5
  SHA512:
6
- metadata.gz: d7dcbd6cfdb02e578542507c18187aeb76f16292e48bae745311960fb79be9124d427ff4ce1943590bafb68ea67141064c746efbe96b37ba05973a744afb38cf
7
- data.tar.gz: 34676aa6982b0d2b532e7087815ab74d141f60d6ccab91f5b41aef3a158fe8a336ff1c228b022267e894bee95dbb18c6bfec424cbef11bdf11ca3392885665c5
6
+ metadata.gz: 035ae7f6ae76900c45e8c88d3e52b777d2a4021425cf88504c989af152c4496edd34a3a3fc5a0b8bc26d5470aee1fae5f26e74a0510f6ab205d54162509bcdd3
7
+ data.tar.gz: ed2206cf2f5fa7e56e00f7d23c55df784295b50280175685915c95805cdf6dde72596066f1c5b79401b0a0ec1a6833020ed135b609e6f64c27d92bfa80764841
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shards (2.1.6)
4
+ shards (2.2.1.pre.test)
5
5
  aws-sdk-ec2 (~> 1.48)
6
6
  aws-sdk-elasticloadbalancing (~> 1.5)
7
7
  aws-sdk-elasticloadbalancingv2 (~> 1.14)
@@ -74,7 +74,7 @@ shared_steps:
74
74
  dns_upsert:
75
75
  message: The dns record with the host %s has been succesfully created.
76
76
  wrong_message: Error. Could not register the host %s as a dns record.
77
- correct: finish
77
+ correct: finish_successfully
78
78
  wrong: finish
79
79
 
80
80
  clean_repo_and_exit:
@@ -84,6 +84,10 @@ shared_steps:
84
84
  finish:
85
85
  correct: final_step
86
86
 
87
+ finish_successfully:
88
+ message: The workflow finish successfully.
89
+ correct: finish
90
+
87
91
  ask_blank_db:
88
92
  # this step could be called or not after the write_yaml_files
89
93
  # to change the workflow dinamically call the methods
@@ -6,23 +6,21 @@ create_by_api:
6
6
  commit_changes:
7
7
  message: The changes has been committed and pushed to the remote repository.
8
8
  wrong_message: We had an issue to commit and push the changes.
9
- correct: finish
9
+ correct: finish_successfully
10
10
  wrong: finish
11
11
 
12
-
13
- correct_steps_summary:
14
- - validate_client
15
- - validate_domain
16
- - validate_location
17
- - validate_stage
18
- - check_shard_presence_in_shards
19
- - check_database_presence_in_server
20
- - check_domain_dns_presence
21
- - check_domain_presence_in_sites
22
- - write_yaml_files
23
- - create_database
24
- - commit_changes
25
- - finish
12
+ correct_steps_summary:
13
+ - validate_client
14
+ - validate_domain
15
+ - validate_location
16
+ - validate_stage
17
+ - check_shard_presence_in_shards
18
+ - check_database_presence_in_server
19
+ - check_domain_dns_presence
20
+ - check_domain_presence_in_sites
21
+ - write_yaml_files
22
+ - create_database
23
+ - commit_changes
26
24
 
27
25
 
28
26
  start: validate_client
@@ -47,7 +47,7 @@ delete_by_terminal:
47
47
  delete_database:
48
48
  wrong_message: The database %s could not be deleted.
49
49
  message: Database %s has been deleted.
50
- correct: finish
50
+ correct: finish_successfully
51
51
  wrong: finish
52
52
 
53
53
  start: validate_location
@@ -2,23 +2,28 @@
2
2
  # see shared_steps in base.yaml to find the steps not defined in a workflow
3
3
 
4
4
  fast_terminal:
5
+ all_steps_in_base:
6
+ - all steps are in base yaml
5
7
 
6
- correct_steps_summary:
7
- - validate_client
8
- - validate_domain
9
- - validate_location
10
- - validate_stage
11
- - check_shard_presence_in_shards
12
- - check_database_presence_in_server
13
- - check_domain_dns_presence
14
- - check_domain_presence_in_sites
15
- - write_yaml_files
16
- - create_database
17
- - commit_changes
18
- - check_fingerprints
19
- # It runs a puppet agent -t 3 times when the above check fails.
20
- - application_reload_shards_task
21
- - dns_upsert
22
- - finish
8
+ correct_steps_summary:
9
+ - validate_client
10
+ - validate_domain
11
+ - validate_location
12
+ - validate_stage
13
+ - check_shard_presence_in_shards
14
+ - check_database_presence_in_server
15
+ - check_domain_dns_presence
16
+ - check_domain_presence_in_sites
17
+ - write_yaml_files
18
+ - create_database
19
+ - commit_changes
20
+ - check_fingerprints
21
+ # Run a 3 times loop when the above check fails.
22
+ - loop_step
23
+ - puppet_agent_udate
24
+ - check_fingerprints
25
+ # finish loop
26
+ - application_reload_shards_task
27
+ - dns_upsert
23
28
 
24
29
  start: validate_client
@@ -0,0 +1,48 @@
1
+ ---
2
+ # see shared_steps in base.yaml to find the steps not defined in a workflow
3
+
4
+ fingerprints_by_api:
5
+
6
+ # import validate client domain location and stage from fingerprints terminal
7
+
8
+ check_fingerprints:
9
+ message: The yaml files have been updated correctly in server(s).
10
+ wrong_message: Fingerprints are not matching %s
11
+ correct: application_reload_shards_task
12
+ wrong: loop_step
13
+
14
+ application_reload_shards_task:
15
+ message: Reload task have been executed successfully.
16
+ wrong_message: Errors found in the reload task %s.
17
+ correct: dns_upsert
18
+ wrong: finish
19
+
20
+ puppet_agent_update:
21
+ message: Puppet has been executed successfully.
22
+ correct: check_fingerprints
23
+ wrong_message: Errors executing the puppet update % s
24
+ wrong: check_fingerprints
25
+
26
+ loop_step:
27
+ correct: puppet_agent_update
28
+ message: The step %s will be executed after wait %d seconds.
29
+ wrong: finish
30
+ wrong_message: This is the %dth loop. The maximun is (%d).
31
+ total_loops: 1
32
+ seconds_between_loop: 1
33
+
34
+ correct_steps_summary:
35
+ - validate_client
36
+ - validate_domain
37
+ - validate_location
38
+ - validate_stage
39
+ - check_fingerprints
40
+ # Run a 1 time loop when the above check fails.
41
+ - loop_step
42
+ - puppet_agent_udate
43
+ - check_fingerprints
44
+ # finish loop
45
+ - application_reload_shards_task
46
+ - dns_upsert
47
+
48
+ start: validate_client
@@ -0,0 +1,42 @@
1
+ ---
2
+ # see shared_steps in base.yaml to find the steps not defined in a workflow
3
+
4
+ fingerprints_terminal:
5
+
6
+ validate_client:
7
+ correct: validate_domain
8
+ wrong: finish
9
+ wrong_message: The client name %s.
10
+ min_size: 2
11
+
12
+ validate_domain:
13
+ correct: validate_location
14
+ wrong: finish
15
+ wrong_message: The domain %s.
16
+ min_size: 3
17
+ regex: ^[a-z0-9_]*$
18
+
19
+ validate_stage:
20
+ correct: check_fingerprints
21
+ wrong_message: Stage %s does not exist.
22
+ wrong: finish
23
+
24
+ validate_location:
25
+ correct: validate_stage
26
+ wrong_message: Location %s does not exist.
27
+ wrong: finish
28
+
29
+ correct_steps_summary:
30
+ - validate_client
31
+ - validate_domain
32
+ - validate_location
33
+ - validate_stage
34
+ - check_fingerprints
35
+ # Run a 3 times loop when the above check fails.
36
+ - loop_step # start the loop here
37
+ - puppet_agent_udate
38
+ - check_fingerprints # finish loop
39
+ - application_reload_shards_task
40
+ - dns_upsert
41
+
42
+ start: validate_client
data/lib/shards/client.rb CHANGED
@@ -20,9 +20,9 @@ module Shards
20
20
 
21
21
  def loop_fingerprint_check location, stage, client, domain
22
22
 
23
- fast_terminal=Shards::Workflow::FingerprintTerminal.new config
24
- fast_terminal.params= { client: client, domain: domain, location: location.downcase, stage: stage }
25
- fast_terminal.start
23
+ terminal=Shards::Workflow::FingerprintsTerminal.new config
24
+ terminal.params= { client: client, domain: domain, location: location.downcase, stage: stage }
25
+ terminal.start
26
26
 
27
27
  end
28
28
 
@@ -1,3 +1,3 @@
1
1
  module Shards
2
- VERSION = "2.1.6"
2
+ VERSION = "2.2.1-test"
3
3
  end
@@ -9,12 +9,13 @@ module Shards
9
9
  attr_accessor :config, :flow, :pointer, :step, :answer, :pointer_history, :client, :location, :stage, :domain, :site, :params, :blank_db
10
10
 
11
11
  attr_writer :wf
12
- attr_reader :current_loop
12
+ attr_reader :current_loop, :success
13
13
 
14
14
  def initialize config
15
15
  @config=config
16
16
  config.repo.clean
17
17
  @pointer_history = []
18
+ @success=false
18
19
  end
19
20
 
20
21
  def yaml
@@ -101,6 +102,27 @@ module Shards
101
102
  puts message
102
103
  end
103
104
 
105
+ def validate_client
106
+
107
+ cli=params[:client]
108
+
109
+ validate_min_size cli, step['min_size']
110
+
111
+ @client=cli
112
+
113
+ end
114
+
115
+ def validate_domain
116
+
117
+ domain_name=params[:domain]
118
+
119
+ validate_min_size domain_name, step['min_size']
120
+
121
+ validate_regex domain_name, step['regex']
122
+
123
+ @domain=domain_name
124
+
125
+ end
104
126
 
105
127
  def ask_question
106
128
  puts step['question']
@@ -188,7 +210,7 @@ module Shards
188
210
  def write_yaml_files
189
211
  stage.add_domain domain
190
212
  site.add_site
191
- puts config.repo.diff
213
+ output_message config.repo.diff
192
214
  ask_question
193
215
  raise step['wrong_message'] if answer.strip.downcase!='y'
194
216
  end
@@ -196,8 +218,8 @@ module Shards
196
218
  def commit_changes
197
219
  config.repo.message = "Added shard in #{location.name} for #{client}"
198
220
  config.repo.autocommit
199
- puts step['message']
200
- puts config.repo.message
221
+ output_message step['message']
222
+ output_message config.repo.message
201
223
  end
202
224
 
203
225
  def create_database
@@ -205,17 +227,17 @@ module Shards
205
227
  stage.shard.db.create dryrun: false
206
228
  message_params= [stage.shard.db.name, stage.shard.db.server]
207
229
  raise_wrong_text message_params unless stage.shard.db.exist?
208
- puts step['message'] % message_params
230
+ output_message step['message'] % message_params
209
231
  end
210
232
 
211
233
  def clean_repo_and_exit
212
- puts config.repo.clean
234
+ output_message config.repo.clean
213
235
  end
214
236
 
215
237
  def dns_upsert
216
238
  stage.shard.dns.set dryrun: false
217
239
  raise_wrong_text host unless stage.shard.dns.exist?
218
- puts step['message'] % host
240
+ output_message step['message'] % host
219
241
  end
220
242
 
221
243
  def host
@@ -253,7 +275,7 @@ module Shards
253
275
  resp=stage.check_remote_process remote_check: :fingerprints
254
276
  errors=filter_errors resp
255
277
  raise_wrong_text errors if errors.count>0
256
- puts step['message']
278
+ output_message step['message']
257
279
  end
258
280
 
259
281
  def loop_step
@@ -261,7 +283,7 @@ module Shards
261
283
  @total_loops||=step['total_loops']
262
284
  @current_loop+=1
263
285
  raise_wrong_text [current_loop,@total_loops] if current_loop>@total_loops
264
- puts step['message'] % [step['correct'], step['seconds_between_loop']]
286
+ output_message step['message'] % [step['correct'], step['seconds_between_loop']]
265
287
  sleep step['seconds_between_loop']
266
288
  end
267
289
 
@@ -270,14 +292,19 @@ module Shards
270
292
  resp=stage.check_remote_process remote_check: :reload_shards!
271
293
  errors=filter_status_errors resp
272
294
  raise_wrong_text errors if errors.count>0
273
- puts step['message']
295
+ output_message step['message']
274
296
  end
275
297
 
276
298
  def puppet_agent_update
277
299
  resp=stage.check_remote_process remote_check: :puppet_agent!
278
300
  errors=filter_status_errors resp
279
301
  raise_wrong_text errors if errors.count>0
280
- puts step['message']
302
+ output_message step['message']
303
+ end
304
+
305
+ def finish_successfully
306
+ output_message step['message']
307
+ @success=true
281
308
  end
282
309
 
283
310
  private
@@ -0,0 +1,25 @@
1
+
2
+ module Shards
3
+
4
+ module Workflow
5
+
6
+ class ByApi < Shards::Workflow::Base
7
+
8
+ attr_accessor :log
9
+
10
+ def write_yaml_files
11
+ stage.add_domain domain
12
+ site.add_site
13
+ output_message config.repo.diff
14
+ end
15
+
16
+ def output_message message
17
+ @log||="Create By API\n"
18
+ @log << "#{pointer} -> #{message} #{Time.now.to_s}\n"
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -1,19 +1,10 @@
1
- require_relative './base.rb'
2
1
 
3
2
  module Shards
4
3
 
5
4
  module Workflow
6
5
 
7
- class CreateByApi < Shards::Workflow::Base
6
+ class CreateByApi < Shards::Workflow::ByApi
8
7
 
9
- def write_yaml_files
10
- stage.add_domain domain
11
- site.add_site
12
- end
13
-
14
- def output_message message
15
- message
16
- end
17
8
 
18
9
  end
19
10
 
@@ -1,4 +1,3 @@
1
- require_relative './base.rb'
2
1
 
3
2
  module Shards
4
3
 
@@ -1,4 +1,3 @@
1
- require_relative './base.rb'
2
1
 
3
2
  module Shards
4
3
 
@@ -6,27 +5,6 @@ module Shards
6
5
 
7
6
  class FastTerminal < Shards::Workflow::Base
8
7
 
9
- def validate_client
10
-
11
- cli=params[:client]
12
-
13
- validate_min_size cli, step['min_size']
14
-
15
- @client=cli
16
-
17
- end
18
-
19
- def validate_domain
20
-
21
- domain_name=params[:domain]
22
-
23
- validate_min_size domain_name, step['min_size']
24
-
25
- validate_regex domain_name, step['regex']
26
-
27
- @domain=domain_name
28
-
29
- end
30
8
 
31
9
  end
32
10
 
@@ -1,4 +1,3 @@
1
- require_relative './fast_terminal.rb'
2
1
 
3
2
  module Shards
4
3
 
@@ -0,0 +1,31 @@
1
+
2
+ module Shards
3
+
4
+ module Workflow
5
+
6
+ class FingerprintsByApi < Shards::Workflow::ByApi
7
+
8
+ def shared_workflow
9
+ 'fingerprints_terminal'
10
+ end
11
+
12
+ def shared_wf_file
13
+ get_file "#{shared_workflow}.yaml"
14
+ end
15
+
16
+ def shared_steps_with_workflow
17
+ YAML.load_file(shared_wf_file)[shared_workflow]
18
+ end
19
+
20
+ def start
21
+ @flow=shared_steps.merge yaml[wf]
22
+ @flow.merge! shared_steps_with_workflow
23
+ @pointer=yaml['start']
24
+ run_step
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -1,10 +1,9 @@
1
- require_relative './base.rb'
2
1
 
3
2
  module Shards
4
3
 
5
4
  module Workflow
6
5
 
7
- class FingerprintTerminal < Shards::Workflow::Base
6
+ class FingerprintsTerminal < Shards::Workflow::Base
8
7
 
9
8
  def validate_client
10
9
 
@@ -1,4 +1,3 @@
1
- require_relative './base.rb'
2
1
 
3
2
  module Shards
4
3
 
@@ -1,9 +1,11 @@
1
1
  require "shards/workflow/base"
2
2
  require "shards/workflow/terminal"
3
3
  require "shards/workflow/fast_terminal"
4
- require "shards/workflow/fingerprint_terminal"
4
+ require "shards/workflow/fingerprints_terminal"
5
5
  require "shards/workflow/delete_by_terminal"
6
+ require "shards/workflow/by_api"
6
7
  require "shards/workflow/create_by_api"
8
+ require "shards/workflow/fingerprints_by_api"
7
9
 
8
10
  module Shards
9
11
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shards
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.6
4
+ version: 2.2.1.pre.test
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego PL
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-26 00:00:00.000000000 Z
11
+ date: 2018-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -248,7 +248,8 @@ files:
248
248
  - lib/settings/workflows/delete_by_terminal.yaml
249
249
  - lib/settings/workflows/fast_terminal.yaml
250
250
  - lib/settings/workflows/fast_terminal_all.yaml
251
- - lib/settings/workflows/fingerprint_terminal.yaml
251
+ - lib/settings/workflows/fingerprints_by_api.yaml
252
+ - lib/settings/workflows/fingerprints_terminal.yaml
252
253
  - lib/settings/workflows/terminal.yaml
253
254
  - lib/shards.rb
254
255
  - lib/shards/base.rb
@@ -267,11 +268,13 @@ files:
267
268
  - lib/shards/stage.rb
268
269
  - lib/shards/version.rb
269
270
  - lib/shards/workflow/base.rb
271
+ - lib/shards/workflow/by_api.rb
270
272
  - lib/shards/workflow/create_by_api.rb
271
273
  - lib/shards/workflow/delete_by_terminal.rb
272
274
  - lib/shards/workflow/fast_terminal.rb
273
275
  - lib/shards/workflow/fast_terminal_all.rb
274
- - lib/shards/workflow/fingerprint_terminal.rb
276
+ - lib/shards/workflow/fingerprints_by_api.rb
277
+ - lib/shards/workflow/fingerprints_terminal.rb
275
278
  - lib/shards/workflow/terminal.rb
276
279
  - lib/shards/workflow/workflow.rb
277
280
  - shards.gemspec
@@ -292,9 +295,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
292
295
  version: '0'
293
296
  required_rubygems_version: !ruby/object:Gem::Requirement
294
297
  requirements:
295
- - - ">="
298
+ - - ">"
296
299
  - !ruby/object:Gem::Version
297
- version: '0'
300
+ version: 1.3.1
298
301
  requirements: []
299
302
  rubyforge_project:
300
303
  rubygems_version: 2.6.14
@@ -1,23 +0,0 @@
1
- ---
2
- # see shared_steps in base.yaml to find the steps not defined in a workflow
3
-
4
- fingerprint_terminal:
5
-
6
- validate_stage:
7
- correct: check_fingerprints
8
- wrong_message: Stage %s does not exist.
9
- wrong: clean_repo_and_exit
10
-
11
- correct_steps_summary:
12
- - validate_client
13
- - validate_domain
14
- - validate_location
15
- - validate_stage
16
- - check_fingerprints
17
- - loop_step
18
- # It runs a puppet agent -t 3 times when the above check fails.
19
- - application_reload_shards_task
20
- - dns_upsert
21
- - finish
22
-
23
- start: validate_client