shards 2.3.2 → 2.3.3

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
- SHA1:
3
- metadata.gz: 9faa695b2983fbdabcb2bdbd83e63a99b2f26f98
4
- data.tar.gz: e2ca33526a2a47d4676cecae895848baa21373ed
2
+ SHA256:
3
+ metadata.gz: 4038bb5139e419a1756231f562e56c2eda09affb2127a3539f108f721b425c57
4
+ data.tar.gz: 9a7cffcb853daf46e3d4302cef097eaaf69f5e5a059fd7bc23fd33c956ed2e3f
5
5
  SHA512:
6
- metadata.gz: 1044c57098d7621a2175755acff8d12adbada17034ca3b2b17984942b2b4b46e4c73833236f2a173902de00830d5feed719847b83a3c9981ea368b5822299350
7
- data.tar.gz: b7fa3f945f27572f19a2d83fb6caf1262cb0eb9e37931b75f2e1ff86962648895f7df681e35f3048fc1ed8fc90c3557513629fd0f30d16147056efda225fb4cf
6
+ metadata.gz: 439b72ed1e0105748c0a649e15ce4ef3a75e9d21d3cccfe96ec2c89aa1f78e66b920a0a65a4286fce69820e30e9fa1e87356e3d4350b53f2be8b49a4fd12a6d1
7
+ data.tar.gz: 647c691803d23f76991a6e3bc314255e4b1e7b1a8080a21219c605f3f83abd3e401d74b0b6fdc9d01b260d0de5c56f9b3f7f9ae32e08c4397ce5c1b7963756c0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shards (2.3.2)
4
+ shards (2.3.3)
5
5
  aws-sdk-ec2 (~> 1.48)
6
6
  aws-sdk-elasticloadbalancing (~> 1.5)
7
7
  aws-sdk-elasticloadbalancingv2 (~> 1.14)
@@ -24,22 +24,22 @@ GEM
24
24
  rspec-expectations (>= 2.99)
25
25
  thor (~> 0.19)
26
26
  aws-eventstream (1.0.1)
27
- aws-partitions (1.106.0)
28
- aws-sdk-core (3.33.0)
27
+ aws-partitions (1.107.0)
28
+ aws-sdk-core (3.36.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.51.0)
33
+ aws-sdk-ec2 (1.54.0)
34
34
  aws-sdk-core (~> 3, >= 3.26.0)
35
35
  aws-sigv4 (~> 1.0)
36
- aws-sdk-elasticloadbalancing (1.5.0)
36
+ aws-sdk-elasticloadbalancing (1.7.0)
37
37
  aws-sdk-core (~> 3, >= 3.26.0)
38
38
  aws-sigv4 (~> 1.0)
39
- aws-sdk-elasticloadbalancingv2 (1.14.0)
39
+ aws-sdk-elasticloadbalancingv2 (1.16.0)
40
40
  aws-sdk-core (~> 3, >= 3.26.0)
41
41
  aws-sigv4 (~> 1.0)
42
- aws-sdk-route53 (1.13.0)
42
+ aws-sdk-route53 (1.15.0)
43
43
  aws-sdk-core (~> 3, >= 3.26.0)
44
44
  aws-sigv4 (~> 1.0)
45
45
  aws-sigv4 (1.0.3)
@@ -62,7 +62,7 @@ Shards::Db:
62
62
  user: shard.username_by_server(server)
63
63
  password: shard.password_by_server(server)
64
64
  file: |
65
- '/tmp/createdb' + dns.name + '.sh'
65
+ File.join(base_dir,'createdb' + dns.name + '.sh')
66
66
  init_script: add "#!/bin/bash"
67
67
  creating_database: |
68
68
  add "echo \"# Creating database #{name}\""
@@ -90,7 +90,7 @@ Shards::Db:
90
90
  add "Source: #{net}"
91
91
  add "Target: #{name}"
92
92
  sql_dump_file: |
93
- "/tmp/#{net}.sql.dump"
93
+ File.join(base_dir,"#{net}.sql.dump")
94
94
  chmod_file_command: |
95
95
  "chmod +x #{file}"
96
96
  chmod_file_message: |
@@ -108,7 +108,7 @@ shared_steps:
108
108
  wrong: clean_repo_and_exit
109
109
  wrong_message: The domain %s.
110
110
  min_size: 3
111
- regex: ^[a-z0-9_]*$
111
+ regex: ^[a-z0-9_\-]*$
112
112
 
113
113
  validate_stage:
114
114
  correct: check_shard_presence_in_shards
@@ -14,7 +14,7 @@ fingerprints_terminal:
14
14
  wrong: finish
15
15
  wrong_message: The domain %s.
16
16
  min_size: 3
17
- regex: ^[a-z0-9_]*$
17
+ regex: ^[a-z0-9_\-]*$
18
18
 
19
19
  validate_stage:
20
20
  correct: check_fingerprints
data/lib/shards/db.rb CHANGED
@@ -22,10 +22,15 @@ module Shards
22
22
  @dns=dns
23
23
  @databases_on_servers=[]
24
24
  @server_databases={}
25
+ @time=Time.now.strftime("%Y_%m_%d__%H_%M_%S")
25
26
 
26
27
  reset_output
27
28
  end
28
29
 
30
+ def base_dir
31
+ "/tmp/shards_tool/#{@time}"
32
+ end
33
+
29
34
  def write_file
30
35
  add " "
31
36
  open(file, 'w+') { |fsh|
@@ -35,6 +40,7 @@ module Shards
35
40
  end
36
41
 
37
42
  def create_script
43
+ create_base_dir
38
44
  init_script
39
45
  creating_database
40
46
  dumping_database
@@ -49,6 +55,7 @@ module Shards
49
55
  setting_up_database_message
50
56
  print_output
51
57
  create_script
58
+ create_remote_base_dir!
52
59
  upload!
53
60
  ssh!
54
61
  end
@@ -59,10 +66,41 @@ module Shards
59
66
  Net::SCP.upload! proxy, proxy_user, file, file
60
67
  end
61
68
 
69
+ def create_remote_base_dir!
70
+ ssh_conn do |ssh|
71
+ run_ssh ssh, base_dir_create_command, base_dir_creation_message
72
+ end
73
+ end
74
+
75
+ def base_dir_create_message
76
+ "Creating #{base_dir} directory for db files"
77
+ end
78
+
79
+ def base_dir_delete_message
80
+ "Deleting #{base_dir} directory for db files"
81
+ end
82
+
83
+ def base_dir_create_command
84
+ "mkdir -p #{base_dir}"
85
+ end
86
+
87
+ def base_dir_delete_command
88
+ "rm -rf #{base_dir}"
89
+ end
90
+
91
+ def create_base_dir
92
+ system base_dir_create_command
93
+ end
94
+
95
+ def delete_base_dir
96
+ system base_dir_delete_command
97
+ end
98
+
62
99
  def ssh!
63
100
  ssh_conn do |ssh|
64
101
  run_ssh ssh, chmod_file_command, chmod_file_message
65
102
  run_ssh ssh, db_creation_command, db_creation_message
103
+ run_ssh ssh, base_dir_delete_command, base_dir_delete_message
66
104
  end
67
105
  end
68
106
 
@@ -1,3 +1,3 @@
1
1
  module Shards
2
- VERSION = "2.3.2"
2
+ VERSION = "2.3.3"
3
3
  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: 2.3.2
4
+ version: 2.3.3
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-10-23 00:00:00.000000000 Z
11
+ date: 2018-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -302,7 +302,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
302
302
  version: '0'
303
303
  requirements: []
304
304
  rubyforge_project:
305
- rubygems_version: 2.6.14
305
+ rubygems_version: 2.7.7
306
306
  signing_key:
307
307
  specification_version: 4
308
308
  summary: Manage shards and sites to many stages and app.