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

Proposed by James Page
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 (community) Approve
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

Drop local package versionmap for now

409. By James Page

Ensure that only the actual upstream version is picked

410. By James Page

No keystone common

Revision history for this message
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