You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2017/01/12 22:38:33 UTC
svn commit: r1778483 - in
/vcl/trunk/managementnode/lib/VCL/Module/Provisioning: libvirt.pm
libvirt/KVM.pm
Author: arkurth
Date: Thu Jan 12 22:38:33 2017
New Revision: 1778483
URL: http://svn.apache.org/viewvc?rev=1778483&view=rev
Log:
VCL-1008
Added code to KVM.pm::copy_virtual_disk to copy the .xml file if it exists.
Tweaked some domain settings in libvirt.pm::generate_domain_xml. Images were not loading on all KVM hosts.
* Added: cpu->mode = host-model
* Added: cpu->model->fallback = allow
* Commented out: cpu->topology (not sure why this was added, was throwing off CPU count)
* Commented out: devices->disk->driver->cache = none (not sure why this was added, without it VM gets set to hypervisor default)
* Commented out: devices->interface->target (doesn't seem to be required)
* Commented out: devices->video (doesn't seem to be required)
Modified:
vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt.pm
vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt/KVM.pm
Modified: vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt.pm?rev=1778483&r1=1778482&r2=1778483&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt.pm Thu Jan 12 22:38:33 2017
@@ -1740,14 +1740,20 @@ sub generate_domain_xml {
'memory' => [$memory_kb],
'vcpu' => [$cpu_count],
'cpu' => [
+
{
- 'topology' => [
- {
- 'sockets' => $cpu_count,
- 'cores' => '2',
- 'threads' => '2',
- }
- ],
+ mode => 'host-model', # Required, some images won't boot on different hosts without
+ model => {
+ 'fallback' => 'allow',
+ },
+ #'topology' => [
+ # {
+ # 'sockets' => $cpu_count,
+ # 'cores' => '2',
+ # 'threads' => '2',
+ # }
+ #],
+
}
],
'clock' => [
@@ -1764,14 +1770,14 @@ sub generate_domain_xml {
'driver' => {
'name' => $disk_driver_name,
'type' => $image_type,
- 'cache' => 'none',
+ #'cache' => 'none',
},
'source' => {
'file' => $copy_on_write_file_path,
},
'target' => {
'bus' => $disk_bus_type,
- 'dev' => 'vda'
+ 'dev' => 'vda', # Required
},
}
],
@@ -1784,9 +1790,9 @@ sub generate_domain_xml {
'source' => {
$eth0_interface_type => $eth0_source_device,
},
- 'target' => {
- 'dev' => 'vnet0',
- },
+ #'target' => {
+ # 'dev' => 'vnet0',
+ #},
'model' => {
'type' => $interface_model_type,
},
@@ -1799,9 +1805,9 @@ sub generate_domain_xml {
'source' => {
$eth1_interface_type => $eth1_source_device,
},
- 'target' => {
- 'dev' => 'vnet1',
- },
+ #'target' => {
+ # 'dev' => 'vnet1',
+ #},
'model' => {
'type' => $interface_model_type,
},
@@ -1810,13 +1816,11 @@ sub generate_domain_xml {
'graphics' => [
{
'type' => 'vnc',
- }
- ],
- 'video' => [
- {
- 'model' => {
- 'type' => 'cirrus',
- }
+ #'type' => 'spice',
+ #'autoport' => 'yes',
+ #'port' => '-1',
+ #'tlsPort' => '-1',
+
}
],
}
Modified: vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt/KVM.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt/KVM.pm?rev=1778483&r1=1778482&r2=1778483&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt/KVM.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/Provisioning/libvirt/KVM.pm Thu Jan 12 22:38:33 2017
@@ -525,6 +525,14 @@ sub copy_virtual_disk {
return;
}
+ # Copy the XML file if it exists (saved 'virsh dumpxml' from image capture)
+ my ($source_file_name, $source_directory_path, $source_file_extension) = fileparse($source_file_paths[0], qr/\.[^.]*/);
+ my $source_xml_file_path = "$source_directory_path/$source_file_name.xml";
+ if ($self->vmhost_os->file_exists($source_xml_file_path)) {
+ my $destination_xml_file_path = "$destination_directory_path/$destination_file_name.xml";
+ $self->vmhost_os->copy_file($source_xml_file_path, $destination_xml_file_path)
+ }
+
my $source_file_count = scalar(@source_file_paths);
my $source_file_paths_string;
my $raw_file_directory_path;