Revision 4b9638dc lib/hypervisor/hv_kvm.py
b/lib/hypervisor/hv_kvm.py | ||
---|---|---|
460 | 460 |
_CHROOT_DIR, _CHROOT_QUARANTINE_DIR, _KEYMAP_DIR] |
461 | 461 |
|
462 | 462 |
PARAMETERS = { |
463 |
constants.HV_KVM_PATH: hv_base.REQ_FILE_CHECK, |
|
463 | 464 |
constants.HV_KERNEL_PATH: hv_base.OPT_FILE_CHECK, |
464 | 465 |
constants.HV_INITRD_PATH: hv_base.OPT_FILE_CHECK, |
465 | 466 |
constants.HV_ROOT_PATH: hv_base.NO_CHECK, |
... | ... | |
1026 | 1027 |
hvp = instance.hvparams |
1027 | 1028 |
|
1028 | 1029 |
pidfile = self._InstancePidFile(instance.name) |
1029 |
kvm = constants.KVM_PATH
|
|
1030 |
kvm = hvp[constants.HV_KVM_PATH]
|
|
1030 | 1031 |
kvm_cmd = [kvm] |
1031 | 1032 |
# used just by the vnc server, if enabled |
1032 | 1033 |
kvm_cmd.extend(["-name", instance.name]) |
... | ... | |
1053 | 1054 |
|
1054 | 1055 |
mversion = hvp[constants.HV_KVM_MACHINE_VERSION] |
1055 | 1056 |
if not mversion: |
1056 |
mversion = self._GetDefaultMachineVersion(constants.KVM_PATH)
|
|
1057 |
mversion = self._GetDefaultMachineVersion(kvm)
|
|
1057 | 1058 |
kvm_cmd.extend(["-M", mversion]) |
1058 | 1059 |
|
1059 | 1060 |
kernel_path = hvp[constants.HV_KERNEL_PATH] |
... | ... | |
1638 | 1639 |
|
1639 | 1640 |
""" |
1640 | 1641 |
self._CheckDown(instance.name) |
1641 |
kvmhelp = self._GetKVMHelpOutput(constants.KVM_PATH) |
|
1642 |
kvmpath = instance.hvparams[constants.HV_KVM_PATH] |
|
1643 |
kvmhelp = self._GetKVMHelpOutput(kvmpath) |
|
1642 | 1644 |
kvm_runtime = self._GenerateKVMRuntime(instance, block_devices, |
1643 | 1645 |
startup_paused, kvmhelp) |
1644 | 1646 |
self._SaveKVMRuntime(instance, kvm_runtime) |
... | ... | |
1768 | 1770 |
self.StopInstance(instance, force=True) |
1769 | 1771 |
# ...and finally we can save it again, and execute it... |
1770 | 1772 |
self._SaveKVMRuntime(instance, kvm_runtime) |
1771 |
kvmhelp = self._GetKVMHelpOutput(constants.KVM_PATH) |
|
1773 |
kvmpath = instance.hvparams[constants.HV_KVM_PATH] |
|
1774 |
kvmhelp = self._GetKVMHelpOutput(kvmpath) |
|
1772 | 1775 |
self._ExecuteKVMRuntime(instance, kvm_runtime, kvmhelp) |
1773 | 1776 |
|
1774 | 1777 |
def MigrationInfo(self, instance): |
... | ... | |
1795 | 1798 |
""" |
1796 | 1799 |
kvm_runtime = self._LoadKVMRuntime(instance, serialized_runtime=info) |
1797 | 1800 |
incoming_address = (target, instance.hvparams[constants.HV_MIGRATION_PORT]) |
1798 |
kvmhelp = self._GetKVMHelpOutput(constants.KVM_PATH) |
|
1801 |
kvmpath = instance.hvparams[constants.HV_KVM_PATH] |
|
1802 |
kvmhelp = self._GetKVMHelpOutput(kvmpath) |
|
1799 | 1803 |
self._ExecuteKVMRuntime(instance, kvm_runtime, kvmhelp, |
1800 | 1804 |
incoming=incoming_address) |
1801 | 1805 |
|
... | ... | |
1944 | 1948 |
|
1945 | 1949 |
""" |
1946 | 1950 |
result = self.GetLinuxNodeInfo() |
1951 |
# FIXME: this is the global kvm version, but the actual version can be |
|
1952 |
# customized as an hv parameter. we should use the nodegroup's default kvm |
|
1953 |
# path parameter here. |
|
1947 | 1954 |
_, v_major, v_min, v_rev = self._GetKVMVersion(constants.KVM_PATH) |
1948 | 1955 |
result[constants.HV_NODEINFO_KEY_VERSION] = (v_major, v_min, v_rev) |
1949 | 1956 |
return result |
... | ... | |
1992 | 1999 |
Check that the binary exists. |
1993 | 2000 |
|
1994 | 2001 |
""" |
2002 |
# FIXME: this is the global kvm version, but the actual version can be |
|
2003 |
# customized as an hv parameter. we should use the nodegroup's default kvm |
|
2004 |
# path parameter here. |
|
1995 | 2005 |
if not os.path.exists(constants.KVM_PATH): |
1996 | 2006 |
return "The kvm binary ('%s') does not exist." % constants.KVM_PATH |
1997 | 2007 |
if not os.path.exists(constants.SOCAT_PATH): |
... | ... | |
2099 | 2109 |
" given time.") |
2100 | 2110 |
|
2101 | 2111 |
# check that KVM supports SPICE |
2102 |
kvmhelp = cls._GetKVMHelpOutput(constants.KVM_PATH)
|
|
2112 |
kvmhelp = cls._GetKVMHelpOutput(hvparams[constants.HV_KVM_PATH])
|
|
2103 | 2113 |
if not cls._SPICE_RE.search(kvmhelp): |
2104 | 2114 |
raise errors.HypervisorError("spice is configured, but it is not" |
2105 | 2115 |
" supported according to kvm --help") |
Also available in: Unified diff