sistero 0.7.4 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/sistero +1 -1
- data/lib/sistero.rb +15 -17
- data/lib/sistero/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60c3c0cce22325698cd6ada1765e6e771f700a52
|
4
|
+
data.tar.gz: 772c3c63c9a2d22b0fb956f419611eba03465a5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2604863ec2d2c06d905172ac59964f7b19ea9317e8dd9856a635d469a26474134684585797bc8f02880748fed640276970c10ed94a31e8ad99f1743d9209a73f
|
7
|
+
data.tar.gz: ddc8a02f965185ca02af3d0b5ad3a0d06c5da1d2a1a8f17ed722645fc2b817af24000c1e3c286b0ab989ef46991fb24f8f6a3dae409d787c30b7204ed82c0e00
|
data/bin/sistero
CHANGED
@@ -28,7 +28,7 @@ module Sistero::Command
|
|
28
28
|
subop.on '-o val', 'add ssh options', 'ssh_options'
|
29
29
|
end
|
30
30
|
|
31
|
-
op.subcommand 'rsync vm *cmd', 'rsync files to vm'
|
31
|
+
op.subcommand 'rsync vm *cmd', 'rsync files to/from vm'
|
32
32
|
|
33
33
|
op.subcommand 'create [*vms]', 'create vm'
|
34
34
|
op.subcommand 'create-all', 'create all vms in config'
|
data/lib/sistero.rb
CHANGED
@@ -10,12 +10,12 @@ module Sistero
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def find_droplet(name)
|
13
|
-
@client.droplets.all.find { |
|
13
|
+
@client.droplets.all.find { |droplet| droplet.name == name }
|
14
14
|
end
|
15
15
|
|
16
16
|
def list_vms()
|
17
|
-
@client.droplets.all.each do |
|
18
|
-
puts "#{
|
17
|
+
@client.droplets.all.each do |droplet|
|
18
|
+
puts "#{droplet.name} - #{get_public_ip droplet}"
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -70,10 +70,10 @@ module Sistero
|
|
70
70
|
ssh_options ||= vm.ssh_options
|
71
71
|
|
72
72
|
droplet = find_droplet(name) || create_droplet_from_vm(name)
|
73
|
-
|
74
|
-
|
73
|
+
public_ip = get_public_ip droplet
|
74
|
+
wait_for_ssh_port public_ip
|
75
75
|
|
76
|
-
cmd = "ssh -o 'StrictHostKeyChecking no' #{ssh_options} #{vm.ssh_user || 'root'}@#{
|
76
|
+
cmd = "ssh -o 'StrictHostKeyChecking no' #{ssh_options} #{vm.ssh_user || 'root'}@#{public_ip}"
|
77
77
|
unless run.empty?
|
78
78
|
cmd += ' ' + run.join(' ')
|
79
79
|
end
|
@@ -85,10 +85,10 @@ module Sistero
|
|
85
85
|
def rsync(name, cmd: nil)
|
86
86
|
vm, name = get_vm name
|
87
87
|
droplet = find_droplet(name) || create_droplet_from_vm(name)
|
88
|
-
|
89
|
-
|
88
|
+
public_ip = get_public_ip droplet
|
89
|
+
wait_for_ssh_port public_ip
|
90
90
|
|
91
|
-
cmd_str = 'rsync ' + cmd.join(' ').gsub('vm:', "#{vm.ssh_user || 'root'}@#{
|
91
|
+
cmd_str = 'rsync ' + cmd.join(' ').gsub('vm:', "#{vm.ssh_user || 'root'}@#{public_ip}:")
|
92
92
|
exec cmd_str
|
93
93
|
end
|
94
94
|
|
@@ -145,27 +145,25 @@ module Sistero
|
|
145
145
|
end
|
146
146
|
|
147
147
|
private
|
148
|
-
def
|
148
|
+
def get_public_ip droplet
|
149
149
|
public_network = droplet.networks.v4.find { |network| network.type == 'public' }
|
150
150
|
until public_network
|
151
151
|
puts "no public interfaces, trying again in a second"
|
152
152
|
sleep 1
|
153
|
-
droplet = find_droplet(name)
|
153
|
+
droplet = find_droplet(droplet.name)
|
154
154
|
public_network = droplet.networks.v4.find { |network| network.type == 'public' }
|
155
155
|
end
|
156
|
-
public_network
|
156
|
+
public_network.ip_address
|
157
157
|
end
|
158
158
|
|
159
|
-
def wait_for_ssh_port
|
160
|
-
|
161
|
-
unless is_port_open? ip, 22
|
159
|
+
def wait_for_ssh_port public_ip
|
160
|
+
unless is_port_open? public_ip, 22
|
162
161
|
puts "waiting for ssh port to open"
|
163
162
|
sleep 1
|
164
|
-
until is_port_open?
|
163
|
+
until is_port_open? public_ip, 22 do
|
165
164
|
sleep 1
|
166
165
|
end
|
167
166
|
end
|
168
|
-
ip
|
169
167
|
end
|
170
168
|
end
|
171
169
|
end
|
data/lib/sistero/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sistero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Pike
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|