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.
- checksums.yaml +4 -4
- data/README.md +9 -6
- data/lib/vagrant-libvirt/action/create_domain.rb +19 -91
- data/lib/vagrant-libvirt/action/destroy_domain.rb +20 -4
- data/lib/vagrant-libvirt/action/destroy_networks.rb +1 -1
- data/lib/vagrant-libvirt/action/handle_box_image.rb +2 -0
- data/lib/vagrant-libvirt/action/resolve_disk_settings.rb +174 -0
- data/lib/vagrant-libvirt/action/start_domain.rb +41 -1
- data/lib/vagrant-libvirt/action.rb +14 -6
- data/lib/vagrant-libvirt/config.rb +12 -4
- data/lib/vagrant-libvirt/templates/domain.xml.erb +13 -8
- data/lib/vagrant-libvirt/util/domain_flags.rb +15 -0
- data/lib/vagrant-libvirt/util.rb +1 -0
- data/lib/vagrant-libvirt/version +1 -1
- data/locales/en.yml +4 -2
- data/spec/support/libvirt_context.rb +4 -0
- data/spec/unit/action/cleanup_on_failure_spec.rb +0 -2
- data/spec/unit/action/create_domain_spec.rb +113 -147
- data/spec/unit/action/create_domain_volume_spec.rb +0 -3
- data/spec/unit/action/destroy_domain_spec.rb +43 -10
- data/spec/unit/action/handle_box_image_spec.rb +13 -13
- data/spec/unit/action/package_domain_spec.rb +0 -5
- data/spec/unit/action/resolve_disk_settings_spec/default_domain.xml +43 -0
- data/spec/unit/action/resolve_disk_settings_spec/default_no_aliases.xml +42 -0
- data/spec/unit/action/{create_domain_spec → resolve_disk_settings_spec}/default_system_storage_pool.xml +0 -0
- data/spec/unit/action/resolve_disk_settings_spec/multi_volume_box.xml +55 -0
- data/spec/unit/action/resolve_disk_settings_spec/multi_volume_box_additional_and_custom_no_aliases.xml +67 -0
- data/spec/unit/action/resolve_disk_settings_spec/multi_volume_box_additional_storage.xml +67 -0
- data/spec/unit/action/resolve_disk_settings_spec.rb +361 -0
- data/spec/unit/action/start_domain_spec/existing_added_nvram.xml +62 -0
- data/spec/unit/action/start_domain_spec/nvram_domain.xml +64 -0
- data/spec/unit/action/start_domain_spec/nvram_domain_other_setting.xml +64 -0
- data/spec/unit/action/start_domain_spec/nvram_domain_removed.xml +64 -0
- data/spec/unit/action/start_domain_spec.rb +64 -6
- data/spec/unit/action/wait_till_up_spec.rb +0 -2
- data/spec/unit/action_spec.rb +0 -3
- data/spec/unit/config_spec.rb +18 -0
- data/spec/unit/driver_spec.rb +2 -0
- data/spec/unit/templates/domain_all_settings.xml +8 -2
- data/spec/unit/templates/domain_spec.rb +3 -2
- metadata +38 -16
@@ -15,7 +15,6 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
15
15
|
include_context 'unit'
|
16
16
|
include_context 'libvirt'
|
17
17
|
|
18
|
-
let(:libvirt_client) { double('libvirt_client') }
|
19
18
|
let(:volumes) { double('volumes') }
|
20
19
|
let(:all) { double('all') }
|
21
20
|
let(:box_volume) { double('box_volume') }
|
@@ -54,17 +53,13 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
54
53
|
byte_number_20G = ByteNumber.new(21474836480)
|
55
54
|
|
56
55
|
|
57
|
-
|
58
|
-
|
59
56
|
describe '#call' do
|
60
57
|
before do
|
61
|
-
allow_any_instance_of(VagrantPlugins::ProviderLibvirt::Driver)
|
62
|
-
.to receive(:connection).and_return(connection)
|
63
|
-
allow(connection).to receive(:client).and_return(libvirt_client)
|
64
58
|
allow(connection).to receive(:volumes).and_return(volumes)
|
65
59
|
allow(volumes).to receive(:all).and_return(all)
|
66
60
|
allow(env[:ui]).to receive(:clear_line)
|
67
61
|
|
62
|
+
env[:machine].provider_config.disk_device = 'vda'
|
68
63
|
end
|
69
64
|
|
70
65
|
context 'when one disk in metadata.json' do
|
@@ -92,7 +87,8 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
92
87
|
:path=>"/test/box.img",
|
93
88
|
:name=>"test_vagrant_box_image_1.1.1_box.img",
|
94
89
|
:virtual_size=>byte_number_5G,
|
95
|
-
:format=>"qcow2"
|
90
|
+
:format=>"qcow2",
|
91
|
+
:device=>'vda',
|
96
92
|
}
|
97
93
|
]
|
98
94
|
)
|
@@ -121,7 +117,8 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
121
117
|
:path=>"/test/box.img",
|
122
118
|
:name=>"test_vagrant_box_image_0_#{box_mtime.to_i}_box.img",
|
123
119
|
:virtual_size=>byte_number_5G,
|
124
|
-
:format=>"qcow2"
|
120
|
+
:format=>"qcow2",
|
121
|
+
:device=>'vda',
|
125
122
|
}
|
126
123
|
]
|
127
124
|
)
|
@@ -130,7 +127,7 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
130
127
|
|
131
128
|
context 'When config.machine_virtual_size is set and smaller than box_virtual_size' do
|
132
129
|
before do
|
133
|
-
|
130
|
+
env[:machine].provider_config.machine_virtual_size = 1
|
134
131
|
end
|
135
132
|
it 'should warning must be raise' do
|
136
133
|
expect(ui).to receive(:warn).with("Ignoring requested virtual disk size of '1' as it is below\nthe minimum box image size of '5'.")
|
@@ -141,7 +138,8 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
141
138
|
:path=>"/test/box.img",
|
142
139
|
:name=>"test_vagrant_box_image_1.1.1_box.img",
|
143
140
|
:virtual_size=>byte_number_5G,
|
144
|
-
:format=>"qcow2"
|
141
|
+
:format=>"qcow2",
|
142
|
+
:device=>'vda',
|
145
143
|
}
|
146
144
|
]
|
147
145
|
)
|
@@ -150,7 +148,7 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
150
148
|
|
151
149
|
context 'When config.machine_virtual_size is set and higher than box_virtual_size' do
|
152
150
|
before do
|
153
|
-
|
151
|
+
env[:machine].provider_config.machine_virtual_size = 20
|
154
152
|
end
|
155
153
|
it 'should be use' do
|
156
154
|
expect(ui).to receive(:info).with("Created volume larger than box defaults, will require manual resizing of\nfilesystems to utilize.")
|
@@ -161,7 +159,8 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
161
159
|
:path=>"/test/box.img",
|
162
160
|
:name=>"test_vagrant_box_image_1.1.1_box.img",
|
163
161
|
:virtual_size=>byte_number_20G,
|
164
|
-
:format=>"qcow2"
|
162
|
+
:format=>"qcow2",
|
163
|
+
:device=>'vda',
|
165
164
|
}
|
166
165
|
]
|
167
166
|
)
|
@@ -252,7 +251,8 @@ describe VagrantPlugins::ProviderLibvirt::Action::HandleBoxImage do
|
|
252
251
|
:path=>"/test/box.img",
|
253
252
|
:name=>"test_vagrant_box_image_1.1.1_send_box_name.img",
|
254
253
|
:virtual_size=>byte_number_5G,
|
255
|
-
:format=>"qcow2"
|
254
|
+
:format=>"qcow2",
|
255
|
+
:device=>'vda',
|
256
256
|
},
|
257
257
|
{
|
258
258
|
:path=>"/test/disk.qcow2",
|
@@ -12,8 +12,6 @@ describe VagrantPlugins::ProviderLibvirt::Action::PackageDomain do
|
|
12
12
|
include_context 'libvirt'
|
13
13
|
include_context 'temporary_dir'
|
14
14
|
|
15
|
-
let(:libvirt_client) { double('libvirt_client') }
|
16
|
-
let(:libvirt_domain) { double('libvirt_domain') }
|
17
15
|
let(:servers) { double('servers') }
|
18
16
|
let(:volumes) { double('volumes') }
|
19
17
|
let(:metadata_file) { double('file') }
|
@@ -21,9 +19,6 @@ describe VagrantPlugins::ProviderLibvirt::Action::PackageDomain do
|
|
21
19
|
|
22
20
|
describe '#call' do
|
23
21
|
before do
|
24
|
-
allow_any_instance_of(VagrantPlugins::ProviderLibvirt::Driver)
|
25
|
-
.to receive(:connection).and_return(connection)
|
26
|
-
allow(connection).to receive(:client).and_return(libvirt_client)
|
27
22
|
allow(libvirt_client).to receive(:lookup_domain_by_uuid).and_return(libvirt_domain)
|
28
23
|
|
29
24
|
allow(connection).to receive(:servers).and_return(servers)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
2
|
+
<name>vagrant-test_default</name>
|
3
|
+
<title></title>
|
4
|
+
<description>Source: /rootpath/Vagrantfile</description>
|
5
|
+
<uuid></uuid>
|
6
|
+
<memory>524288</memory>
|
7
|
+
<vcpu>1</vcpu>
|
8
|
+
<cpu mode='host-model'>
|
9
|
+
<model fallback='allow'></model>
|
10
|
+
</cpu>
|
11
|
+
<os>
|
12
|
+
<type>hvm</type>
|
13
|
+
<kernel></kernel>
|
14
|
+
<initrd></initrd>
|
15
|
+
<cmdline></cmdline>
|
16
|
+
</os>
|
17
|
+
<features>
|
18
|
+
<acpi/>
|
19
|
+
<apic/>
|
20
|
+
<pae/>
|
21
|
+
</features>
|
22
|
+
<clock offset='utc'>
|
23
|
+
</clock>
|
24
|
+
<devices>
|
25
|
+
<disk type='file' device='disk'>
|
26
|
+
<alias name='ua-box-volume-0'/>
|
27
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
28
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default.img'/>
|
29
|
+
<target dev='vda' bus='virtio'/>
|
30
|
+
</disk>
|
31
|
+
<serial type='pty'>
|
32
|
+
<target port='0'/>
|
33
|
+
</serial>
|
34
|
+
<console type='pty'>
|
35
|
+
<target port='0'/>
|
36
|
+
</console>
|
37
|
+
<input type='mouse' bus='ps2'/>
|
38
|
+
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
|
39
|
+
<video>
|
40
|
+
<model type='cirrus' vram='16384' heads='1'/>
|
41
|
+
</video>
|
42
|
+
</devices>
|
43
|
+
</domain>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
2
|
+
<name>vagrant-test_default</name>
|
3
|
+
<title></title>
|
4
|
+
<description>Source: /rootpath/Vagrantfile</description>
|
5
|
+
<uuid></uuid>
|
6
|
+
<memory>524288</memory>
|
7
|
+
<vcpu>1</vcpu>
|
8
|
+
<cpu mode='host-model'>
|
9
|
+
<model fallback='allow'></model>
|
10
|
+
</cpu>
|
11
|
+
<os>
|
12
|
+
<type>hvm</type>
|
13
|
+
<kernel></kernel>
|
14
|
+
<initrd></initrd>
|
15
|
+
<cmdline></cmdline>
|
16
|
+
</os>
|
17
|
+
<features>
|
18
|
+
<acpi/>
|
19
|
+
<apic/>
|
20
|
+
<pae/>
|
21
|
+
</features>
|
22
|
+
<clock offset='utc'>
|
23
|
+
</clock>
|
24
|
+
<devices>
|
25
|
+
<disk type='file' device='disk'>
|
26
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
27
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default.img'/>
|
28
|
+
<target dev='vda' bus='virtio'/>
|
29
|
+
</disk>
|
30
|
+
<serial type='pty'>
|
31
|
+
<target port='0'/>
|
32
|
+
</serial>
|
33
|
+
<console type='pty'>
|
34
|
+
<target port='0'/>
|
35
|
+
</console>
|
36
|
+
<input type='mouse' bus='ps2'/>
|
37
|
+
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
|
38
|
+
<video>
|
39
|
+
<model type='cirrus' vram='16384' heads='1'/>
|
40
|
+
</video>
|
41
|
+
</devices>
|
42
|
+
</domain>
|
File without changes
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
2
|
+
<name>vagrant-test_default</name>
|
3
|
+
<title></title>
|
4
|
+
<description>Source: /rootpath/Vagrantfile</description>
|
5
|
+
<uuid></uuid>
|
6
|
+
<memory>524288</memory>
|
7
|
+
<vcpu>1</vcpu>
|
8
|
+
<cpu mode='host-model'>
|
9
|
+
<model fallback='allow'></model>
|
10
|
+
</cpu>
|
11
|
+
<os>
|
12
|
+
<type>hvm</type>
|
13
|
+
<kernel></kernel>
|
14
|
+
<initrd></initrd>
|
15
|
+
<cmdline></cmdline>
|
16
|
+
</os>
|
17
|
+
<features>
|
18
|
+
<acpi/>
|
19
|
+
<apic/>
|
20
|
+
<pae/>
|
21
|
+
</features>
|
22
|
+
<clock offset='utc'>
|
23
|
+
</clock>
|
24
|
+
<devices>
|
25
|
+
<disk type='file' device='disk'>
|
26
|
+
<alias name='ua-box-volume-0'/>
|
27
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
28
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default.img'/>
|
29
|
+
<target dev='vda' bus='virtio'/>
|
30
|
+
</disk>
|
31
|
+
<disk type='file' device='disk'>
|
32
|
+
<alias name='ua-box-volume-1'/>
|
33
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
34
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default_1.img'/>
|
35
|
+
<target dev='vdb' bus='virtio'/>
|
36
|
+
</disk>
|
37
|
+
<disk type='file' device='disk'>
|
38
|
+
<alias name='ua-box-volume-2'/>
|
39
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
40
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default_2.img'/>
|
41
|
+
<target dev='vdc' bus='virtio'/>
|
42
|
+
</disk>
|
43
|
+
<serial type='pty'>
|
44
|
+
<target port='0'/>
|
45
|
+
</serial>
|
46
|
+
<console type='pty'>
|
47
|
+
<target port='0'/>
|
48
|
+
</console>
|
49
|
+
<input type='mouse' bus='ps2'/>
|
50
|
+
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
|
51
|
+
<video>
|
52
|
+
<model type='cirrus' vram='16384' heads='1'/>
|
53
|
+
</video>
|
54
|
+
</devices>
|
55
|
+
</domain>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
2
|
+
<name>vagrant-test_default</name>
|
3
|
+
<title></title>
|
4
|
+
<description>Source: /rootpath/Vagrantfile</description>
|
5
|
+
<uuid></uuid>
|
6
|
+
<memory>524288</memory>
|
7
|
+
<vcpu>1</vcpu>
|
8
|
+
<cpu mode='host-model'>
|
9
|
+
<model fallback='allow'></model>
|
10
|
+
</cpu>
|
11
|
+
<os>
|
12
|
+
<type>hvm</type>
|
13
|
+
<kernel></kernel>
|
14
|
+
<initrd></initrd>
|
15
|
+
<cmdline></cmdline>
|
16
|
+
</os>
|
17
|
+
<features>
|
18
|
+
<acpi/>
|
19
|
+
<apic/>
|
20
|
+
<pae/>
|
21
|
+
</features>
|
22
|
+
<clock offset='utc'>
|
23
|
+
</clock>
|
24
|
+
<devices>
|
25
|
+
<disk type='file' device='disk'>
|
26
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
27
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default.img'/>
|
28
|
+
<target dev='vda' bus='virtio'/>
|
29
|
+
</disk>
|
30
|
+
<disk type='file' device='disk'>
|
31
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
32
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default_1.img'/>
|
33
|
+
<target dev='vdb' bus='virtio'/>
|
34
|
+
</disk>
|
35
|
+
<disk type='file' device='disk'>
|
36
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
37
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default_2.img'/>
|
38
|
+
<target dev='vdc' bus='virtio'/>
|
39
|
+
</disk>
|
40
|
+
<disk type='file' device='disk'>
|
41
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
42
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default-vdd.qcow2'/>
|
43
|
+
<target dev='vdd' bus='virtio'/>
|
44
|
+
</disk>
|
45
|
+
<disk type='file' device='disk'>
|
46
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
47
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default-vde.qcow2'/>
|
48
|
+
<target dev='vde' bus='virtio'/>
|
49
|
+
</disk>
|
50
|
+
<disk type='file' device='disk'>
|
51
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
52
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default-vdf.qcow2'/>
|
53
|
+
<target dev='vdf' bus='virtio'/>
|
54
|
+
</disk>
|
55
|
+
<serial type='pty'>
|
56
|
+
<target port='0'/>
|
57
|
+
</serial>
|
58
|
+
<console type='pty'>
|
59
|
+
<target port='0'/>
|
60
|
+
</console>
|
61
|
+
<input type='mouse' bus='ps2'/>
|
62
|
+
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
|
63
|
+
<video>
|
64
|
+
<model type='cirrus' vram='16384' heads='1'/>
|
65
|
+
</video>
|
66
|
+
</devices>
|
67
|
+
</domain>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
2
|
+
<name>vagrant-test_default</name>
|
3
|
+
<title></title>
|
4
|
+
<description>Source: /rootpath/Vagrantfile</description>
|
5
|
+
<uuid></uuid>
|
6
|
+
<memory>524288</memory>
|
7
|
+
<vcpu>1</vcpu>
|
8
|
+
<cpu mode='host-model'>
|
9
|
+
<model fallback='allow'></model>
|
10
|
+
</cpu>
|
11
|
+
<os>
|
12
|
+
<type>hvm</type>
|
13
|
+
<kernel></kernel>
|
14
|
+
<initrd></initrd>
|
15
|
+
<cmdline></cmdline>
|
16
|
+
</os>
|
17
|
+
<features>
|
18
|
+
<acpi/>
|
19
|
+
<apic/>
|
20
|
+
<pae/>
|
21
|
+
</features>
|
22
|
+
<clock offset='utc'>
|
23
|
+
</clock>
|
24
|
+
<devices>
|
25
|
+
<disk type='file' device='disk'>
|
26
|
+
<alias name='ua-box-volume-0'/>
|
27
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
28
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default.img'/>
|
29
|
+
<target dev='vda' bus='virtio'/>
|
30
|
+
</disk>
|
31
|
+
<disk type='file' device='disk'>
|
32
|
+
<alias name='ua-box-volume-1'/>
|
33
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
34
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default_1.img'/>
|
35
|
+
<target dev='vdb' bus='virtio'/>
|
36
|
+
</disk>
|
37
|
+
<disk type='file' device='disk'>
|
38
|
+
<alias name='ua-box-volume-2'/>
|
39
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
40
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default_2.img'/>
|
41
|
+
<target dev='vdc' bus='virtio'/>
|
42
|
+
</disk>
|
43
|
+
<disk type='file' device='disk'>
|
44
|
+
<alias name='ua-disk-volume-0'/>
|
45
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
46
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default-vdd.qcow2'/>
|
47
|
+
<target dev='vdd' bus='virtio'/>
|
48
|
+
</disk>
|
49
|
+
<disk type='file' device='disk'>
|
50
|
+
<alias name='ua-disk-volume-1'/>
|
51
|
+
<driver name='qemu' type='qcow2' cache='default'/>
|
52
|
+
<source file='/var/lib/libvirt/images/vagrant-test_default-vde.qcow2'/>
|
53
|
+
<target dev='vde' bus='virtio'/>
|
54
|
+
</disk>
|
55
|
+
<serial type='pty'>
|
56
|
+
<target port='0'/>
|
57
|
+
</serial>
|
58
|
+
<console type='pty'>
|
59
|
+
<target port='0'/>
|
60
|
+
</console>
|
61
|
+
<input type='mouse' bus='ps2'/>
|
62
|
+
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
|
63
|
+
<video>
|
64
|
+
<model type='cirrus' vram='16384' heads='1'/>
|
65
|
+
</video>
|
66
|
+
</devices>
|
67
|
+
</domain>
|