kitchen-qemu 0.1.1 → 0.1.2
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/kitchen/driver/qemu.rb +16 -23
- data/lib/kitchen/driver/qemu_version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1029f7e678c666e950af682e6efa5ef223f2fc21
|
4
|
+
data.tar.gz: 3bb85ec743a685a5a4e9adf9b166b21117a1caf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28214283a12ec0d94a6b59551a438de3eaa4804dbdd2fe5c53d0be3fa33b70eaf054184e43f44d324e24eeaeef9b80565168a6273d42d652596cb31a0c013797
|
7
|
+
data.tar.gz: cee503538175132530f22439bf3259556fbbcbb0af878a0444199b5cbb35e9f400abb8d45bc8e87913e0780d6f0458767f085c5f9345a1fe0502f8ba97c74433
|
data/lib/kitchen/driver/qemu.rb
CHANGED
@@ -37,6 +37,7 @@ module Kitchen
|
|
37
37
|
default_config :username, 'kitchen'
|
38
38
|
default_config :password, 'kitchen'
|
39
39
|
default_config :port, 2222
|
40
|
+
default_config :display, 'none'
|
40
41
|
default_config :memory, '512'
|
41
42
|
default_config :nic_model, 'virtio'
|
42
43
|
|
@@ -59,9 +60,7 @@ module Kitchen
|
|
59
60
|
config[:binary] = @@archbinary[config[:arch]] or
|
60
61
|
raise UserError, "Unknown architecture '#{config[:arch]}'"
|
61
62
|
end
|
62
|
-
|
63
|
-
config[:spice] = "addr=#{spice_path},unix"
|
64
|
-
end
|
63
|
+
config[:vga] = 'qxl' if config[:spice] && !config[:vga]
|
65
64
|
self
|
66
65
|
end
|
67
66
|
|
@@ -75,6 +74,7 @@ module Kitchen
|
|
75
74
|
begin
|
76
75
|
mon = UNIXSocket.new(monitor)
|
77
76
|
rescue Errno::ECONNREFUSED
|
77
|
+
info 'Stale monitor socket detected. Assuming old QEMU already quit.'
|
78
78
|
cleanup!
|
79
79
|
else
|
80
80
|
mon.close
|
@@ -94,9 +94,10 @@ module Kitchen
|
|
94
94
|
|
95
95
|
cmd = [
|
96
96
|
config[:binary], '-daemonize',
|
97
|
+
'-display', config[:display].to_s,
|
97
98
|
'-chardev', "socket,id=monitor,path=#{monitor},server,nowait",
|
98
99
|
'-mon', 'chardev=monitor,mode=control,default',
|
99
|
-
'-m', config[:memory],
|
100
|
+
'-m', config[:memory].to_s,
|
100
101
|
'-net', "nic,model=#{config[:nic_model]}",
|
101
102
|
'-net', "user,net=192.168.1.0/24,hostname=#{hostname},hostfwd=tcp::#{state[:port]}-:22",
|
102
103
|
'-device', 'virtio-scsi-pci,id=scsi',
|
@@ -124,15 +125,13 @@ module Kitchen
|
|
124
125
|
info 'KVM disabled'
|
125
126
|
end
|
126
127
|
|
127
|
-
if config[:
|
128
|
-
|
129
|
-
|
130
|
-
cmd.push('-vnc', config[:vnc])
|
131
|
-
end
|
128
|
+
cmd.push('-vga', config[:vga].to_s) if config[:vga]
|
129
|
+
cmd.push('-spice', config[:spice].to_s) if config[:spice]
|
130
|
+
cmd.push('-vnc', config[:vnc].to_s) if config[:vnc]
|
132
131
|
|
133
132
|
info 'Spawning QEMU..'
|
134
133
|
error = nil
|
135
|
-
Open3.popen3({ 'QEMU_AUDIO_DRV' => 'none' }, *cmd
|
134
|
+
Open3.popen3({ 'QEMU_AUDIO_DRV' => 'none' }, *cmd) do |_, _, err, thr|
|
136
135
|
if not thr.value.success?
|
137
136
|
error = err.read.strip
|
138
137
|
end
|
@@ -213,9 +212,9 @@ jxl4Yo9wNmkVrWMkOUn1BRWTEVLnx88EaIOu3CJyJDsaSufbyENCtCXhjVEV4Eqp
|
|
213
212
|
kc9GOsm4n+EVnWyhUVjwxEExaCRuFa4aJ/ekLZYtepNnd9Nsoknqd1SVW163QjrY
|
214
213
|
tY4IM9IaSC2LuPFVc0Kx6TwObdeQScOokIxL3HfayfLKieTLC+w2
|
215
214
|
-----END RSA PRIVATE KEY-----
|
216
|
-
}
|
215
|
+
}.freeze
|
217
216
|
|
218
|
-
@@pubkey = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIboBIvdtZLruuwDksO8qd90IFqArrUHksiv4292MrehEqEKqpGzto1I86oy7Y1sqi3j8G0PSFaKkXsICwyor7bjVygxTDFFOWq+h78vvFnbgq1qOubWST/E1QY/m9bIryxh9icNS4tLKlFpn9l9a4pmBAsN07DYVaocVUugkOxeCxr/KLUXdvmXj4Xfq837ultL1ggyaN2YqeDwn+GxM8RNm51rIRa4DL6Y1rPgztm3FL+A9MglzEjELbs8s6EDVewAG6do1HwS3LqCGxlfZgRieelzIHkyaqLRU4mzqbkhmfaR/U/fHQppRDYWb3CoCSBilJxxYfjLK1VDyXOWkH kitchen-qemu'
|
217
|
+
@@pubkey = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIboBIvdtZLruuwDksO8qd90IFqArrUHksiv4292MrehEqEKqpGzto1I86oy7Y1sqi3j8G0PSFaKkXsICwyor7bjVygxTDFFOWq+h78vvFnbgq1qOubWST/E1QY/m9bIryxh9icNS4tLKlFpn9l9a4pmBAsN07DYVaocVUugkOxeCxr/KLUXdvmXj4Xfq837ultL1ggyaN2YqeDwn+GxM8RNm51rIRa4DL6Y1rPgztm3FL+A9MglzEjELbs8s6EDVewAG6do1HwS3LqCGxlfZgRieelzIHkyaqLRU4mzqbkhmfaR/U/fHQppRDYWb3CoCSBilJxxYfjLK1VDyXOWkH kitchen-qemu'.freeze
|
219
218
|
|
220
219
|
@@archbinary = {
|
221
220
|
'i386' => 'qemu-system-i386',
|
@@ -224,7 +223,7 @@ tY4IM9IaSC2LuPFVc0Kx6TwObdeQScOokIxL3HfayfLKieTLC+w2
|
|
224
223
|
'x86_64' => 'qemu-system-x86_64',
|
225
224
|
'32bit' => 'qemu-system-i386',
|
226
225
|
'64bit' => 'qemu-system-x86_64',
|
227
|
-
}
|
226
|
+
}.freeze
|
228
227
|
|
229
228
|
def privkey_path
|
230
229
|
File.join(config[:kitchen_root], '.kitchen', 'kitchen-qemu.key')
|
@@ -234,10 +233,6 @@ tY4IM9IaSC2LuPFVc0Kx6TwObdeQScOokIxL3HfayfLKieTLC+w2
|
|
234
233
|
File.join(config[:kitchen_root], '.kitchen', "#{instance.name}.mon")
|
235
234
|
end
|
236
235
|
|
237
|
-
def spice_path
|
238
|
-
File.join(config[:kitchen_root], '.kitchen', "#{instance.name}.spice")
|
239
|
-
end
|
240
|
-
|
241
236
|
def create_privkey
|
242
237
|
path = privkey_path
|
243
238
|
return true if File.file?(path)
|
@@ -245,12 +240,10 @@ tY4IM9IaSC2LuPFVc0Kx6TwObdeQScOokIxL3HfayfLKieTLC+w2
|
|
245
240
|
end
|
246
241
|
|
247
242
|
def cleanup!
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
# do nothing
|
253
|
-
end
|
243
|
+
begin
|
244
|
+
File.delete(monitor_path)
|
245
|
+
rescue Errno::ENOENT
|
246
|
+
# do nothing
|
254
247
|
end
|
255
248
|
end
|
256
249
|
|