Merge "Ensure that the dom0 we're connected to is the right one"
This commit is contained in:
commit
8fc533699d
@ -90,6 +90,10 @@ xenapi_opts = [
|
|||||||
default=5.0,
|
default=5.0,
|
||||||
help='The interval used for polling of coalescing vhds. '
|
help='The interval used for polling of coalescing vhds. '
|
||||||
'Used only if connection_type=xenapi.'),
|
'Used only if connection_type=xenapi.'),
|
||||||
|
cfg.BoolOpt('xenapi_check_host',
|
||||||
|
default=True,
|
||||||
|
help='Ensure compute service is running on host XenAPI '
|
||||||
|
'connects to.'),
|
||||||
cfg.IntOpt('xenapi_vhd_coalesce_max_attempts',
|
cfg.IntOpt('xenapi_vhd_coalesce_max_attempts',
|
||||||
default=5,
|
default=5,
|
||||||
help='Max number of times to poll for VHD to coalesce. '
|
help='Max number of times to poll for VHD to coalesce. '
|
||||||
@ -166,6 +170,9 @@ class XenAPIConnection(driver.ComputeDriver):
|
|||||||
return self._host_state
|
return self._host_state
|
||||||
|
|
||||||
def init_host(self, host):
|
def init_host(self, host):
|
||||||
|
if FLAGS.xenapi_check_host:
|
||||||
|
vm_utils.ensure_correct_host(self._session)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
vm_utils.cleanup_attached_vdis(self._session)
|
vm_utils.cleanup_attached_vdis(self._session)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
@ -1819,3 +1819,17 @@ def _prepare_injectables(inst, networks_info):
|
|||||||
searchList=[{'interfaces': interfaces_info,
|
searchList=[{'interfaces': interfaces_info,
|
||||||
'use_ipv6': FLAGS.use_ipv6}]))
|
'use_ipv6': FLAGS.use_ipv6}]))
|
||||||
return key, net, metadata
|
return key, net, metadata
|
||||||
|
|
||||||
|
|
||||||
|
def ensure_correct_host(session):
|
||||||
|
"""Ensure we're connected to the host we're running on. This is the
|
||||||
|
required configuration for anything that uses vdi_attached_here."""
|
||||||
|
this_vm_uuid = get_this_vm_uuid()
|
||||||
|
|
||||||
|
try:
|
||||||
|
session.call_xenapi('VM.get_by_uuid', this_vm_uuid)
|
||||||
|
except session.XenAPI.Failure as exc:
|
||||||
|
if exc.details[0] != 'UUID_INVALID':
|
||||||
|
raise
|
||||||
|
raise Exception(_('This domU must be running on the host '
|
||||||
|
'specified by xenapi_connection_url'))
|
||||||
|
Loading…
Reference in New Issue
Block a user