vagrant-libvirt 0.8.0 → 0.9.0

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -6
  3. data/lib/vagrant-libvirt/action/create_domain.rb +19 -91
  4. data/lib/vagrant-libvirt/action/destroy_domain.rb +20 -4
  5. data/lib/vagrant-libvirt/action/destroy_networks.rb +1 -1
  6. data/lib/vagrant-libvirt/action/handle_box_image.rb +2 -0
  7. data/lib/vagrant-libvirt/action/resolve_disk_settings.rb +174 -0
  8. data/lib/vagrant-libvirt/action/start_domain.rb +41 -1
  9. data/lib/vagrant-libvirt/action.rb +14 -6
  10. data/lib/vagrant-libvirt/config.rb +12 -4
  11. data/lib/vagrant-libvirt/templates/domain.xml.erb +13 -8
  12. data/lib/vagrant-libvirt/util/domain_flags.rb +15 -0
  13. data/lib/vagrant-libvirt/util.rb +1 -0
  14. data/lib/vagrant-libvirt/version +1 -1
  15. data/locales/en.yml +4 -2
  16. data/spec/support/libvirt_context.rb +4 -0
  17. data/spec/unit/action/cleanup_on_failure_spec.rb +0 -2
  18. data/spec/unit/action/create_domain_spec.rb +113 -147
  19. data/spec/unit/action/create_domain_volume_spec.rb +0 -3
  20. data/spec/unit/action/destroy_domain_spec.rb +43 -10
  21. data/spec/unit/action/handle_box_image_spec.rb +13 -13
  22. data/spec/unit/action/package_domain_spec.rb +0 -5
  23. data/spec/unit/action/resolve_disk_settings_spec/default_domain.xml +43 -0
  24. data/spec/unit/action/resolve_disk_settings_spec/default_no_aliases.xml +42 -0
  25. data/spec/unit/action/{create_domain_spec → resolve_disk_settings_spec}/default_system_storage_pool.xml +0 -0
  26. data/spec/unit/action/resolve_disk_settings_spec/multi_volume_box.xml +55 -0
  27. data/spec/unit/action/resolve_disk_settings_spec/multi_volume_box_additional_and_custom_no_aliases.xml +67 -0
  28. data/spec/unit/action/resolve_disk_settings_spec/multi_volume_box_additional_storage.xml +67 -0
  29. data/spec/unit/action/resolve_disk_settings_spec.rb +361 -0
  30. data/spec/unit/action/start_domain_spec/existing_added_nvram.xml +62 -0
  31. data/spec/unit/action/start_domain_spec/nvram_domain.xml +64 -0
  32. data/spec/unit/action/start_domain_spec/nvram_domain_other_setting.xml +64 -0
  33. data/spec/unit/action/start_domain_spec/nvram_domain_removed.xml +64 -0
  34. data/spec/unit/action/start_domain_spec.rb +64 -6
  35. data/spec/unit/action/wait_till_up_spec.rb +0 -2
  36. data/spec/unit/action_spec.rb +0 -3
  37. data/spec/unit/config_spec.rb +18 -0
  38. data/spec/unit/driver_spec.rb +2 -0
  39. data/spec/unit/templates/domain_all_settings.xml +8 -2
  40. data/spec/unit/templates/domain_spec.rb +3 -2
  41. metadata +38 -16
@@ -0,0 +1,361 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ require 'fog/libvirt/models/compute/volume'
6
+
7
+ require 'vagrant-libvirt/action/resolve_disk_settings'
8
+
9
+ describe VagrantPlugins::ProviderLibvirt::Action::ResolveDiskSettings do
10
+ subject { described_class.new(app, env) }
11
+
12
+ include_context 'unit'
13
+ include_context 'libvirt'
14
+
15
+ let(:servers) { double('servers') }
16
+ let(:volumes) { double('volumes') }
17
+ let(:domain_volume) { instance_double(::Fog::Libvirt::Compute::Volume) }
18
+ let(:libvirt_storage_pool) { double('storage_pool') }
19
+
20
+ let(:domain_xml) { File.read(File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), domain_xml_file)) }
21
+ let(:storage_pool_xml) do
22
+ File.read(File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), storage_pool_xml_file))
23
+ end
24
+
25
+ before do
26
+ allow(logger).to receive(:info)
27
+ allow(logger).to receive(:debug)
28
+ end
29
+
30
+ describe '#call' do
31
+ before do
32
+ allow(connection).to receive(:volumes).and_return(volumes)
33
+ allow(volumes).to receive(:all).and_return([domain_volume])
34
+ allow(domain_volume).to receive(:pool_name).and_return('default')
35
+ allow(domain_volume).to receive(:path).and_return('/var/lib/libvirt/images/vagrant-test_default.img')
36
+ end
37
+
38
+ context 'when vm box is in use' do
39
+ context 'when box metadata is available' do
40
+ let(:box_volumes) do
41
+ [
42
+ {
43
+ path: '/test/box.img',
44
+ name: 'test_vagrant_box_image_1.1.1_box.img',
45
+ },
46
+ ]
47
+ end
48
+
49
+ before do
50
+ env[:domain_name] = 'vagrant-test_default'
51
+ env[:box_volumes] = box_volumes
52
+ end
53
+
54
+ it 'should populate domain volume' do
55
+ expect(subject.call(env)).to be_nil
56
+ expect(env[:domain_volumes]).to match(
57
+ [
58
+ hash_including(
59
+ device: 'vda',
60
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
61
+ ),
62
+ ]
63
+ )
64
+ end
65
+
66
+ context 'when additional storage specified' do
67
+ let(:vagrantfile_providerconfig) do
68
+ <<-EOF
69
+ libvirt.storage :file, :size => '20G'
70
+ EOF
71
+ end
72
+
73
+ it 'should use the next device for storage' do
74
+ expect(subject.call(env)).to be_nil
75
+ expect(env[:disks]).to match(
76
+ [
77
+ hash_including(
78
+ device: 'vdb',
79
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vdb.qcow2'
80
+ ),
81
+ ]
82
+ )
83
+ end
84
+ end
85
+
86
+ context 'when custom disk device setting' do
87
+ before do
88
+ machine.provider_config.disk_device = 'sda'
89
+ end
90
+
91
+ it 'should set the domain device' do
92
+ expect(subject.call(env)).to be_nil
93
+ expect(env[:domain_volumes]).to match(
94
+ [
95
+ hash_including(
96
+ device: 'sda',
97
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
98
+ ),
99
+ ]
100
+ )
101
+ end
102
+
103
+ context 'when additional storage specified' do
104
+ let(:vagrantfile_providerconfig) do
105
+ <<-EOF
106
+ libvirt.storage :file, :size => '20G'
107
+ EOF
108
+ end
109
+
110
+ it 'should use the next custom disk device for storage' do
111
+ expect(subject.call(env)).to be_nil
112
+ expect(env[:disks]).to match(
113
+ [
114
+ hash_including(
115
+ device: 'sdb',
116
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-sdb.qcow2'
117
+ ),
118
+ ]
119
+ )
120
+ end
121
+ end
122
+ end
123
+
124
+ context 'when multiple box volumes' do
125
+ let(:box_volumes) do
126
+ [
127
+ {
128
+ path: '/test/box.img',
129
+ name: 'test_vagrant_box_image_1.1.1_box.img',
130
+ },
131
+ {
132
+ path: '/test/box_2.img',
133
+ name: 'test_vagrant_box_image_1.1.1_box_2.img',
134
+ },
135
+ ]
136
+ end
137
+ it 'should populate all domain volumes' do
138
+ expect(subject.call(env)).to be_nil
139
+ expect(env[:domain_volumes]).to match(
140
+ [
141
+ hash_including(
142
+ device: 'vda',
143
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
144
+ ),
145
+ hash_including(
146
+ device: 'vdb',
147
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
148
+ ),
149
+ ]
150
+ )
151
+ end
152
+
153
+ context 'when additional storage specified' do
154
+ let(:vagrantfile_providerconfig) do
155
+ <<-EOF
156
+ libvirt.storage :file, :size => '20G'
157
+ EOF
158
+ end
159
+
160
+ it 'should use the next device for storage' do
161
+ expect(subject.call(env)).to be_nil
162
+ expect(env[:disks]).to match(
163
+ [
164
+ hash_including(
165
+ device: 'vdc',
166
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vdc.qcow2'
167
+ ),
168
+ ]
169
+ )
170
+ end
171
+ end
172
+ end
173
+ end
174
+
175
+ context 'when box metadata is not available' do
176
+ let(:domain_xml_file) { 'default_domain.xml' }
177
+
178
+ before do
179
+ expect(libvirt_client).to receive(:lookup_domain_by_uuid).and_return(libvirt_domain)
180
+ expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml)
181
+ end
182
+
183
+ it 'should query the domain xml' do
184
+ expect(subject.call(env)).to be_nil
185
+ expect(env[:domain_volumes]).to match(
186
+ [
187
+ hash_including(
188
+ device: 'vda',
189
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
190
+ ),
191
+ ]
192
+ )
193
+ end
194
+
195
+ context 'when multiple volumes in domain config' do
196
+ let(:domain_xml_file) { 'multi_volume_box.xml' }
197
+
198
+ it 'should populate domain volumes with devices' do
199
+ expect(subject.call(env)).to be_nil
200
+ expect(env[:domain_volumes]).to match(
201
+ [
202
+ hash_including(
203
+ device: 'vda',
204
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
205
+ ),
206
+ hash_including(
207
+ device: 'vdb',
208
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default_1.img'
209
+ ),
210
+ hash_including(
211
+ device: 'vdc',
212
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default_2.img'
213
+ ),
214
+ ]
215
+ )
216
+ end
217
+
218
+ context 'when additional storage in domain config' do
219
+ let(:domain_xml_file) { 'multi_volume_box_additional_storage.xml' }
220
+ let(:vagrantfile_providerconfig) do
221
+ <<-EOF
222
+ libvirt.storage :file, :size => '20G'
223
+ libvirt.storage :file, :size => '20G'
224
+ EOF
225
+ end
226
+
227
+ it 'should populate disks with devices' do
228
+ expect(subject.call(env)).to be_nil
229
+ expect(env[:disks]).to match(
230
+ [
231
+ hash_including(
232
+ device: 'vdd',
233
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vdd.qcow2'
234
+ ),
235
+ hash_including(
236
+ device: 'vde',
237
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vde.qcow2'
238
+ ),
239
+ ]
240
+ )
241
+ end
242
+ end
243
+ end
244
+
245
+ context 'when no aliases available' do
246
+ let(:domain_xml_file) { 'default_no_aliases.xml' }
247
+
248
+ it 'should assume a single box volume' do
249
+ expect(subject.call(env)).to be_nil
250
+ expect(env[:domain_volumes]).to match(
251
+ [
252
+ hash_including(
253
+ device: 'vda',
254
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
255
+ ),
256
+ ]
257
+ )
258
+ end
259
+
260
+ context 'when additional storage and a custom disk device attached' do
261
+ let(:domain_xml_file) { 'multi_volume_box_additional_and_custom_no_aliases.xml' }
262
+ let(:vagrantfile_providerconfig) do
263
+ <<-EOF
264
+ libvirt.storage :file, :size => '20G'
265
+ libvirt.storage :file, :size => '20G'
266
+ EOF
267
+ end
268
+
269
+ it 'should detect the domain volumes and disks while ignoring the last one' do
270
+ expect(subject.call(env)).to be_nil
271
+ expect(env[:domain_volumes]).to match(
272
+ [
273
+ hash_including(
274
+ device: 'vda',
275
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
276
+ ),
277
+ hash_including(
278
+ device: 'vdb',
279
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default_1.img'
280
+ ),
281
+ hash_including(
282
+ device: 'vdc',
283
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default_2.img'
284
+ ),
285
+ ]
286
+ )
287
+ expect(env[:disks]).to match(
288
+ [
289
+ hash_including(
290
+ device: 'vdd',
291
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vdd.qcow2'
292
+ ),
293
+ hash_including(
294
+ device: 'vde',
295
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vde.qcow2'
296
+ ),
297
+ ]
298
+ )
299
+ end
300
+ end
301
+ end
302
+ end
303
+
304
+ context 'no default pool' do
305
+ let(:domain_xml_file) { 'default_domain.xml' }
306
+ let(:vagrantfile) do
307
+ <<-EOF
308
+ Vagrant.configure('2') do |config|
309
+ config.vm.define :test
310
+ end
311
+ EOF
312
+ end
313
+
314
+ it 'should raise an exception' do
315
+ expect(libvirt_client).to receive(:lookup_domain_by_uuid).and_return(libvirt_domain)
316
+ expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml)
317
+ expect(libvirt_client).to receive(:lookup_storage_pool_by_name).and_return(nil)
318
+
319
+ expect { subject.call(env) }.to raise_error(VagrantPlugins::ProviderLibvirt::Errors::NoStoragePool)
320
+ end
321
+ end
322
+ end
323
+
324
+ context 'when no box defined' do
325
+ let(:domain_xml_file) { 'default_domain.xml' }
326
+ let(:storage_pool_xml_file) { 'default_system_storage_pool.xml' }
327
+ let(:vagrantfile) do
328
+ <<-EOF
329
+ Vagrant.configure('2') do |config|
330
+ config.vm.define :test
331
+ config.vm.provider :libvirt do |libvirt|
332
+ libvirt.storage :file, :size => '20G'
333
+ end
334
+ end
335
+ EOF
336
+ end
337
+
338
+ it 'should query for domain name and storage pool path' do
339
+ expect(libvirt_client).to receive(:lookup_domain_by_uuid).and_return(libvirt_domain)
340
+ expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml)
341
+ expect(libvirt_client).to receive(:lookup_storage_pool_by_name).and_return(libvirt_storage_pool)
342
+ expect(libvirt_storage_pool).to receive(:xml_desc).and_return(storage_pool_xml)
343
+
344
+ expect(subject.call(env)).to be_nil
345
+ expect(env[:disks]).to match(
346
+ [
347
+ hash_including(
348
+ device: 'vda',
349
+ cache: 'default',
350
+ bus: 'virtio',
351
+ path: 'vagrant-test_default-vda.qcow2',
352
+ absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vda.qcow2',
353
+ size: '20G',
354
+ pool: 'default'
355
+ ),
356
+ ]
357
+ )
358
+ end
359
+ end
360
+ end
361
+ end
@@ -0,0 +1,62 @@
1
+ <domain type='qemu'>
2
+ <name>vagrant-libvirt_default</name>
3
+ <uuid>881a931b-0110-4d10-81aa-47a1a19f5726</uuid>
4
+ <description>Source: /home/test/vagrant-libvirt/Vagrantfile</description>
5
+ <memory unit='KiB'>2097152</memory>
6
+ <currentMemory unit='KiB'>2097152</currentMemory>
7
+ <vcpu placement='static'>2</vcpu>
8
+ <os>
9
+ <type arch='x86_64' machine='pc-i440fx-6.0'>hvm</type><loader type='pflash'>/path/to/loader/file</loader><nvram>/path/to/nvram/file</nvram>
10
+ <boot dev='hd'/>
11
+ </os>
12
+ <features>
13
+ <acpi/>
14
+ <apic/>
15
+ <pae/>
16
+ </features>
17
+ <cpu check='partial' mode='host-model'/>
18
+ <clock offset='utc'/>
19
+ <on_poweroff>destroy</on_poweroff>
20
+ <on_reboot>restart</on_reboot>
21
+ <on_crash>destroy</on_crash>
22
+ <devices>
23
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
24
+ <disk device='disk' type='file'>
25
+ <driver name='qemu' type='qcow2'/>
26
+ <source file='/var/lib/libvirt/images/vagrant-libvirt_default.img'/>
27
+ <target bus='virtio' dev='vda'/>
28
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x03' type='pci'/>
29
+ </disk>
30
+ <controller index='0' model='piix3-uhci' type='usb'>
31
+ <address bus='0x00' domain='0x0000' function='0x2' slot='0x01' type='pci'/>
32
+ </controller>
33
+ <controller index='0' model='pci-root' type='pci'/>
34
+ <interface type='network'>
35
+ <mac address='52:54:00:7d:14:0e'/>
36
+ <source network='vagrant-libvirt'/>
37
+ <model type='virtio'/>
38
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x05' type='pci'/>
39
+ </interface>
40
+ <serial type='pty'>
41
+ <target port='0' type='isa-serial'>
42
+ <model name='isa-serial'/>
43
+ </target>
44
+ </serial>
45
+ <console type='pty'>
46
+ <target port='0' type='serial'/>
47
+ </console>
48
+ <input bus='ps2' type='mouse'/>
49
+ <input bus='ps2' type='keyboard'/>
50
+ <graphics autoport='yes' keymap='en-us' listen='127.0.0.1' port='-1' type='vnc'>
51
+ <listen address='127.0.0.1' type='address'/>
52
+ </graphics>
53
+ <audio id='1' type='none'/>
54
+ <video>
55
+ <model heads='1' primary='yes' type='cirrus' vram='16384'/>
56
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x02' type='pci'/>
57
+ </video>
58
+ <memballoon model='virtio'>
59
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x04' type='pci'/>
60
+ </memballoon>
61
+ </devices>
62
+ </domain>
@@ -0,0 +1,64 @@
1
+ <domain type='qemu'>
2
+ <name>vagrant-libvirt_default</name>
3
+ <uuid>881a931b-0110-4d10-81aa-47a1a19f5726</uuid>
4
+ <description>Source: /home/test/vagrant-libvirt/Vagrantfile</description>
5
+ <memory unit='KiB'>2097152</memory>
6
+ <currentMemory unit='KiB'>2097152</currentMemory>
7
+ <vcpu placement='static'>2</vcpu>
8
+ <os>
9
+ <type arch='x86_64' machine='pc-i440fx-6.0'>hvm</type>
10
+ <loader type='pflash'>/path/to/loader/file</loader>
11
+ <nvram>/path/to/nvram/file</nvram>
12
+ <boot dev='hd'/>
13
+ </os>
14
+ <features>
15
+ <acpi/>
16
+ <apic/>
17
+ <pae/>
18
+ </features>
19
+ <cpu mode='host-model' check='partial'/>
20
+ <clock offset='utc'/>
21
+ <on_poweroff>destroy</on_poweroff>
22
+ <on_reboot>restart</on_reboot>
23
+ <on_crash>destroy</on_crash>
24
+ <devices>
25
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
26
+ <disk type='file' device='disk'>
27
+ <driver name='qemu' type='qcow2'/>
28
+ <source file='/var/lib/libvirt/images/vagrant-libvirt_default.img'/>
29
+ <target dev='vda' bus='virtio'/>
30
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
31
+ </disk>
32
+ <controller type='usb' index='0' model='piix3-uhci'>
33
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
34
+ </controller>
35
+ <controller type='pci' index='0' model='pci-root'/>
36
+ <interface type='network'>
37
+ <mac address='52:54:00:7d:14:0e'/>
38
+ <source network='vagrant-libvirt'/>
39
+ <model type='virtio'/>
40
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
41
+ </interface>
42
+ <serial type='pty'>
43
+ <target type='isa-serial' port='0'>
44
+ <model name='isa-serial'/>
45
+ </target>
46
+ </serial>
47
+ <console type='pty'>
48
+ <target type='serial' port='0'/>
49
+ </console>
50
+ <input type='mouse' bus='ps2'/>
51
+ <input type='keyboard' bus='ps2'/>
52
+ <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'>
53
+ <listen type='address' address='127.0.0.1'/>
54
+ </graphics>
55
+ <audio id='1' type='none'/>
56
+ <video>
57
+ <model type='cirrus' vram='16384' heads='1' primary='yes'/>
58
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
59
+ </video>
60
+ <memballoon model='virtio'>
61
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
62
+ </memballoon>
63
+ </devices>
64
+ </domain>
@@ -0,0 +1,64 @@
1
+ <domain type='qemu'>
2
+ <name>vagrant-libvirt_default</name>
3
+ <uuid>881a931b-0110-4d10-81aa-47a1a19f5726</uuid>
4
+ <description>Source: /home/test/vagrant-libvirt/Vagrantfile</description>
5
+ <memory unit='KiB'>2097152</memory>
6
+ <currentMemory unit='KiB'>2097152</currentMemory>
7
+ <vcpu placement='static'>4</vcpu>
8
+ <os>
9
+ <type arch='x86_64' machine='pc-i440fx-6.0'>hvm</type>
10
+ <loader type='pflash'>/path/to/loader/file</loader>
11
+ <nvram>/path/to/nvram/file</nvram>
12
+ <boot dev='hd'/>
13
+ </os>
14
+ <features>
15
+ <acpi/>
16
+ <apic/>
17
+ <pae/>
18
+ </features>
19
+ <cpu check='partial' mode='host-model'/>
20
+ <clock offset='utc'/>
21
+ <on_poweroff>destroy</on_poweroff>
22
+ <on_reboot>restart</on_reboot>
23
+ <on_crash>destroy</on_crash>
24
+ <devices>
25
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
26
+ <disk device='disk' type='file'>
27
+ <driver name='qemu' type='qcow2'/>
28
+ <source file='/var/lib/libvirt/images/vagrant-libvirt_default.img'/>
29
+ <target bus='virtio' dev='vda'/>
30
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x03' type='pci'/>
31
+ </disk>
32
+ <controller index='0' model='piix3-uhci' type='usb'>
33
+ <address bus='0x00' domain='0x0000' function='0x2' slot='0x01' type='pci'/>
34
+ </controller>
35
+ <controller index='0' model='pci-root' type='pci'/>
36
+ <interface type='network'>
37
+ <mac address='52:54:00:7d:14:0e'/>
38
+ <source network='vagrant-libvirt'/>
39
+ <model type='virtio'/>
40
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x05' type='pci'/>
41
+ </interface>
42
+ <serial type='pty'>
43
+ <target port='0' type='isa-serial'>
44
+ <model name='isa-serial'/>
45
+ </target>
46
+ </serial>
47
+ <console type='pty'>
48
+ <target port='0' type='serial'/>
49
+ </console>
50
+ <input bus='ps2' type='mouse'/>
51
+ <input bus='ps2' type='keyboard'/>
52
+ <graphics autoport='yes' keymap='en-us' listen='127.0.0.1' port='-1' type='vnc'>
53
+ <listen address='127.0.0.1' type='address'/>
54
+ </graphics>
55
+ <audio id='1' type='none'/>
56
+ <video>
57
+ <model heads='1' primary='yes' type='cirrus' vram='16384'/>
58
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x02' type='pci'/>
59
+ </video>
60
+ <memballoon model='virtio'>
61
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x04' type='pci'/>
62
+ </memballoon>
63
+ </devices>
64
+ </domain>
@@ -0,0 +1,64 @@
1
+ <domain type='qemu'>
2
+ <name>vagrant-libvirt_default</name>
3
+ <uuid>881a931b-0110-4d10-81aa-47a1a19f5726</uuid>
4
+ <description>Source: /home/test/vagrant-libvirt/Vagrantfile</description>
5
+ <memory unit='KiB'>2097152</memory>
6
+ <currentMemory unit='KiB'>2097152</currentMemory>
7
+ <vcpu placement='static'>2</vcpu>
8
+ <os>
9
+ <type arch='x86_64' machine='pc-i440fx-6.0'>hvm</type>
10
+
11
+
12
+ <boot dev='hd'/>
13
+ </os>
14
+ <features>
15
+ <acpi/>
16
+ <apic/>
17
+ <pae/>
18
+ </features>
19
+ <cpu check='partial' mode='host-model'/>
20
+ <clock offset='utc'/>
21
+ <on_poweroff>destroy</on_poweroff>
22
+ <on_reboot>restart</on_reboot>
23
+ <on_crash>destroy</on_crash>
24
+ <devices>
25
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
26
+ <disk device='disk' type='file'>
27
+ <driver name='qemu' type='qcow2'/>
28
+ <source file='/var/lib/libvirt/images/vagrant-libvirt_default.img'/>
29
+ <target bus='virtio' dev='vda'/>
30
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x03' type='pci'/>
31
+ </disk>
32
+ <controller index='0' model='piix3-uhci' type='usb'>
33
+ <address bus='0x00' domain='0x0000' function='0x2' slot='0x01' type='pci'/>
34
+ </controller>
35
+ <controller index='0' model='pci-root' type='pci'/>
36
+ <interface type='network'>
37
+ <mac address='52:54:00:7d:14:0e'/>
38
+ <source network='vagrant-libvirt'/>
39
+ <model type='virtio'/>
40
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x05' type='pci'/>
41
+ </interface>
42
+ <serial type='pty'>
43
+ <target port='0' type='isa-serial'>
44
+ <model name='isa-serial'/>
45
+ </target>
46
+ </serial>
47
+ <console type='pty'>
48
+ <target port='0' type='serial'/>
49
+ </console>
50
+ <input bus='ps2' type='mouse'/>
51
+ <input bus='ps2' type='keyboard'/>
52
+ <graphics autoport='yes' keymap='en-us' listen='127.0.0.1' port='-1' type='vnc'>
53
+ <listen address='127.0.0.1' type='address'/>
54
+ </graphics>
55
+ <audio id='1' type='none'/>
56
+ <video>
57
+ <model heads='1' primary='yes' type='cirrus' vram='16384'/>
58
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x02' type='pci'/>
59
+ </video>
60
+ <memballoon model='virtio'>
61
+ <address bus='0x00' domain='0x0000' function='0x0' slot='0x04' type='pci'/>
62
+ </memballoon>
63
+ </devices>
64
+ </domain>