diff --git a/packstack/installer/utils/__init__.py b/packstack/installer/utils/__init__.py index 39e6315f9..e73258c30 100644 --- a/packstack/installer/utils/__init__.py +++ b/packstack/installer/utils/__init__.py @@ -4,7 +4,8 @@ from .datastructures import SortedDict from .decorators import retry from .network import get_localhost_ip, host2ip, force_ip, device_from_ip from .shell import ScriptRunner, execute -from .shortcuts import host_iter, hosts, get_current_user, get_current_username +from .shortcuts import host_iter, hosts, get_current_user,\ + get_current_username, split_hosts from .strings import COLORS, color_text, mask_string @@ -13,4 +14,4 @@ __all__ = ('SortedDict', 'get_localhost_ip', 'host2ip', 'force_ip', 'device_from_ip', 'ScriptRunner', 'execute', 'host_iter', 'hosts', 'get_current_user', 'get_current_username', - 'COLORS', 'color_text', 'mask_string') + 'split_hosts', 'COLORS', 'color_text', 'mask_string') diff --git a/packstack/installer/utils/shortcuts.py b/packstack/installer/utils/shortcuts.py index 6de9decbe..f3230452d 100644 --- a/packstack/installer/utils/shortcuts.py +++ b/packstack/installer/utils/shortcuts.py @@ -38,3 +38,12 @@ def get_current_username(): user = pwd.getpwuid(uid).pw_name group = grp.getgrgid(gid).gr_name return user, group + + +def split_hosts(hosts_string): + hosts = set() + for host in hosts_string.split(','): + shost = host.strip() + if shost: + hosts.add(shost) + return hosts diff --git a/packstack/plugins/glance_200.py b/packstack/plugins/glance_200.py index 6c9ab0963..62054658b 100644 --- a/packstack/plugins/glance_200.py +++ b/packstack/plugins/glance_200.py @@ -8,6 +8,7 @@ import logging from packstack.installer import validators from packstack.installer import basedefs from packstack.installer import utils +from packstack.installer.utils import split_hosts from packstack.modules.ospluginutils import getManifestTemplate, appendManifestFile diff --git a/packstack/plugins/qpid_002.py b/packstack/plugins/qpid_002.py index ae4d2a2d4..5ebc3cd24 100644 --- a/packstack/plugins/qpid_002.py +++ b/packstack/plugins/qpid_002.py @@ -40,18 +40,20 @@ def initConfig(controllerObject): groupDict = { "GROUP_NAME" : "QPIDLANCE", "DESCRIPTION" : "QPID Config parameters", - "PRE_CONDITION" : "CONFIG_NOVA_INSTALL", - "PRE_CONDITION_MATCH" : "y", + "PRE_CONDITION" : check_enabled, + "PRE_CONDITION_MATCH" : True, "POST_CONDITION" : False, "POST_CONDITION_MATCH" : True} controller.addGroup(groupDict, paramsList) +def check_enabled(config): + return (config.get('CONFIG_NOVA_INSTALL') == 'y' or + config.get('CONFIG_QPID_HOST') != '') + + def initSequences(controller): - # If we don't want Nova we don't need qpid - if controller.CONF['CONFIG_NOVA_INSTALL'] != 'y': - return qpidsteps = [ {'title': 'Adding QPID manifest entries', 'functions':[createmanifest]} ] diff --git a/packstack/plugins/quantum_350.py b/packstack/plugins/quantum_350.py index 374513ba6..92ec39a9c 100644 --- a/packstack/plugins/quantum_350.py +++ b/packstack/plugins/quantum_350.py @@ -9,6 +9,7 @@ import uuid from packstack.installer import utils from packstack.installer import validators +from packstack.installer.utils import split_hosts from packstack.modules.ospluginutils import getManifestTemplate, appendManifestFile @@ -344,20 +345,13 @@ def initSequences(controller): controller.CONF['CONFIG_QUANTUM_CORE_PLUGIN'] = 'quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2' global api_hosts, l3_hosts, dhcp_hosts, compute_hosts, meta_hosts, q_hosts - dirty = controller.CONF['CONFIG_QUANTUM_SERVER_HOST'].split(',') - api_hosts = set([i.strip() for i in dirty if i.strip()]) - - dirty = controller.CONF['CONFIG_QUANTUM_L3_HOSTS'].split(',') - l3_hosts = set([i.strip() for i in dirty if i.strip()]) - - dirty = controller.CONF['CONFIG_QUANTUM_DHCP_HOSTS'].split(',') - dhcp_hosts = set([i.strip() for i in dirty if i.strip()]) - - dirty = controller.CONF['CONFIG_QUANTUM_METADATA_HOSTS'].split(',') - meta_hosts = set([i.strip() for i in dirty if i.strip()]) - - dirty = controller.CONF['CONFIG_NOVA_COMPUTE_HOSTS'].split(',') - compute_hosts = set([i.strip() for i in dirty if i.strip()]) + api_hosts = split_hosts(controller.CONF['CONFIG_QUANTUM_SERVER_HOST']) + l3_hosts = split_hosts(controller.CONF['CONFIG_QUANTUM_L3_HOSTS']) + dhcp_hosts = split_hosts(controller.CONF['CONFIG_QUANTUM_DHCP_HOSTS']) + meta_hosts = split_hosts(controller.CONF['CONFIG_QUANTUM_METADATA_HOSTS']) + compute_hosts = set() + if controller.CONF['CONFIG_NOVA_INSTALL'] == 'y': + compute_hosts = split_hosts(controller.CONF['CONFIG_NOVA_COMPUTE_HOSTS']) q_hosts = api_hosts | l3_hosts | dhcp_hosts | compute_hosts | meta_hosts quantum_steps = [ @@ -474,7 +468,8 @@ def createL2AgentManifests(config): def createMetadataManifests(config): global meta_hosts - + if config.get('CONFIG_NOVA_INSTALL') == 'n': + return for host in meta_hosts: controller.CONF['CONFIG_QUANTUM_METADATA_HOST'] = host manifestdata = getManifestTemplate('quantum_metadata.pp') diff --git a/packstack/plugins/swift_600.py b/packstack/plugins/swift_600.py index fd99e9035..9a40e7627 100644 --- a/packstack/plugins/swift_600.py +++ b/packstack/plugins/swift_600.py @@ -9,6 +9,7 @@ import os from packstack.installer import validators from packstack.installer import basedefs from packstack.installer import utils +from packstack.installer.utils import split_hosts from packstack.modules.ospluginutils import getManifestTemplate, appendManifestFile, manifestfiles