summaryrefslogtreecommitdiffstats
path: root/nova/openstack
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2012-07-25 13:32:28 +0100
committerDaniel P. Berrange <berrange@redhat.com>2012-07-25 17:19:13 +0100
commiteb074328041b5f8b4f5a109794c54a9bd4e245ed (patch)
tree0d1da907a20f2bcde7809c855cc2c60ab1038275 /nova/openstack
parentb8aedb281f8e6cc8b1583640c31f5d52ce5e4eac (diff)
downloadnova-eb074328041b5f8b4f5a109794c54a9bd4e245ed.tar.gz
nova-eb074328041b5f8b4f5a109794c54a9bd4e245ed.tar.xz
nova-eb074328041b5f8b4f5a109794c54a9bd4e245ed.zip
Define cross-driver standardized vm_mode values
Currently the XenAPI driver allows for a 'vm_mode' parameter to be set against an instance to determine whether it is launched a paravirt or fullvirt domain. This allows the values 'pv', 'hv' and 'hvm'. The libvirt driver also needs to be extended to allow a 'vm_mode' parameter, and to facilitate deployment of heterogeneous Nova compute farms, it is desirable to have standardization of the VM mode values across all drivers. To address this, the nova.compute.vm_mode module is introduced which defines a set of constants. The constants provide four possible vm modes: - vm_mode.XEN = 'xen' - for Xen 3.0 paravirt ABI - vm_mode.HVM = 'hvm' - for native ABI - vm_mode.UML = 'uml' - for User Mode Linux paravirt ABI - vm_mode.EXE = 'exe' - for container virt executable ABI The existing 'pv' value from XenAPI is deprecated, because it is ambiguous - both Xen and UML are paravirt, and other paravirt hypervisor ABIs also exist The existing 'hv' value is also deprecated since it duplicates the other existing 'hvm' value. The 'vm_mode.get_from_instance' method will extract the vm_mode value for an instance. It normalizes the value to all lower case, translates 'hv' and 'pv' into the new values for back compat, and validates that the value matches one of the defined constants The XenAPI and libvirt drivers are then updated to use the nova.compute.vm_mode constants instead of bare strings. The test_xenapi.py test case is updated to set 'vm_mode' to exercise the new codepaths. A new test_vmmode.py case is also written to fully exercise the logic NB, previously the libvirt driver would set 'guest.os_type' to 'linux' to request Xen paravirt. This is a legacy value, with libvirt preferring the string 'xen'. So although the new code sets a different value for Xen paravirt os_type, the functional result is unchanged. DocImpact blueprint hypervisor-code-consolidation Change-Id: I23efc5dc1528b0d8472d752a8a30f55c85310b21 Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'nova/openstack')
0 files changed, 0 insertions, 0 deletions