Updating how defaults are fetched for certain nova conf types.
This commit is contained in:
parent
291484a2fa
commit
fdcf829d36
@ -191,10 +191,19 @@ XA_DEF_USER = 'root'
|
|||||||
#vnc specific
|
#vnc specific
|
||||||
VNC_DEF_ADDR = '127.0.0.1'
|
VNC_DEF_ADDR = '127.0.0.1'
|
||||||
|
|
||||||
|
#def virt driver
|
||||||
|
DEF_VIRT_DRIVER = virsh.VIRT_TYPE
|
||||||
|
|
||||||
#pip files that nova requires
|
#pip files that nova requires
|
||||||
REQ_PIPS = ['general.json', 'nova.json']
|
REQ_PIPS = ['general.json', 'nova.json']
|
||||||
|
|
||||||
|
|
||||||
|
def _canon_virt_driver(driver):
|
||||||
|
if not virt_driver:
|
||||||
|
return DEF_VIRT_DRIVER
|
||||||
|
return virt_driver.strip().lower()
|
||||||
|
|
||||||
|
|
||||||
class NovaUninstaller(comp.PythonUninstallComponent):
|
class NovaUninstaller(comp.PythonUninstallComponent):
|
||||||
def __init__(self, *args, **kargs):
|
def __init__(self, *args, **kargs):
|
||||||
comp.PythonUninstallComponent.__init__(self, TYPE, *args, **kargs)
|
comp.PythonUninstallComponent.__init__(self, TYPE, *args, **kargs)
|
||||||
@ -220,7 +229,7 @@ class NovaUninstaller(comp.PythonUninstallComponent):
|
|||||||
sh.execute(*cmd, run_as_root=True, env_overrides=env)
|
sh.execute(*cmd, run_as_root=True, env_overrides=env)
|
||||||
|
|
||||||
def _clear_libvirt_domains(self):
|
def _clear_libvirt_domains(self):
|
||||||
virt_driver = self.cfg.get('nova', 'virt_driver')
|
virt_driver = _canon_virt_driver(self.cfg.get('nova', 'virt_driver'))
|
||||||
if virt_driver == virsh.VIRT_TYPE:
|
if virt_driver == virsh.VIRT_TYPE:
|
||||||
inst_prefix = self.cfg.get('nova', 'instance_name_prefix')
|
inst_prefix = self.cfg.get('nova', 'instance_name_prefix')
|
||||||
libvirt_type = virsh.default(self.cfg.get('nova', 'libvirt_type'))
|
libvirt_type = virsh.default(self.cfg.get('nova', 'libvirt_type'))
|
||||||
@ -402,7 +411,7 @@ class NovaRuntime(comp.PythonRuntime):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def pre_start(self):
|
def pre_start(self):
|
||||||
virt_driver = self.cfg.get('nova', 'virt_driver')
|
virt_driver = _canon_virt_driver(self.cfg.get('nova', 'virt_driver'))
|
||||||
if virt_driver == virsh.VIRT_TYPE:
|
if virt_driver == virsh.VIRT_TYPE:
|
||||||
virt_type = virsh.default(self.cfg.get('nova', 'libvirt_type'))
|
virt_type = virsh.default(self.cfg.get('nova', 'libvirt_type'))
|
||||||
LOG.info("Checking that your selected libvirt virtualization type [%s] is working and running." % (virt_type))
|
LOG.info("Checking that your selected libvirt virtualization type [%s] is working and running." % (virt_type))
|
||||||
@ -513,9 +522,13 @@ class NovaConfConfigurator(object):
|
|||||||
|
|
||||||
def _getstr(self, name, default=''):
|
def _getstr(self, name, default=''):
|
||||||
val = self.cfg.get('nova', name)
|
val = self.cfg.get('nova', name)
|
||||||
if val is None:
|
if not val:
|
||||||
return default
|
return default
|
||||||
return val
|
return val
|
||||||
|
|
||||||
|
def _get_canon_virt_driver(self):
|
||||||
|
virt_driver = self._getstr('virt_driver')
|
||||||
|
return _canon_virt_driver(virt_driver)
|
||||||
|
|
||||||
def configure(self):
|
def configure(self):
|
||||||
nova_conf = NovaConf()
|
nova_conf = NovaConf()
|
||||||
@ -551,7 +564,7 @@ class NovaConfConfigurator(object):
|
|||||||
nova_conf.add('sql_connection', self.cfg.get_dbdsn('nova'))
|
nova_conf.add('sql_connection', self.cfg.get_dbdsn('nova'))
|
||||||
|
|
||||||
#configure anything libvirt releated?
|
#configure anything libvirt releated?
|
||||||
virt_driver = self._getstr('virt_driver')
|
virt_driver = self._get_canon_virt_driver()
|
||||||
if virt_driver == virsh.VIRT_TYPE:
|
if virt_driver == virsh.VIRT_TYPE:
|
||||||
libvirt_type = virsh.default(self._getstr('libvirt_type'))
|
libvirt_type = virsh.default(self._getstr('libvirt_type'))
|
||||||
self._configure_libvirt(libvirt_type, nova_conf)
|
self._configure_libvirt(libvirt_type, nova_conf)
|
||||||
@ -584,9 +597,7 @@ class NovaConfConfigurator(object):
|
|||||||
nova_conf.add('rabbit_password', self.cfg.get("passwords", "rabbit"))
|
nova_conf.add('rabbit_password', self.cfg.get("passwords", "rabbit"))
|
||||||
|
|
||||||
#where instances will be stored
|
#where instances will be stored
|
||||||
instances_path = self._getstr('instances_path')
|
instances_path = self._getstr('instances_path', sh.joinpths(self.component_root, 'instances'))
|
||||||
if not instances_path:
|
|
||||||
instances_path = sh.joinpths(self.component_root, 'instances')
|
|
||||||
self._configure_instances_path(instances_path, nova_conf)
|
self._configure_instances_path(instances_path, nova_conf)
|
||||||
|
|
||||||
#is this a multihost setup?
|
#is this a multihost setup?
|
||||||
@ -611,17 +622,13 @@ class NovaConfConfigurator(object):
|
|||||||
|
|
||||||
def _configure_image_service(self, nova_conf):
|
def _configure_image_service(self, nova_conf):
|
||||||
#what image service we will use
|
#what image service we will use
|
||||||
img_service = self._getstr('img_service')
|
img_service = self._getstr('img_service', DEF_IMAGE_SERVICE)
|
||||||
if not img_service:
|
|
||||||
img_service = DEF_IMAGE_SERVICE
|
|
||||||
nova_conf.add('image_service', img_service)
|
nova_conf.add('image_service', img_service)
|
||||||
|
|
||||||
#where is glance located?
|
#where is glance located?
|
||||||
if img_service.lower().find("glance") != -1:
|
if img_service.lower().find("glance") != -1:
|
||||||
glance_api_server = self._getstr('glance_server')
|
glance_api_server = self._getstr('glance_server',
|
||||||
if not glance_api_server:
|
("%s:%d" % (self.cfg.get('host', 'ip'), DEF_GLANCE_PORT)))
|
||||||
glance_api_server = "%s:%d" % (self.cfg.get('host', 'ip'),
|
|
||||||
DEF_GLANCE_PORT)
|
|
||||||
nova_conf.add('glance_api_servers', glance_api_server)
|
nova_conf.add('glance_api_servers', glance_api_server)
|
||||||
|
|
||||||
def _configure_vnc(self, nova_conf):
|
def _configure_vnc(self, nova_conf):
|
||||||
@ -636,21 +643,18 @@ class NovaConfConfigurator(object):
|
|||||||
if vncserverlisten:
|
if vncserverlisten:
|
||||||
nova_conf.add('vncserver_listen', vncserverlisten)
|
nova_conf.add('vncserver_listen', vncserverlisten)
|
||||||
|
|
||||||
vncserver_proxyclient_address = self._getstr('vncserver_proxyclient_address')
|
|
||||||
|
|
||||||
# If no vnc proxy address was specified,
|
# If no vnc proxy address was specified,
|
||||||
# pick a default based on which
|
# pick a default based on which
|
||||||
# driver we're using.
|
# driver we're using.
|
||||||
|
vncserver_proxyclient_address = self._getstr('vncserver_proxyclient_address')
|
||||||
if not vncserver_proxyclient_address:
|
if not vncserver_proxyclient_address:
|
||||||
virt_driver = self._getstr('virt_driver') or ""
|
drive_canon = self._get_canon_virt_driver()
|
||||||
drive_canon = virt_driver.lower().strip()
|
|
||||||
if drive_canon == 'xenserver':
|
if drive_canon == 'xenserver':
|
||||||
vncserver_proxyclient_address = XS_VNC_ADDR
|
vncserver_proxyclient_address = XS_VNC_ADDR
|
||||||
else:
|
else:
|
||||||
vncserver_proxyclient_address = VNC_DEF_ADDR
|
vncserver_proxyclient_address = VNC_DEF_ADDR
|
||||||
|
|
||||||
if vncserver_proxyclient_address:
|
nova_conf.add('vncserver_proxyclient_address', vncserver_proxyclient_address)
|
||||||
nova_conf.add('vncserver_proxyclient_address', vncserver_proxyclient_address)
|
|
||||||
|
|
||||||
def _configure_vols(self, nova_conf):
|
def _configure_vols(self, nova_conf):
|
||||||
nova_conf.add('volume_group', self._getstr('volume_group'))
|
nova_conf.add('volume_group', self._getstr('volume_group'))
|
||||||
@ -687,9 +691,7 @@ class NovaConfConfigurator(object):
|
|||||||
# The value for vlan_interface may default to the the current value
|
# The value for vlan_interface may default to the the current value
|
||||||
# of public_interface. We'll grab the value and keep it handy.
|
# of public_interface. We'll grab the value and keep it handy.
|
||||||
public_interface = self._getstr('public_interface')
|
public_interface = self._getstr('public_interface')
|
||||||
vlan_interface = self._getstr('vlan_interface')
|
vlan_interface = self._getstr('vlan_interface', public_interface)
|
||||||
if not vlan_interface:
|
|
||||||
vlan_interface = public_interface
|
|
||||||
|
|
||||||
#do a little check to make sure actually have that interface set...
|
#do a little check to make sure actually have that interface set...
|
||||||
if not utils.is_interface(public_interface):
|
if not utils.is_interface(public_interface):
|
||||||
@ -728,18 +730,17 @@ class NovaConfConfigurator(object):
|
|||||||
|
|
||||||
#configures any virt driver settings
|
#configures any virt driver settings
|
||||||
def _configure_virt_driver(self, nova_conf):
|
def _configure_virt_driver(self, nova_conf):
|
||||||
driver = self._getstr('virt_driver')
|
drive_canon = self._get_canon_virt_driver()
|
||||||
drive_canon = driver.lower().strip()
|
|
||||||
if drive_canon == 'xenserver':
|
if drive_canon == 'xenserver':
|
||||||
nova_conf.add('connection_type', 'xenapi')
|
nova_conf.add('connection_type', 'xenapi')
|
||||||
xa_url = self._getstr('xa_connection_url') or \
|
xa_url = self._getstr('xa_connection_url',
|
||||||
urlunparse(('http', "%s:%s" % (XA_CONNECTION_ADDR, XA_CONNECTION_PORT), "", '', '', ''))
|
urlunparse(('http', "%s:%s" % (XA_CONNECTION_ADDR, XA_CONNECTION_PORT), "", '', '', '')))
|
||||||
nova_conf.add('xenapi_connection_url', xa_url)
|
nova_conf.add('xenapi_connection_url', xa_url)
|
||||||
xs_user = self._getstr('xa_connection_username') or XA_DEF_USER
|
xs_user = self._getstr('xa_connection_username', XA_DEF_USER)
|
||||||
nova_conf.add('xenapi_connection_username', xs_user)
|
nova_conf.add('xenapi_connection_username', xs_user)
|
||||||
nova_conf.add('xenapi_connection_password', self.cfg.get("passwords", "xenapi_connection"))
|
nova_conf.add('xenapi_connection_password', self.cfg.get("passwords", "xenapi_connection"))
|
||||||
nova_conf.add_simple('noflat_injected')
|
nova_conf.add_simple('noflat_injected')
|
||||||
xs_flat_ifc = self._getstr('xs_flat_interface') or XS_DEF_INTERFACE
|
xs_flat_ifc = self._getstr('xs_flat_interface', XS_DEF_INTERFACE)
|
||||||
if not utils.is_interface(xs_flat_ifc):
|
if not utils.is_interface(xs_flat_ifc):
|
||||||
msg = "Xenserver flat interface %s is not a known interface" % (xs_flat_ifc)
|
msg = "Xenserver flat interface %s is not a known interface" % (xs_flat_ifc)
|
||||||
raise exceptions.ConfigException(msg)
|
raise exceptions.ConfigException(msg)
|
||||||
|
Loading…
Reference in New Issue
Block a user