[gnuoy,trivial] Charmhelper sync (+1'd by mojo)

This commit is contained in:
Liam Young 2015-09-03 10:45:18 +01:00
parent 0b0d832c33
commit 5c90772c74
5 changed files with 53 additions and 15 deletions

View File

@ -435,8 +435,12 @@ def get_hostname(address, fqdn=True):
rev = dns.reversename.from_address(address) rev = dns.reversename.from_address(address)
result = ns_query(rev) result = ns_query(rev)
if not result: if not result:
return None try:
result = socket.gethostbyaddr(address)[0]
except:
return None
else: else:
result = address result = address

View File

@ -895,6 +895,18 @@ class NeutronContext(OSContextGenerator):
'neutron_url': '%s://%s:%s' % (proto, host, '9696')} 'neutron_url': '%s://%s:%s' % (proto, host, '9696')}
return ctxt return ctxt
def pg_ctxt(self):
driver = neutron_plugin_attribute(self.plugin, 'driver',
self.network_manager)
config = neutron_plugin_attribute(self.plugin, 'config',
self.network_manager)
ovs_ctxt = {'core_plugin': driver,
'neutron_plugin': 'plumgrid',
'neutron_security_groups': self.neutron_security_groups,
'local_ip': unit_private_ip(),
'config': config}
return ovs_ctxt
def __call__(self): def __call__(self):
if self.network_manager not in ['quantum', 'neutron']: if self.network_manager not in ['quantum', 'neutron']:
return {} return {}
@ -914,6 +926,8 @@ class NeutronContext(OSContextGenerator):
ctxt.update(self.calico_ctxt()) ctxt.update(self.calico_ctxt())
elif self.plugin == 'vsp': elif self.plugin == 'vsp':
ctxt.update(self.nuage_ctxt()) ctxt.update(self.nuage_ctxt())
elif self.plugin == 'plumgrid':
ctxt.update(self.pg_ctxt())
alchemy_flags = config('neutron-alchemy-flags') alchemy_flags = config('neutron-alchemy-flags')
if alchemy_flags: if alchemy_flags:

View File

@ -195,6 +195,20 @@ def neutron_plugins():
'packages': [], 'packages': [],
'server_packages': ['neutron-server', 'neutron-plugin-nuage'], 'server_packages': ['neutron-server', 'neutron-plugin-nuage'],
'server_services': ['neutron-server'] 'server_services': ['neutron-server']
},
'plumgrid': {
'config': '/etc/neutron/plugins/plumgrid/plumgrid.ini',
'driver': 'neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2',
'contexts': [
context.SharedDBContext(user=config('database-user'),
database=config('database'),
ssl_dir=NEUTRON_CONF_DIR)],
'services': [],
'packages': [['plumgrid-lxc'],
['iovisor-dkms']],
'server_packages': ['neutron-server',
'neutron-plugin-plumgrid'],
'server_services': ['neutron-server']
} }
} }
if release >= 'icehouse': if release >= 'icehouse':

View File

@ -1,5 +1,3 @@
#!/usr/bin/python
# Copyright 2014-2015 Canonical Limited. # Copyright 2014-2015 Canonical Limited.
# #
# This file is part of charm-helpers. # This file is part of charm-helpers.
@ -195,9 +193,9 @@ def get_os_codename_version(vers):
error_out(e) error_out(e)
def get_os_version_codename(codename): def get_os_version_codename(codename, version_map=OPENSTACK_CODENAMES):
'''Determine OpenStack version number from codename.''' '''Determine OpenStack version number from codename.'''
for k, v in six.iteritems(OPENSTACK_CODENAMES): for k, v in six.iteritems(version_map):
if v == codename: if v == codename:
return k return k
e = 'Could not derive OpenStack version for '\ e = 'Could not derive OpenStack version for '\
@ -229,7 +227,7 @@ def get_os_codename_package(package, fatal=True):
error_out(e) error_out(e)
vers = apt.upstream_version(pkg.current_ver.ver_str) vers = apt.upstream_version(pkg.current_ver.ver_str)
match = re.match('^(\d)\.(\d)\.(\d)', vers) match = re.match('^(\d+)\.(\d+)\.(\d+)', vers)
if match: if match:
vers = match.group(0) vers = match.group(0)
@ -250,6 +248,8 @@ def get_os_codename_package(package, fatal=True):
vers = vers[:6] vers = vers[:6]
return OPENSTACK_CODENAMES[vers] return OPENSTACK_CODENAMES[vers]
except KeyError: except KeyError:
if not fatal:
return None
e = 'Could not determine OpenStack codename for version %s' % vers e = 'Could not determine OpenStack codename for version %s' % vers
error_out(e) error_out(e)
@ -429,7 +429,11 @@ def openstack_upgrade_available(package):
import apt_pkg as apt import apt_pkg as apt
src = config('openstack-origin') src = config('openstack-origin')
cur_vers = get_os_version_package(package) cur_vers = get_os_version_package(package)
available_vers = get_os_version_install_source(src) if "swift" in package:
codename = get_os_codename_install_source(src)
available_vers = get_os_version_codename(codename, SWIFT_CODENAMES)
else:
available_vers = get_os_version_install_source(src)
apt.init() apt.init()
return apt.version_compare(available_vers, cur_vers) == 1 return apt.version_compare(available_vers, cur_vers) == 1

View File

@ -767,21 +767,23 @@ def status_set(workload_state, message):
def status_get(): def status_get():
"""Retrieve the previously set juju workload state """Retrieve the previously set juju workload state and message
If the status-get command is not found then assume this is juju < 1.23 and
return 'unknown', ""
If the status-set command is not found then assume this is juju < 1.23 and
return 'unknown'
""" """
cmd = ['status-get'] cmd = ['status-get', "--format=json", "--include-data"]
try: try:
raw_status = subprocess.check_output(cmd, universal_newlines=True) raw_status = subprocess.check_output(cmd)
status = raw_status.rstrip()
return status
except OSError as e: except OSError as e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
return 'unknown' return ('unknown', "")
else: else:
raise raise
else:
status = json.loads(raw_status.decode("UTF-8"))
return (status["status"], status["message"])
def translate_exc(from_exc, to_exc): def translate_exc(from_exc, to_exc):