inprovise-vbox 0.2.3 → 0.2.4

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODEzMTU2YzNkOWY1NWYxOTI3MzY5MTljMjg2YmYyY2M3NzJmZTI5ZA==
4
+ OTgyMTBmNTdkOWE4MzM2MjIyMmE4NzE4ZmNhODgzMzAyN2Q1ZWIwNw==
5
5
  data.tar.gz: !binary |-
6
- NzljYzMzMjU0OTJlZGNhNjUzYjI4NWE1NTNkMzgzZjE0OGM1NmU4NQ==
6
+ NWJiNGNmOGJhMmQ3YWM0OWZiMmFjN2Q1ODZiMDlmNjU0ZWZiM2Q5NQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NmQzODc1ZGZlMjY3NmRiYWUyOGNiZWUzOGQ1OTY3YTNiMWNjMDBjYTc4NzFk
10
- N2JiNWYxZGQ3NzQ0ZDkxNGFmYzZhZDkyMjgyODRiNDNkZjg5YTIxZDBmYjE4
11
- Y2IyNTg3Y2M4ZjhjZDZlM2Y4ZTRmNGEyN2Q3Njk4MjY1YmRhMjY=
9
+ M2ZiZDFkMTRkNGJhMDg3NWM0ZGYwZmYzYjU5ODc3YTNiM2VjZTdmMTZiMjJj
10
+ ODU0OGE3YjRiYTZhNmM2YmE1NDlhY2U3NzYxZmIxZmUwZTY3MDUwZjIzMmYz
11
+ YWQ0MDdiZjI5NDQzMjExNTQ4OGJiNTllZTA3NDAzYWI4MDE2YWI=
12
12
  data.tar.gz: !binary |-
13
- NmM1ZTA2NzMzNmYwMzQ1MDVhMmNhZTRmMmIzNDJhZjZiNzBmMzU1NzE5OTc1
14
- MmQzMTQxMGU1MzdiMzZiMThmMjNhZDlkNTkzNjA0NTNkMGU2MTZkNzZiZmM1
15
- NjAxM2JiMTY0ZGNjOWM1ZjA5Y2MyYTVkZTgyOGU2Njk4NDk4OWM=
13
+ NmExNTZjYjQ2YjZmNzBlOGM3MzUxYjEzZGU5MzA0ZjRmN2Y3NDgyYjZlMmRj
14
+ ODUwNTUyZTdiOGQzYjg4NDk3Y2ZjNDE4Mjg5MzAwNDQ2NmQyZjM0MTM2YTAz
15
+ ZTg4NmI5NTg0Yjg0ZmQyNDQyZmQ5MTgzMDg1NjQ4OTVhYTFlYTM=
@@ -59,14 +59,14 @@ module Inprovise::VBox
59
59
  end
60
60
 
61
61
  def setup
62
- # verify mandatory configuration
63
- raise ArgumentError, "Missing required configuration for vbox script #{name}" unless Hash === configuration || OpenStruct === configuration
64
62
  # take care of defaults
65
- configuration[:memory] ||= 1024
66
- configuration[:cpus] ||= 1
67
- configuration[:network] ||= :hostnet
63
+ @configuration ||= {}
64
+ @configuration[:arch] ||= 'x86_64'
65
+ @configuration[:memory] ||= 1024
66
+ @configuration[:cpus] ||= 1
67
+ @configuration[:network] ||= :hostnet
68
68
  # generate name if none set
69
- configuration[:name] ||= "#{name}_#{self.hash}_#{Time.now.to_f}"
69
+ @configuration[:name] ||= "#{name}_#{self.hash}_#{Time.now.to_f}"
70
70
 
71
71
  vbs = self
72
72
  # define the scripts that do the actual work as dependencies
@@ -97,8 +97,9 @@ module Inprovise::VBox
97
97
  # 1. verify config
98
98
  raise ArgumentError, "Cannot access VBox image #{vmimg}" unless remote(vmimg).file?
99
99
  # 2. execute virt-install
100
- log("Installing VBox #{vmname}".bold)
100
+ log("Installing VBox #{vmname}", :bold)
101
101
  cmdline = 'virt-install --connect qemu:///system --hvm --virt-type kvm --import --wait 0 '
102
+ cmdline << "--arch #{vbs.vbox_arch(self)} "
102
103
  cmdline << '--autostart ' if vbs.vbox_autostart(self)
103
104
  cmdline << "--name #{vmname} --memory #{vbs.vbox_memory(self)} --vcpus #{vbs.vbox_cpus(self)} "
104
105
  cmdline << "--os-variant #{vbs.vbox_os(self)} " if vbs.vbox_os(self)
@@ -126,17 +127,18 @@ module Inprovise::VBox
126
127
  vmname = vbs.vbox_name(self)
127
128
  if trigger 'vbox:vbox-verify', vmname, true
128
129
  trigger 'vbox:vbox-shutdown', vmname
129
- log.print("Waiting for shutdown of VBox #{vmname}. Please wait ...|".bold)
130
+ msg = "Waiting for shutdown of VBox #{vmname}. Please wait ..."
131
+ log.print("#{msg}|\r", :bold)
130
132
  30.times do |n|
131
133
  sleep(1)
132
- log.print("\b" + %w{| / - \\}[(n+1) % 4].bold)
134
+ log.print("#{msg}#{%w{| / - \\}[(n+1) % 4]}\r", :bold)
133
135
  break unless trigger 'vbox:vbox-verify', vmname, true
134
136
  end
135
137
  if trigger('vbox:vbox-verify', vmname, true)
136
138
  trigger('vbox:vbox-kill', vmname)
137
139
  sleep(1)
138
140
  end
139
- log.println("\bdone".bold)
141
+ log.println("#{msg}done", :bold)
140
142
  end
141
143
  trigger('vbox:vbox-delete', vmname) unless trigger('vbox:vbox-verify', vmname, true)
142
144
  end
@@ -160,17 +162,18 @@ module Inprovise::VBox
160
162
  vmname = vbs.vbox_name(self)
161
163
  unless vbs.vbox_no_node(self)
162
164
  # get MAC and IP for VM
163
- log.print("Determining IP address for VBox #{vmname}. Please wait ...|".bold)
165
+ msg = "Determining IP address for VBox #{vmname}. Please wait ..."
166
+ log.print("#{msg}|\r", :bold)
164
167
  mac = addr = nil
165
168
  150.times do |n|
166
169
  sleep(2)
167
- log.print("\b" + %w{| / - \\}[(n+1) % 4].bold)
170
+ log.print("#{msg}#{%w{| / - \\}[(n+1) % 4]}\r", :bold)
168
171
  mac, addr = trigger 'vbox:vbox-ifaddr', vmname
169
172
  if addr
170
173
  break
171
174
  end
172
175
  end
173
- log.println("\bdone".bold)
176
+ log.println("#{msg}done", :bold)
174
177
  raise RuntimeError, "Failed to determin IP address for VBox #{vmname}" unless addr
175
178
  log("VBox #{vmname} : mac=#{mac}, addr=#{addr}") if Inprovise.verbosity > 0
176
179
  vbox_opts = vbs.vbox_config_hash(self)
@@ -187,7 +190,7 @@ module Inprovise::VBox
187
190
  Inprovise::Sniffer.run_sniffers_for(node) rescue Inprovise::Sniffer.run_sniffers_for(node)
188
191
  Inprovise::Infrastructure.save
189
192
  end
190
- log("Added new node #{node}".bold)
193
+ log("Added new node #{node}", :bold)
191
194
  end
192
195
  end
193
196
 
@@ -199,9 +202,9 @@ module Inprovise::VBox
199
202
  if tgt && Inprovise::Infrastructure::Node === tgt
200
203
  Inprovise::Infrastructure.deregister(vmname)
201
204
  Inprovise::Infrastructure.save
202
- log("Removed node #{tgt}".bold)
205
+ log("Removed node #{tgt}", :bold)
203
206
  else
204
- log("No existing node #{vmname} found!".yellow)
207
+ log("No existing node #{vmname} found!", :yellow)
205
208
  end
206
209
  end
207
210
  end
@@ -235,6 +238,10 @@ module Inprovise::VBox
235
238
  value_for context, context.config[name.to_sym][:image]
236
239
  end
237
240
 
241
+ def vbox_arch(context)
242
+ value_for context, context.config[name.to_sym][:arch]
243
+ end
244
+
238
245
  def vbox_memory(context)
239
246
  value_for context, context.config[name.to_sym][:memory]
240
247
  end
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Inprovise; module VBox
7
7
 
8
- VERSION = '0.2.3'
8
+ VERSION = '0.2.4'
9
9
 
10
10
  end; end
data/test/vbox_test.rb CHANGED
@@ -26,13 +26,16 @@ describe Inprovise::VBox do
26
26
  script.name.must_equal 'myVbox'
27
27
  end
28
28
 
29
- it 'requires a configuration' do
30
- assert_raises ArgumentError do
31
- script = Inprovise::DSL.module_eval do
32
- vbox 'myVbox' do
33
- end
29
+ it 'defines default configuration' do
30
+ script = Inprovise::DSL.module_eval do
31
+ vbox 'myVbox' do
34
32
  end
35
33
  end
34
+ script.configuration.must_be_kind_of Hash
35
+ script.configuration[:arch].must_equal 'x86_64'
36
+ script.configuration[:memory].must_equal 1024
37
+ script.configuration[:cpus].must_equal 1
38
+ script.configuration[:network].must_equal :hostnet
36
39
  end
37
40
  end
38
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inprovise-vbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Corino
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-08 00:00:00.000000000 Z
11
+ date: 2016-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inprovise