mirror of
https://github.com/vagrant-libvirt/vagrant-libvirt.git
synced 2025-01-07 14:33:08 -06:00
Only populate domain_name if not provided (#1509)
Ensure that when no box is defined for a pxe install, that the domain name is only populated for subsequent boots and if it is already provided by a create action, skip attempting to retrieve from a non-existing domain XML. Fixes: #1508
This commit is contained in:
parent
1ed088924a
commit
a792fe0990
@ -97,13 +97,15 @@ module VagrantPlugins
|
|||||||
# the default storage prefix is typically: /var/lib/libvirt/images/
|
# the default storage prefix is typically: /var/lib/libvirt/images/
|
||||||
storage_prefix = "#{File.dirname(domain_volumes[0][:absolute_path])}/" # steal
|
storage_prefix = "#{File.dirname(domain_volumes[0][:absolute_path])}/" # steal
|
||||||
else
|
else
|
||||||
# Ensure domain name is set for subsequent steps if restarting a machine without a box
|
if domain_name.nil?
|
||||||
libvirt_domain = env[:machine].provider.driver.connection.client.lookup_domain_by_uuid(
|
# Ensure domain name is set for subsequent steps if restarting a machine without a box
|
||||||
env[:machine].id
|
libvirt_domain = env[:machine].provider.driver.connection.client.lookup_domain_by_uuid(
|
||||||
)
|
env[:machine].id
|
||||||
domain_xml = libvirt_domain.xml_desc(1)
|
)
|
||||||
xml_descr = REXML::Document.new(domain_xml)
|
domain_xml = libvirt_domain.xml_desc(1)
|
||||||
domain_name = xml_descr.elements['domain'].elements['name'].text
|
xml_descr = REXML::Document.new(domain_xml)
|
||||||
|
domain_name = xml_descr.elements['domain'].elements['name'].text
|
||||||
|
end
|
||||||
|
|
||||||
storage_prefix = get_disk_storage_prefix(env[:machine], storage_pool_name)
|
storage_prefix = get_disk_storage_prefix(env[:machine], storage_pool_name)
|
||||||
end
|
end
|
||||||
|
@ -356,6 +356,30 @@ describe VagrantPlugins::ProviderLibvirt::Action::ResolveDiskSettings do
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when creating using pxe' do
|
||||||
|
before do
|
||||||
|
env[:domain_name] = 'vagrant-test_default'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not query for domain xml' do
|
||||||
|
expect(libvirt_client).to_not receive(:lookup_domain_by_uuid)
|
||||||
|
expect(libvirt_client).to receive(:lookup_storage_pool_by_name).and_return(libvirt_storage_pool)
|
||||||
|
expect(libvirt_storage_pool).to receive(:xml_desc).and_return(storage_pool_xml)
|
||||||
|
|
||||||
|
expect(subject.call(env)).to be_nil
|
||||||
|
expect(env[:disks]).to match(
|
||||||
|
[
|
||||||
|
hash_including(
|
||||||
|
device: 'vda',
|
||||||
|
path: 'vagrant-test_default-vda.qcow2',
|
||||||
|
absolute_path: '/var/lib/libvirt/images/vagrant-test_default-vda.qcow2',
|
||||||
|
pool: 'default'
|
||||||
|
),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user