Version specific install of packages enabled

This commit is contained in:
Bilal Baqar 2015-10-02 08:06:23 -07:00
parent ee78ac30a2
commit 97edfaac50
3 changed files with 34 additions and 3 deletions

View File

@ -23,6 +23,16 @@ options:
default: null default: null
type: string type: string
description: Provide the respective keys of the install sources. description: Provide the respective keys of the install sources.
plumgrid-build:
default: 'latest'
type: string
description: |
Provide the build version of PLUMgrid packages that needs to be installed
iovisor-build:
default: 'latest'
type: string
description: |
Provide the build version of iovisor package that needs to be installed
plumgrid-license-key: plumgrid-license-key:
default: null default: null
type: string type: string

View File

@ -204,8 +204,8 @@ def neutron_plugins():
database=config('database'), database=config('database'),
ssl_dir=NEUTRON_CONF_DIR)], ssl_dir=NEUTRON_CONF_DIR)],
'services': [], 'services': [],
'packages': [['plumgrid-lxc'], 'packages': ['plumgrid-lxc',
['iovisor-dkms']], 'iovisor-dkms'],
'server_packages': ['neutron-server', 'server_packages': ['neutron-server',
'neutron-plugin-plumgrid'], 'neutron-plugin-plumgrid'],
'server_services': ['neutron-server'] 'server_services': ['neutron-server']

View File

@ -15,6 +15,9 @@ from charmhelpers.contrib.network.ip import (
get_bridge_nics, get_bridge_nics,
is_ip is_ip
) )
from charmhelpers.fetch import (
apt_cache
)
from charmhelpers.contrib.openstack import templating from charmhelpers.contrib.openstack import templating
from charmhelpers.core.host import set_nic_mtu from charmhelpers.core.host import set_nic_mtu
from collections import OrderedDict from collections import OrderedDict
@ -80,7 +83,25 @@ def determine_packages():
Returns list of packages required by PLUMgrid director as specified Returns list of packages required by PLUMgrid director as specified
in the neutron_plugins dictionary in charmhelpers. in the neutron_plugins dictionary in charmhelpers.
''' '''
return neutron_plugin_attribute('plumgrid', 'packages', 'neutron') pkgs = []
tag = 'latest'
for pkg in neutron_plugin_attribute('plumgrid', 'packages', 'neutron'):
if 'plumgrid' in pkg:
tag = config('plumgrid-build')
elif pkg == 'iovisor-dkms':
tag = config('iovisor-build')
if tag == 'latest':
pkgs.append(pkg)
else:
if tag in [i.ver_str for i in apt_cache()[pkg].version_list]:
pkgs.append('%s=%s' % (pkg, tag))
else:
error_msg = \
"Build version '%s' for package '%s' not available" \
% (tag, pkg)
raise ValueError(error_msg)
return pkgs
def register_configs(release=None): def register_configs(release=None):