shards 2.2.1.pre.test → 2.2.2.pre.test
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 +4 -4
- data/Gemfile.lock +4 -4
- data/lib/settings/workflows/delete_by_api.yaml +53 -0
- data/lib/shards/version.rb +1 -1
- data/lib/shards/workflow/delete_by_api.rb +97 -0
- data/lib/shards/workflow/workflow.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bae1a3defedebbb797e8d968f676f0e9637d21fa
|
4
|
+
data.tar.gz: 837aeb01e735d6a24d7a5ab96d217d4efbcdeac8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4e7a335292840e88b71c8e8bbe8cce042400e16f4500737c0a9b62eee7f4bb6efb25397ac9cfa642d39343d772d08ae399a58c4f90dd88341aafe0493439be2
|
7
|
+
data.tar.gz: 12f39de20ac2ffccf73395d6e4f6094fbb9939469ce66c4c733649996dc6510374ac41624afc319f7fd0978f89b024f3646327ea38150a039af66fc5384af335
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shards (2.2.
|
4
|
+
shards (2.2.2.pre.test)
|
5
5
|
aws-sdk-ec2 (~> 1.48)
|
6
6
|
aws-sdk-elasticloadbalancing (~> 1.5)
|
7
7
|
aws-sdk-elasticloadbalancingv2 (~> 1.14)
|
@@ -24,13 +24,13 @@ GEM
|
|
24
24
|
rspec-expectations (>= 2.99)
|
25
25
|
thor (~> 0.19)
|
26
26
|
aws-eventstream (1.0.1)
|
27
|
-
aws-partitions (1.
|
28
|
-
aws-sdk-core (3.
|
27
|
+
aws-partitions (1.105.0)
|
28
|
+
aws-sdk-core (3.28.0)
|
29
29
|
aws-eventstream (~> 1.0)
|
30
30
|
aws-partitions (~> 1.0)
|
31
31
|
aws-sigv4 (~> 1.0)
|
32
32
|
jmespath (~> 1.0)
|
33
|
-
aws-sdk-ec2 (1.
|
33
|
+
aws-sdk-ec2 (1.49.0)
|
34
34
|
aws-sdk-core (~> 3, >= 3.26.0)
|
35
35
|
aws-sigv4 (~> 1.0)
|
36
36
|
aws-sdk-elasticloadbalancing (1.5.0)
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
# see shared_steps in base.yaml to find the steps not defined in a workflow
|
3
|
+
|
4
|
+
delete_by_api:
|
5
|
+
|
6
|
+
validate_stage:
|
7
|
+
correct: validate_subdomain
|
8
|
+
wrong_message: Stage %s does not exist.
|
9
|
+
wrong: finish
|
10
|
+
|
11
|
+
validate_subdomain:
|
12
|
+
correct: delete_record
|
13
|
+
wrong_message: DNS record for host %s, %s.
|
14
|
+
wrong: delete_record
|
15
|
+
|
16
|
+
delete_record:
|
17
|
+
message: Record %s deleted in target %s
|
18
|
+
correct: delete_site_and_shard
|
19
|
+
wrong: finish
|
20
|
+
wrong_message: Could not delete the record %s.
|
21
|
+
|
22
|
+
delete_site_and_shard:
|
23
|
+
correct: commit_changes
|
24
|
+
wrong: clean_repo_and_exit
|
25
|
+
wrong_message: Could not delete site or shard.\n %s.
|
26
|
+
|
27
|
+
commit_changes:
|
28
|
+
message: The changes has been committed and pushed to the remote repository.
|
29
|
+
wrong_message: We had an issue to commit and push the changes.
|
30
|
+
correct: delete_database
|
31
|
+
wrong: finish
|
32
|
+
|
33
|
+
#TODO restart sidekiq before the database deletion.
|
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
|
+
|
41
|
+
start: validate_location
|
42
|
+
|
43
|
+
correct_steps_summary:
|
44
|
+
- validate_location
|
45
|
+
- validate_stage
|
46
|
+
- validate_subdomain
|
47
|
+
- delete_record
|
48
|
+
- delete_site_and_shard
|
49
|
+
- write_yaml_files
|
50
|
+
- commit_changes
|
51
|
+
- delete_database
|
52
|
+
|
53
|
+
start: validate_location
|
data/lib/shards/version.rb
CHANGED
@@ -0,0 +1,97 @@
|
|
1
|
+
|
2
|
+
module Shards
|
3
|
+
|
4
|
+
module Workflow
|
5
|
+
|
6
|
+
class DeleteByApi < Shards::Workflow::ByApi
|
7
|
+
|
8
|
+
attr_accessor :dns, :db, :database_to_drop
|
9
|
+
|
10
|
+
def validate_subdomain
|
11
|
+
@dns=Shards::Dns.new stage: stage
|
12
|
+
dns.subdomain_param=params[:subdomain]
|
13
|
+
|
14
|
+
raise_wrong_text [dns.host_param, " doesn't exist"] unless dns.exist?
|
15
|
+
|
16
|
+
unless dns.include_target?
|
17
|
+
raise_wrong_text [dns.host_param, target_message_error ]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def delete_record
|
22
|
+
if dns.exist?
|
23
|
+
dns.delete
|
24
|
+
message_params= [dns.host_param, dns.resource_records.to_s]
|
25
|
+
raise_wrong_text message_params if dns.exist?
|
26
|
+
ouptput_message step['message'] % message_params
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete_site_and_shard
|
31
|
+
site=Shards::Site.new stage
|
32
|
+
site.subdomain_param=params[:subdomain]
|
33
|
+
site.delete
|
34
|
+
|
35
|
+
shard=Shards::Shard.new stage
|
36
|
+
@shard_name= site.shard
|
37
|
+
shard.name_param = @shard_name
|
38
|
+
shard.delete
|
39
|
+
|
40
|
+
@database_to_drop=shard.database['database']
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
def commit_changes
|
45
|
+
ouptput_message config.repo.diff
|
46
|
+
config.repo.message = "Deleted site: #{params[:subdomain]} and shard: #{@shard_name} in #{location.name}"
|
47
|
+
config.repo.autocommit
|
48
|
+
ouptput_message step['message']
|
49
|
+
ouptput_message config.repo.message
|
50
|
+
end
|
51
|
+
|
52
|
+
def delete_database
|
53
|
+
|
54
|
+
@db=Shards::Db.new stage: stage
|
55
|
+
|
56
|
+
db.database_to_drop=database_to_drop
|
57
|
+
|
58
|
+
raise "Database %s does is not in present db servers" % database_to_drop unless db.exist?(database_to_drop)
|
59
|
+
|
60
|
+
db.servers_to_drop.each do |host|
|
61
|
+
|
62
|
+
ouptput_message "Database:\t #{database_to_drop}"
|
63
|
+
ouptput_message "Host: \t #{host}"
|
64
|
+
ouptput_message "Do you want to delete the above database? (y) to confirm, another string to not."
|
65
|
+
|
66
|
+
answer=$stdin.gets
|
67
|
+
|
68
|
+
if answer.chomp.downcase=='y'
|
69
|
+
ouptput_message "DELETING database #{database_to_drop} in #{host}"
|
70
|
+
db.server=host
|
71
|
+
db.drop
|
72
|
+
else
|
73
|
+
ouptput_message "KEEP database #{database_to_drop} in #{host}"
|
74
|
+
end
|
75
|
+
ouptput_message "-" * 50
|
76
|
+
end
|
77
|
+
|
78
|
+
raise_wrong_text database_to_drop if db.exist? database_to_drop
|
79
|
+
ouptput_message step['message'] % database_to_drop
|
80
|
+
end
|
81
|
+
|
82
|
+
private
|
83
|
+
|
84
|
+
def target_message_error
|
85
|
+
message = []
|
86
|
+
message<< "Defined target: #{dns.target},"
|
87
|
+
message<< "not found in resource record values:"
|
88
|
+
message<< dns.record_data.to_s
|
89
|
+
message.join("\n\t")
|
90
|
+
end
|
91
|
+
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
@@ -5,6 +5,7 @@ require "shards/workflow/fingerprints_terminal"
|
|
5
5
|
require "shards/workflow/delete_by_terminal"
|
6
6
|
require "shards/workflow/by_api"
|
7
7
|
require "shards/workflow/create_by_api"
|
8
|
+
require "shards/workflow/delete_by_api"
|
8
9
|
require "shards/workflow/fingerprints_by_api"
|
9
10
|
|
10
11
|
module Shards
|
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.2.
|
4
|
+
version: 2.2.2.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-
|
11
|
+
date: 2018-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -245,6 +245,7 @@ files:
|
|
245
245
|
- lib/settings/format_methods.yaml
|
246
246
|
- lib/settings/workflows/base.yaml
|
247
247
|
- lib/settings/workflows/create_by_api.yaml
|
248
|
+
- lib/settings/workflows/delete_by_api.yaml
|
248
249
|
- lib/settings/workflows/delete_by_terminal.yaml
|
249
250
|
- lib/settings/workflows/fast_terminal.yaml
|
250
251
|
- lib/settings/workflows/fast_terminal_all.yaml
|
@@ -270,6 +271,7 @@ files:
|
|
270
271
|
- lib/shards/workflow/base.rb
|
271
272
|
- lib/shards/workflow/by_api.rb
|
272
273
|
- lib/shards/workflow/create_by_api.rb
|
274
|
+
- lib/shards/workflow/delete_by_api.rb
|
273
275
|
- lib/shards/workflow/delete_by_terminal.rb
|
274
276
|
- lib/shards/workflow/fast_terminal.rb
|
275
277
|
- lib/shards/workflow/fast_terminal_all.rb
|