inprovise-vbox 0.2.7 → 0.2.8
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 +8 -8
- data/lib/inprovise/vbox/vbox.rb +32 -9
- data/lib/inprovise/vbox/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjlhOWU5MzNiNDQ5MThlNTIyNDg0OTI1YzdiYWIxN2RlNTg1MTU2Yw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjY3M2IzM2RkYjcyYTNlN2M5MmViYzQ5ZDNiZTljYzhmZjIxNTA4OQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDE4OWIyN2M2ODU1Njc5ZDIxODRlZjIwNGEwMDYwN2JiN2E2NDY5YjA2NzVk
|
10
|
+
OWFhZjYxYzg0NTRkN2ZhZTQ2YTdkNTQ2YzliZmJmZjc4NWExYWU5MzJjMGQw
|
11
|
+
MzA4Y2VhMzkzNGQ0YmUwOWJiYzIzYzA1OWE3MTY4NzkxYmYyMWE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGUxYzI3Y2NmMDUyM2QwMTU4NWQzNTE2ZjEwOTIwZjU2YzcwZmYxZDg5OGI1
|
14
|
+
NzZjYTZmNDcxMDM2ZWNmMmQwODQzYTI4NTVlOTdjMmQ1YWYyNzNmN2ZlN2I2
|
15
|
+
YTg3YjIyZGI1ODA4YTU4YmUyOGQxN2UzNDRiNjUzZDNhZGMyOTc=
|
data/lib/inprovise/vbox/vbox.rb
CHANGED
@@ -42,13 +42,20 @@ module Inprovise::VBox
|
|
42
42
|
cmdline << "--arch #{cfg[:arch]} "
|
43
43
|
cmdline << '--autostart ' if cfg[:autostart]
|
44
44
|
cmdline << "--name #{vboxname} --memory #{cfg[:memory]} --vcpus #{cfg[:cpus]} "
|
45
|
-
|
45
|
+
# check if os variant defined on this host
|
46
|
+
if cfg[:os]
|
47
|
+
os_variant = sudo("osinfo-query --fields=short-id os | grep #{cfg[:os]}").strip
|
48
|
+
cmdline << "--os-variant #{cfg[:os]} " unless os_variant.empty?
|
49
|
+
end
|
50
|
+
cmdline << '--network '
|
46
51
|
cmdline << case cfg[:network]
|
47
52
|
when :hostnet
|
48
|
-
"
|
53
|
+
"network=#{cfg[:netname] || 'default'}"
|
49
54
|
when :bridge
|
50
|
-
"
|
55
|
+
"bridge=#{cfg[:netname] || 'virbr0' }"
|
51
56
|
end
|
57
|
+
cmdline << ",model=#{cfg[:nic]}" if cfg[:nic]
|
58
|
+
cmdline << ' '
|
52
59
|
cmdline << "--graphics #{cfg[:graphics] || 'spice'} "
|
53
60
|
cmdline << "--disk path=#{cfg[:image]},device=disk,boot_order=1"
|
54
61
|
cmdline << ",bus=#{cfg[:diskbus]}" if cfg[:diskbus]
|
@@ -76,6 +83,7 @@ module Inprovise::VBox
|
|
76
83
|
# :os
|
77
84
|
# :network
|
78
85
|
# :netname
|
86
|
+
# :nic
|
79
87
|
# :autostart
|
80
88
|
# :kernel
|
81
89
|
# :kernel_args
|
@@ -131,6 +139,7 @@ module Inprovise::VBox
|
|
131
139
|
:os => vbs.vbox_os(self),
|
132
140
|
:network => vbs.vbox_network(self) || :hostnet,
|
133
141
|
:netname => vbs.vbox_netname(self),
|
142
|
+
:nic => vbs.vbox_nic(self),
|
134
143
|
:graphics => vbs.vbox_graphics(self),
|
135
144
|
:image => vbs.vbox_image(self),
|
136
145
|
:diskbus => vbs.vbox_diskbus(self),
|
@@ -174,12 +183,16 @@ module Inprovise::VBox
|
|
174
183
|
@node_script = Inprovise::DSL.script "#{name}#vbox_node" do
|
175
184
|
|
176
185
|
validate do
|
177
|
-
|
178
|
-
|
179
|
-
raise ArgumentError, "VBox #{vmname} clashes with existing group" if Inprovise::Infrastructure::Group === tgt
|
180
|
-
true
|
186
|
+
if vbs.vbox_no_node(self)
|
187
|
+
config.command != :revert
|
181
188
|
else
|
182
|
-
|
189
|
+
vmname = vbs.vbox_name(self)
|
190
|
+
if tgt = Inprovise::Infrastructure.find(vmname)
|
191
|
+
raise ArgumentError, "VBox #{vmname} clashes with existing group" if Inprovise::Infrastructure::Group === tgt
|
192
|
+
true
|
193
|
+
else
|
194
|
+
false
|
195
|
+
end
|
183
196
|
end
|
184
197
|
end
|
185
198
|
|
@@ -221,7 +234,13 @@ module Inprovise::VBox
|
|
221
234
|
Inprovise::Infrastructure.save unless node_group.empty?
|
222
235
|
unless vbs.vbox_no_sniff(self)
|
223
236
|
# retry on (comm) failure
|
224
|
-
|
237
|
+
begin
|
238
|
+
Inprovise::Sniffer.run_sniffers_for(node)
|
239
|
+
rescue
|
240
|
+
sleep(5) # maybe VM needs more time to start up SSH
|
241
|
+
node.disconnect!
|
242
|
+
Inprovise::Sniffer.run_sniffers_for(node)
|
243
|
+
end
|
225
244
|
Inprovise::Infrastructure.save
|
226
245
|
end
|
227
246
|
log("Added new node #{node}", :bold)
|
@@ -296,6 +315,10 @@ module Inprovise::VBox
|
|
296
315
|
value_for context, context.config[name.to_sym][:netname]
|
297
316
|
end
|
298
317
|
|
318
|
+
def vbox_nic(context)
|
319
|
+
value_for context, context.config[name.to_sym][:nic]
|
320
|
+
end
|
321
|
+
|
299
322
|
def vbox_graphics(context)
|
300
323
|
value_for context, context.config[name.to_sym][:graphics]
|
301
324
|
end
|