kitchen-qemu 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|