Merge lp:~james-page/charm-helpers/liberty-versioning into lp:charm-helpers

Proposed by James Page on 2015-07-16
Status: Merged
Merged at revision: 426
Proposed branch: lp:~james-page/charm-helpers/liberty-versioning
Merge into: lp:charm-helpers
Diff against target: 118 lines (+61/-14)
2 files modified
charmhelpers/contrib/openstack/utils.py (+51/-14)
tests/contrib/openstack/test_openstack_utils.py (+10/-0)
To merge this branch: bzr merge lp:~james-page/charm-helpers/liberty-versioning
Reviewer Review Type Date Requested Status
Liam Young 2015-07-16 Approve on 2015-08-12
Review via email: mp+264998@code.launchpad.net

Description of the Change

Add support for independent project versioning in >= liberty

To post a comment you must log in.
408. By James Page on 2015-07-16

Drop local package versionmap for now

409. By James Page on 2015-07-17

Ensure that only the actual upstream version is picked

410. By James Page on 2015-07-17

No keystone common

Liam Young (gnuoy) wrote :

LGTM and tests passed

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'charmhelpers/contrib/openstack/utils.py'
2--- charmhelpers/contrib/openstack/utils.py 2015-07-15 15:42:44 +0000
3+++ charmhelpers/contrib/openstack/utils.py 2015-07-17 10:27:14 +0000
4@@ -24,6 +24,7 @@
5 import json
6 import os
7 import sys
8+import re
9
10 import six
11 import yaml
12@@ -69,7 +70,6 @@
13 DISTRO_PROPOSED = ('deb http://archive.ubuntu.com/ubuntu/ %s-proposed '
14 'restricted main multiverse universe')
15
16-
17 UBUNTU_OPENSTACK_RELEASE = OrderedDict([
18 ('oneiric', 'diablo'),
19 ('precise', 'essex'),
20@@ -118,6 +118,34 @@
21 ('2.3.0', 'liberty'),
22 ])
23
24+# >= Liberty version->codename mapping
25+PACKAGE_CODENAMES = {
26+ 'nova-common': OrderedDict([
27+ ('12.0.0', 'liberty'),
28+ ]),
29+ 'neutron-common': OrderedDict([
30+ ('7.0.0', 'liberty'),
31+ ]),
32+ 'cinder-common': OrderedDict([
33+ ('7.0.0', 'liberty'),
34+ ]),
35+ 'keystone': OrderedDict([
36+ ('8.0.0', 'liberty'),
37+ ]),
38+ 'horizon-common': OrderedDict([
39+ ('8.0.0', 'liberty'),
40+ ]),
41+ 'ceilometer-common': OrderedDict([
42+ ('5.0.0', 'liberty'),
43+ ]),
44+ 'heat-common': OrderedDict([
45+ ('5.0.0', 'liberty'),
46+ ]),
47+ 'glance-common': OrderedDict([
48+ ('11.0.0', 'liberty'),
49+ ]),
50+}
51+
52 DEFAULT_LOOPBACK_SIZE = '5G'
53
54
55@@ -201,20 +229,29 @@
56 error_out(e)
57
58 vers = apt.upstream_version(pkg.current_ver.ver_str)
59+ match = re.match('^(\d)\.(\d)\.(\d)', vers)
60+ if match:
61+ vers = match.group(0)
62
63- try:
64- if 'swift' in pkg.name:
65- swift_vers = vers[:5]
66- if swift_vers not in SWIFT_CODENAMES:
67- # Deal with 1.10.0 upward
68- swift_vers = vers[:6]
69- return SWIFT_CODENAMES[swift_vers]
70- else:
71- vers = vers[:6]
72- return OPENSTACK_CODENAMES[vers]
73- except KeyError:
74- e = 'Could not determine OpenStack codename for version %s' % vers
75- error_out(e)
76+ # >= Liberty independent project versions
77+ if (package in PACKAGE_CODENAMES and
78+ vers in PACKAGE_CODENAMES[package]):
79+ return PACKAGE_CODENAMES[package][vers]
80+ else:
81+ # < Liberty co-ordinated project versions
82+ try:
83+ if 'swift' in pkg.name:
84+ swift_vers = vers[:5]
85+ if swift_vers not in SWIFT_CODENAMES:
86+ # Deal with 1.10.0 upward
87+ swift_vers = vers[:6]
88+ return SWIFT_CODENAMES[swift_vers]
89+ else:
90+ vers = vers[:6]
91+ return OPENSTACK_CODENAMES[vers]
92+ except KeyError:
93+ e = 'Could not determine OpenStack codename for version %s' % vers
94+ error_out(e)
95
96
97 def get_os_version_package(pkg, fatal=True):
98
99=== modified file 'tests/contrib/openstack/test_openstack_utils.py'
100--- tests/contrib/openstack/test_openstack_utils.py 2015-07-14 18:12:04 +0000
101+++ tests/contrib/openstack/test_openstack_utils.py 2015-07-17 10:27:14 +0000
102@@ -26,6 +26,16 @@
103 }
104
105 FAKE_REPO = {
106+ 'neutron-common': {
107+ 'pkg_vers': '2:7.0.0-0ubuntu1',
108+ 'os_release': 'liberty',
109+ 'os_version': '2015.2'
110+ },
111+ 'nova-common': {
112+ 'pkg_vers': '2:12.0.0~b1-0ubuntu1',
113+ 'os_release': 'liberty',
114+ 'os_version': '2015.2'
115+ },
116 'nova-common': {
117 'pkg_vers': '2012.2.3-0ubuntu2.1',
118 'os_release': 'folsom',

Subscribers

People subscribed via source and target branches