shards 3.1 → 3.2

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
  SHA256:
3
- metadata.gz: fa4d8238d564cb0b4fd0515cf38fba0012aad65ea85c82dec099801c5b414af9
4
- data.tar.gz: 7be2c2147e768a69bb511d5d0eda49f11e3aa3232863272ccc5d29b74b9c5473
3
+ metadata.gz: c6f3e5c3b27a1260b50f1a00cf86ae62e8b7c1593fc2feb1e68bd7cd7194d438
4
+ data.tar.gz: 6ba8aaf2b3d0025d8750d552ea50d9061f2bae402f951770813f0dbaef8285ee
5
5
  SHA512:
6
- metadata.gz: 9d91b4250d21945dca44bed36e4a36c6843552dcd504aeecd851806bf8ce1223ea6b52c956c197e1fb7a53ed9d7e65c0ad23e669293b9d85ae3aaa64f3a1e187
7
- data.tar.gz: 6850d171bc875352d197334dd023ecd5b8d8e4234c0634dd1a32868d2034ba6a045cfda31d7e3ae3b1a1cc437a4c284d669cc0ceb00ba52ecde041ea7ad2b185
6
+ metadata.gz: 8064c86c8daab178f602e47052b2d56977c744214b169524e3b8cf5d16c704456dd1e1657030b6dc040ff72b1f646877155d8ceabfedf7182c7fcef64e0abd66
7
+ data.tar.gz: d4a076e06a2af9e83d8efc2bc01c2234d46062fca82e41c97420cdbd4c354d67aa305109498e09b2bdb77415162038f8270aaf570258e8b8dbae34b2cde1a31f
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shards (3.1)
4
+ shards (3.2)
5
5
  aws-sdk-ec2 (~> 1.48)
6
6
  aws-sdk-elasticloadbalancing (~> 1.5)
7
7
  aws-sdk-elasticloadbalancingv2 (~> 1.14)
@@ -27,16 +27,11 @@ delete_by_api:
27
27
  commit_changes:
28
28
  message: The changes has been committed and pushed to the remote repository.
29
29
  wrong_message: We had an issue to commit and push the changes.
30
- correct: delete_database
30
+ correct: finish_successfully
31
31
  wrong: finish
32
32
 
33
33
  #TODO restart sidekiq before the database deletion.
34
34
 
35
- delete_database:
36
- wrong_message: The database %s could not be deleted.
37
- message: Database %s has been deleted.
38
- correct: finish_successfully
39
- wrong: finish
40
35
 
41
36
  start: validate_location
42
37
 
@@ -48,6 +43,5 @@ correct_steps_summary:
48
43
  - delete_site_and_shard
49
44
  - write_yaml_files
50
45
  - commit_changes
51
- - delete_database
52
46
 
53
47
  start: validate_location
@@ -19,7 +19,7 @@ reload_by_api:
19
19
  application_reload_shards_task:
20
20
  message: Reload task have been executed successfully.
21
21
  wrong_message: Errors found in the reload task %s.
22
- correct: finish_successfully
22
+ correct: delete_database
23
23
  wrong: finish
24
24
 
25
25
  puppet_agent_update:
@@ -34,6 +34,12 @@ reload_by_api:
34
34
  correct: application_reload_shards_task
35
35
  wrong: finish
36
36
 
37
+ delete_database:
38
+ wrong_message: The database %s could not be deleted.
39
+ message: Database %s has been deleted.
40
+ correct: finish_successfully
41
+ wrong: finish
42
+
37
43
  correct_steps_summary:
38
44
  - validate_client
39
45
  - validate_domain
@@ -43,5 +49,6 @@ correct_steps_summary:
43
49
  - puppet_agent_update
44
50
  - check_fingerprints2
45
51
  - application_reload_shards_task
52
+ - delete_database
46
53
 
47
54
  start: validate_client
@@ -14,6 +14,7 @@ module Shards
14
14
  end
15
15
 
16
16
  attr_accessor :name, :location_name, :shard, :chosen_blank_db
17
+ attr_writer :host_list
17
18
 
18
19
  def initialize name, data, location_name
19
20
 
@@ -78,7 +79,7 @@ module Shards
78
79
  end
79
80
 
80
81
  def web_server_hosts
81
- name=='prod' ? get_production_ips : [ internal_host ]
82
+ name=='prod' ? get_production_hosts : [ internal_host ]
82
83
  end
83
84
 
84
85
  def hosts_to_check
@@ -93,6 +94,10 @@ module Shards
93
94
  []
94
95
  end
95
96
 
97
+ def get_production_hosts
98
+ @host_list || @ips || get_production_ips
99
+ end
100
+
96
101
  def get_production_ips
97
102
  ip_search=Shards::IpSearch.new self
98
103
  @ips||=ip_search.ips
@@ -106,8 +111,12 @@ module Shards
106
111
  get('route53').split('.').first
107
112
  end
108
113
 
114
+ def host_list
115
+ @host_list || hosts_to_check
116
+ end
117
+
109
118
  def check_remote_process remote_check: :internal_host
110
- hosts_to_check.map do |h|
119
+ host_list.map do |h|
111
120
  @internal_host=h
112
121
  [ h , send(remote_check) ]
113
122
  end.to_h
@@ -1,3 +1,3 @@
1
1
  module Shards
2
- VERSION = "3.1"
2
+ VERSION = "3.2"
3
3
  end
@@ -278,7 +278,9 @@ module Shards
278
278
 
279
279
  def check_fingerprints
280
280
  resp=stage.check_remote_process remote_check: :fingerprints
281
- errors=filter_errors resp
281
+
282
+ errors=filter_errors multitenant(resp)
283
+ stage.host_list = multitenant(resp).keys
282
284
  raise_wrong_text errors if errors.count>0
283
285
  output_message step['message']
284
286
  end
@@ -326,6 +328,11 @@ module Shards
326
328
  def filter_status_errors resp
327
329
  resp.select { |k,x| x[:status]==1 }
328
330
  end
331
+
332
+ def multitenant resp
333
+ resp.select { |k,x| x.values.count { |v| v[:remote]=='md5sum:' } < 1 }
334
+ end
335
+
329
336
  end
330
337
 
331
338
  end
@@ -53,34 +53,6 @@ module Shards
53
53
  output_message config.repo.message
54
54
  end
55
55
 
56
- def delete_database
57
-
58
- if database_to_drop
59
-
60
- @db=Shards::Db.new stage: stage
61
-
62
- db.database_to_drop=database_to_drop
63
-
64
- raise "Database %s does is not in present db servers" % database_to_drop unless db.exist?(database_to_drop)
65
-
66
- db.servers_to_drop.each do |host|
67
-
68
- output_message "Database:\t #{database_to_drop}"
69
- output_message "Host: \t #{host}"
70
- output_message "DELETING database #{database_to_drop} in #{host}"
71
- db.server=host
72
- db.drop
73
-
74
- end
75
-
76
- raise_wrong_text database_to_drop if db.exist? database_to_drop
77
- output_message step['message'] % database_to_drop
78
-
79
- else
80
- output_message "The shard is in use by other site, will not be deleted"
81
- end
82
- end
83
-
84
56
  private
85
57
 
86
58
  def target_message_error
@@ -1,6 +1,34 @@
1
1
  module Shards
2
2
  module Workflow
3
3
  class ReloadByApi < Shards::Workflow::FingerprintsByApi
4
+ def delete_database
5
+
6
+ if database_to_drop
7
+
8
+ @db=Shards::Db.new stage: stage
9
+
10
+ db.database_to_drop=database_to_drop
11
+
12
+ raise "Database %s does is not in present db servers" % database_to_drop unless db.exist?(database_to_drop)
13
+
14
+ db.servers_to_drop.each do |host|
15
+
16
+ output_message "Database:\t #{database_to_drop}"
17
+ output_message "Host: \t #{host}"
18
+ output_message "DELETING database #{database_to_drop} in #{host}"
19
+ db.server=host
20
+ db.drop
21
+
22
+ end
23
+
24
+ raise_wrong_text database_to_drop if db.exist? database_to_drop
25
+ output_message step['message'] % database_to_drop
26
+
27
+ else
28
+ output_message "The shard is in use by other site, will not be deleted"
29
+ end
30
+ end
31
+
4
32
  end
5
33
  end
6
34
  end
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: '3.1'
4
+ version: '3.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego PL
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-01 00:00:00.000000000 Z
11
+ date: 2019-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler