~corey.bryant/charms/trusty/heat/status

« back to all changes in this revision

Viewing changes to hooks/charmhelpers/contrib/openstack/utils.py

  • Committer: Liam Young
  • Date: 2015-09-03 09:45:18 UTC
  • Revision ID: liam.young@canonical.com-20150903094518-7htb8glbfm69zl6s
[gnuoy,trivial] Charmhelper sync (+1'd by mojo)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/python
2
 
 
3
1
# Copyright 2014-2015 Canonical Limited.
4
2
#
5
3
# This file is part of charm-helpers.
195
193
        error_out(e)
196
194
 
197
195
 
198
 
def get_os_version_codename(codename):
 
196
def get_os_version_codename(codename, version_map=OPENSTACK_CODENAMES):
199
197
    '''Determine OpenStack version number from codename.'''
200
 
    for k, v in six.iteritems(OPENSTACK_CODENAMES):
 
198
    for k, v in six.iteritems(version_map):
201
199
        if v == codename:
202
200
            return k
203
201
    e = 'Could not derive OpenStack version for '\
229
227
        error_out(e)
230
228
 
231
229
    vers = apt.upstream_version(pkg.current_ver.ver_str)
232
 
    match = re.match('^(\d)\.(\d)\.(\d)', vers)
 
230
    match = re.match('^(\d+)\.(\d+)\.(\d+)', vers)
233
231
    if match:
234
232
        vers = match.group(0)
235
233
 
250
248
                vers = vers[:6]
251
249
                return OPENSTACK_CODENAMES[vers]
252
250
        except KeyError:
 
251
            if not fatal:
 
252
                return None
253
253
            e = 'Could not determine OpenStack codename for version %s' % vers
254
254
            error_out(e)
255
255
 
429
429
    import apt_pkg as apt
430
430
    src = config('openstack-origin')
431
431
    cur_vers = get_os_version_package(package)
432
 
    available_vers = get_os_version_install_source(src)
 
432
    if "swift" in package:
 
433
        codename = get_os_codename_install_source(src)
 
434
        available_vers = get_os_version_codename(codename, SWIFT_CODENAMES)
 
435
    else:
 
436
        available_vers = get_os_version_install_source(src)
433
437
    apt.init()
434
438
    return apt.version_compare(available_vers, cur_vers) == 1
435
439