pvcglue 0.1.20 → 0.1.21
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/lib/pvcglue/cloud.rb +4 -0
- data/lib/pvcglue/configuration.rb +6 -2
- data/lib/pvcglue/env.rb +3 -1
- data/lib/pvcglue/local.rb +36 -7
- data/lib/pvcglue/manager.rb +1 -0
- data/lib/pvcglue/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: e429dc7a4b50158ce2a1929e7b652e07030993a0
|
4
|
+
data.tar.gz: f24bc8d081da32c682c3d0b60715aebc24425fd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8b4ecd0470e63aefd7299b8d7c6d37804a0b8503c8a7800e83a73ef21add4b49816e58266935774af4668bc1471c0a1d2ea66a0ae8ed54c4245dcfc0f303380
|
7
|
+
data.tar.gz: aad57eb0dfc27b89ee3e71b47d91363e570780f079c4566326e3108d3d242e1e5352a748fca39e50b4fdf194a6a2db6751d265f2cd37667b6b5613c6c2a6664e
|
data/lib/pvcglue/cloud.rb
CHANGED
@@ -162,6 +162,9 @@ module Pvcglue
|
|
162
162
|
ports = []
|
163
163
|
from_all = data[app_name][:ssh_allowed_from_all_port].to_i
|
164
164
|
ports << from_all if from_all > 0
|
165
|
+
if stage_name == 'local'
|
166
|
+
Pvcglue::Local.ssh_config.each { |_, port| ports << port } # Yes, this is a hack, and should be refactored. :)
|
167
|
+
end
|
165
168
|
ports
|
166
169
|
end
|
167
170
|
|
@@ -179,6 +182,7 @@ module Pvcglue
|
|
179
182
|
from_all = data[app_name][:ssh_allowed_from_all_port].to_i
|
180
183
|
ports << from_all if from_all > 0
|
181
184
|
ports.concat [80, 443] if current_node.values.first[:allow_public_access]
|
185
|
+
ports.concat ["2000:3000"] if stage_name == 'local'
|
182
186
|
ports
|
183
187
|
end
|
184
188
|
|
@@ -137,12 +137,16 @@ module Pvcglue
|
|
137
137
|
File.join(application_dir, 'tmp')
|
138
138
|
end
|
139
139
|
|
140
|
+
def pvcglue_tmp_dir
|
141
|
+
File.join(tmp_dir, 'pvcglue')
|
142
|
+
end
|
143
|
+
|
140
144
|
def cloud_cache_file_name
|
141
145
|
# Just in case the Rails project hasn't yet been run, make sure the tmp
|
142
146
|
# dir exists.
|
143
|
-
Dir.mkdir(
|
147
|
+
Dir.mkdir(pvcglue_tmp_dir) unless Dir.exist?(pvcglue_tmp_dir)
|
144
148
|
|
145
|
-
File.join(
|
149
|
+
File.join(pvcglue_tmp_dir, "pvcglue_#{cloud_manager}_#{cloud_name}_#{application_name}_cache.toml")
|
146
150
|
end
|
147
151
|
|
148
152
|
def clear_cloud_cache
|
data/lib/pvcglue/env.rb
CHANGED
@@ -117,6 +117,8 @@ module Pvcglue
|
|
117
117
|
|
118
118
|
def self.read_cached_stage_env
|
119
119
|
# TODO: Only use cache in development of gem, do not cache by default, use Manager config
|
120
|
+
return false # disable cache for now
|
121
|
+
|
120
122
|
if File.exists?(stage_env_cache_file_name)
|
121
123
|
stage_env = File.read(stage_env_cache_file_name)
|
122
124
|
Pvcglue.cloud.stage_env = TOML.parse(stage_env)
|
@@ -134,7 +136,7 @@ module Pvcglue
|
|
134
136
|
end
|
135
137
|
|
136
138
|
def self.stage_env_cache_file_name
|
137
|
-
File.join(Pvcglue.configuration.
|
139
|
+
File.join(Pvcglue.configuration.pvcglue_tmp_dir, "pvcglue_cache_#{stage_env_file_name_base}")
|
138
140
|
end
|
139
141
|
|
140
142
|
def self.clear_stage_env_cache
|
data/lib/pvcglue/local.rb
CHANGED
@@ -15,8 +15,11 @@ module Pvcglue
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.start
|
18
|
+
FileUtils.rm_rf(local_cache_dir)
|
19
|
+
|
18
20
|
if vagrant("up #{machines_in_stage}")
|
19
21
|
update_local_config(get_info_for_machines)
|
22
|
+
get_ssh_config
|
20
23
|
else
|
21
24
|
remove_cache_info_for_machines
|
22
25
|
raise(Thor::Error, "Error starting virtual machines. :(")
|
@@ -28,7 +31,7 @@ module Pvcglue
|
|
28
31
|
end
|
29
32
|
|
30
33
|
def self.update_local_config_from_cache
|
31
|
-
data = File.read(
|
34
|
+
data = File.read(machine_cache_file_name)
|
32
35
|
machines = JSON.parse(data)
|
33
36
|
update_local_config(machines)
|
34
37
|
end
|
@@ -133,7 +136,7 @@ module Pvcglue
|
|
133
136
|
|
134
137
|
Pvcglue.cloud.data = data
|
135
138
|
File.write(::Pvcglue.cloud.local_file_name, TOML.dump(Pvcglue.cloud.data))
|
136
|
-
File.write(Pvcglue.configuration.cloud_cache_file_name, TOML.
|
139
|
+
File.write(Pvcglue.configuration.cloud_cache_file_name, TOML::PvcDumper.new(Pvcglue.cloud.data).toml_str)
|
137
140
|
end
|
138
141
|
|
139
142
|
def self.stop
|
@@ -166,7 +169,7 @@ module Pvcglue
|
|
166
169
|
end
|
167
170
|
|
168
171
|
def self.remove_cache_info_for_machines
|
169
|
-
File.delete(
|
172
|
+
File.delete(machine_cache_file_name)
|
170
173
|
end
|
171
174
|
|
172
175
|
=begin
|
@@ -213,14 +216,40 @@ module Pvcglue
|
|
213
216
|
# cat ~/.ssh/id_rsa.pub | vagrant ssh manager -c 'sudo tee /root/.ssh/authorized_keys'
|
214
217
|
raise $? unless system %Q(cat ~/.ssh/id_rsa.pub | vagrant ssh #{machine_name} -c 'sudo tee /root/.ssh/authorized_keys')
|
215
218
|
end
|
216
|
-
FileUtils.mkdir_p(File.dirname(
|
217
|
-
File.write(
|
219
|
+
FileUtils.mkdir_p(File.dirname(machine_cache_file_name)) # the 'tmp' directory may not always exist
|
220
|
+
File.write(machine_cache_file_name, machines.to_json)
|
218
221
|
machines
|
219
222
|
end
|
220
223
|
|
221
|
-
def self.
|
224
|
+
def self.get_ssh_config
|
225
|
+
data = `vagrant ssh-config`
|
226
|
+
puts data
|
227
|
+
out = {}
|
228
|
+
data.scan(/Host (.*?)$.*?Port (.*?)$/m) do |host_name, port|
|
229
|
+
out[host_name] = port
|
230
|
+
end
|
231
|
+
FileUtils.mkdir_p(File.dirname(ssh_config_cache_file_name)) # the 'tmp' directory may not always exist
|
232
|
+
File.write(ssh_config_cache_file_name, out.to_json)
|
233
|
+
puts out.inspect
|
234
|
+
out
|
235
|
+
end
|
236
|
+
|
237
|
+
def self.ssh_config
|
238
|
+
JSON.parse(File.read(ssh_config_cache_file_name))
|
239
|
+
end
|
240
|
+
|
241
|
+
def self.local_cache_dir
|
242
|
+
Pvcglue.configuration.pvcglue_tmp_dir
|
243
|
+
end
|
244
|
+
|
245
|
+
def self.machine_cache_file_name
|
246
|
+
# TODO: Remove caching, maybe?
|
247
|
+
File.join(local_cache_dir, 'pvcglue-machines.json')
|
248
|
+
end
|
249
|
+
|
250
|
+
def self.ssh_config_cache_file_name
|
222
251
|
# TODO: Remove caching, maybe?
|
223
|
-
File.join(
|
252
|
+
File.join(local_cache_dir, 'pvcglue-ssh-config.json')
|
224
253
|
end
|
225
254
|
end
|
226
255
|
|
data/lib/pvcglue/manager.rb
CHANGED
@@ -130,6 +130,7 @@ module Pvcglue
|
|
130
130
|
end
|
131
131
|
|
132
132
|
def self.read_cached_cloud_data
|
133
|
+
return false # disable cache for now
|
133
134
|
# TODO: Expire cache after given interval
|
134
135
|
if File.exists?(Pvcglue.configuration.cloud_cache_file_name)
|
135
136
|
data = File.read(Pvcglue.configuration.cloud_cache_file_name)
|
data/lib/pvcglue/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pvcglue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Lyric
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|