Updates for pike b1

Resync charmhelpers for pike version support.

Add pike tests, but leave disabled until all charms support pike.

Register v3 endpoint for >= pike.

Depends-On: I9a4e452cc7b1b90126d1885c37f5a64b8241479d
Change-Id: I753f1673fe2a9b13ed4a6c3091311f7219490a63
This commit is contained in:
James Page 2017-05-12 07:18:19 +02:00
parent 3c91613af5
commit 6a9fc447eb
11 changed files with 174 additions and 2 deletions

View File

@ -262,7 +262,8 @@ class OpenStackAmuletDeployment(AmuletDeployment):
# Must be ordered by OpenStack release (not by Ubuntu release):
(self.trusty_icehouse, self.trusty_kilo, self.trusty_liberty,
self.trusty_mitaka, self.xenial_mitaka, self.xenial_newton,
self.yakkety_newton, self.xenial_ocata, self.zesty_ocata) = range(9)
self.yakkety_newton, self.xenial_ocata, self.zesty_ocata,
self.xenial_pike, self.artful_pike) = range(11)
releases = {
('trusty', None): self.trusty_icehouse,
@ -272,8 +273,10 @@ class OpenStackAmuletDeployment(AmuletDeployment):
('xenial', None): self.xenial_mitaka,
('xenial', 'cloud:xenial-newton'): self.xenial_newton,
('xenial', 'cloud:xenial-ocata'): self.xenial_ocata,
('xenial', 'cloud:xenial-pike'): self.xenial_pike,
('yakkety', None): self.yakkety_newton,
('zesty', None): self.zesty_ocata,
('artful', None): self.artful_pike,
}
return releases[(self.series, self.openstack)]
@ -287,6 +290,7 @@ class OpenStackAmuletDeployment(AmuletDeployment):
('xenial', 'mitaka'),
('yakkety', 'newton'),
('zesty', 'ocata'),
('artful', 'pike'),
])
if self.openstack:
os_origin = self.openstack.split(':')[1]

View File

@ -1393,6 +1393,10 @@ class NeutronAPIContext(OSContextGenerator):
'rel_key': 'enable-l3ha',
'default': False,
},
'dns_domain': {
'rel_key': 'dns-domain',
'default': None,
},
}
ctxt = self.get_neutron_options({})
for rid in relation_ids('neutron-plugin-api'):

View File

@ -111,6 +111,8 @@ OPENSTACK_RELEASES = (
'newton',
'ocata',
'pike',
'queens',
'rocky',
)
UBUNTU_OPENSTACK_RELEASE = OrderedDict([
@ -126,6 +128,7 @@ UBUNTU_OPENSTACK_RELEASE = OrderedDict([
('xenial', 'mitaka'),
('yakkety', 'newton'),
('zesty', 'ocata'),
('artful', 'pike'),
])
@ -142,6 +145,7 @@ OPENSTACK_CODENAMES = OrderedDict([
('2016.1', 'mitaka'),
('2016.2', 'newton'),
('2017.1', 'ocata'),
('2017.2', 'pike'),
])
# The ugly duckling - must list releases oldest to newest
@ -170,6 +174,8 @@ SWIFT_CODENAMES = OrderedDict([
['2.8.0', '2.9.0', '2.10.0']),
('ocata',
['2.11.0', '2.12.0', '2.13.0']),
('pike',
['2.13.0']),
])
# >= Liberty version->codename mapping
@ -179,54 +185,81 @@ PACKAGE_CODENAMES = {
('13', 'mitaka'),
('14', 'newton'),
('15', 'ocata'),
('16', 'pike'),
('17', 'queens'),
('18', 'rocky'),
]),
'neutron-common': OrderedDict([
('7', 'liberty'),
('8', 'mitaka'),
('9', 'newton'),
('10', 'ocata'),
('11', 'pike'),
('12', 'queens'),
('13', 'rocky'),
]),
'cinder-common': OrderedDict([
('7', 'liberty'),
('8', 'mitaka'),
('9', 'newton'),
('10', 'ocata'),
('11', 'pike'),
('12', 'queens'),
('13', 'rocky'),
]),
'keystone': OrderedDict([
('8', 'liberty'),
('9', 'mitaka'),
('10', 'newton'),
('11', 'ocata'),
('12', 'pike'),
('13', 'queens'),
('14', 'rocky'),
]),
'horizon-common': OrderedDict([
('8', 'liberty'),
('9', 'mitaka'),
('10', 'newton'),
('11', 'ocata'),
('12', 'pike'),
('13', 'queens'),
('14', 'rocky'),
]),
'ceilometer-common': OrderedDict([
('5', 'liberty'),
('6', 'mitaka'),
('7', 'newton'),
('8', 'ocata'),
('9', 'pike'),
('10', 'queens'),
('11', 'rocky'),
]),
'heat-common': OrderedDict([
('5', 'liberty'),
('6', 'mitaka'),
('7', 'newton'),
('8', 'ocata'),
('9', 'pike'),
('10', 'queens'),
('11', 'rocky'),
]),
'glance-common': OrderedDict([
('11', 'liberty'),
('12', 'mitaka'),
('13', 'newton'),
('14', 'ocata'),
('15', 'pike'),
('16', 'queens'),
('17', 'rocky'),
]),
'openstack-dashboard': OrderedDict([
('8', 'liberty'),
('9', 'mitaka'),
('10', 'newton'),
('11', 'ocata'),
('12', 'pike'),
('13', 'queens'),
('14', 'rocky'),
]),
}
@ -579,6 +612,12 @@ def configure_installation_source(rel):
'ocata': 'xenial-updates/ocata',
'ocata/updates': 'xenial-updates/ocata',
'ocata/proposed': 'xenial-proposed/ocata',
'pike': 'xenial-updates/pike',
'pike/updates': 'xenial-updates/pike',
'pike/proposed': 'xenial-proposed/pike',
'queens': 'xenial-updates/queens',
'queens/updates': 'xenial-updates/queens',
'queens/proposed': 'xenial-proposed/queens',
}
try:

View File

@ -19,6 +19,7 @@ UBUNTU_RELEASES = (
'xenial',
'yakkety',
'zesty',
'artful',
)

View File

@ -113,6 +113,22 @@ CLOUD_ARCHIVE_POCKETS = {
'ocata/proposed': 'xenial-proposed/ocata',
'xenial-ocata/proposed': 'xenial-proposed/ocata',
'xenial-ocata/newton': 'xenial-proposed/ocata',
# Pike
'pike': 'xenial-updates/pike',
'xenial-pike': 'xenial-updates/pike',
'xenial-pike/updates': 'xenial-updates/pike',
'xenial-updates/pike': 'xenial-updates/pike',
'pike/proposed': 'xenial-proposed/pike',
'xenial-pike/proposed': 'xenial-proposed/pike',
'xenial-pike/newton': 'xenial-proposed/pike',
# Queens
'queens': 'xenial-updates/queens',
'xenial-queens': 'xenial-updates/queens',
'xenial-queens/updates': 'xenial-updates/queens',
'xenial-updates/queens': 'xenial-updates/queens',
'queens/proposed': 'xenial-proposed/queens',
'xenial-queens/proposed': 'xenial-proposed/queens',
'xenial-queens/newton': 'xenial-proposed/queens',
}
APT_NO_LOCK = 100 # The return code for "couldn't acquire lock" in APT.

View File

@ -355,6 +355,27 @@ def identity_joined(rid=None):
'cinderv2_internal_url': internal_url,
'cinderv2_admin_url': admin_url,
})
if CompareOpenStackReleases(os_release('cinder-common')) >= 'pike':
# NOTE(jamespage) register v3 endpoint as well
public_url = '{}:{}/v3/$(tenant_id)s'.format(
canonical_url(CONFIGS, PUBLIC),
config('api-listening-port')
)
internal_url = '{}:{}/v3/$(tenant_id)s'.format(
canonical_url(CONFIGS, INTERNAL),
config('api-listening-port')
)
admin_url = '{}:{}/v3/$(tenant_id)s'.format(
canonical_url(CONFIGS, ADMIN),
config('api-listening-port')
)
settings.update({
'cinderv3_region': config('region'),
'cinderv3_service': 'cinderv3',
'cinderv3_public_url': public_url,
'cinderv3_internal_url': internal_url,
'cinderv3_admin_url': admin_url,
})
relation_set(relation_id=rid, **settings)

View File

@ -262,7 +262,8 @@ class OpenStackAmuletDeployment(AmuletDeployment):
# Must be ordered by OpenStack release (not by Ubuntu release):
(self.trusty_icehouse, self.trusty_kilo, self.trusty_liberty,
self.trusty_mitaka, self.xenial_mitaka, self.xenial_newton,
self.yakkety_newton, self.xenial_ocata, self.zesty_ocata) = range(9)
self.yakkety_newton, self.xenial_ocata, self.zesty_ocata,
self.xenial_pike, self.artful_pike) = range(11)
releases = {
('trusty', None): self.trusty_icehouse,
@ -272,8 +273,10 @@ class OpenStackAmuletDeployment(AmuletDeployment):
('xenial', None): self.xenial_mitaka,
('xenial', 'cloud:xenial-newton'): self.xenial_newton,
('xenial', 'cloud:xenial-ocata'): self.xenial_ocata,
('xenial', 'cloud:xenial-pike'): self.xenial_pike,
('yakkety', None): self.yakkety_newton,
('zesty', None): self.zesty_ocata,
('artful', None): self.artful_pike,
}
return releases[(self.series, self.openstack)]
@ -287,6 +290,7 @@ class OpenStackAmuletDeployment(AmuletDeployment):
('xenial', 'mitaka'),
('yakkety', 'newton'),
('zesty', 'ocata'),
('artful', 'pike'),
])
if self.openstack:
os_origin = self.openstack.split(':')[1]

View File

@ -19,6 +19,7 @@ UBUNTU_RELEASES = (
'xenial',
'yakkety',
'zesty',
'artful',
)

View File

@ -0,0 +1,23 @@
#!/usr/bin/env python
#
# Copyright 2016 Canonical Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Amulet tests on a basic Cinder deployment on artful-pike."""
from basic_deployment import CinderBasicDeployment
if __name__ == '__main__':
deployment = CinderBasicDeployment(series='artful')
deployment.run_tests()

View File

@ -0,0 +1,25 @@
#!/usr/bin/env python
#
# Copyright 2016 Canonical Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Amulet tests on a basic cinder deployment on xenial-pike."""
from basic_deployment import CinderBasicDeployment
if __name__ == '__main__':
deployment = CinderBasicDeployment(series='xenial',
openstack='cloud:xenial-pike',
source='cloud:xenial-updates/pike')
deployment.run_tests()

View File

@ -538,6 +538,40 @@ class TestJoinedHooks(CharmTestCase):
}
self.relation_set.assert_called_with(**expected)
@patch.object(hooks, 'canonical_url')
def test_identity_service_joined_pike(self, _canonical_url):
'It properly requests unclustered endpoint via identity-service'
self.os_release.return_value = 'pike'
self.config.side_effect = self.test_config.get
_canonical_url.return_value = 'http://cindernode1'
hooks.hooks.execute(['hooks/identity-service-relation-joined'])
expected = {
'region': None,
'service': None,
'public_url': None,
'internal_url': None,
'admin_url': None,
'cinder_service': 'cinder',
'cinder_region': 'RegionOne',
'cinder_public_url': 'http://cindernode1:8776/v1/$(tenant_id)s',
'cinder_admin_url': 'http://cindernode1:8776/v1/$(tenant_id)s',
'cinder_internal_url': 'http://cindernode1:8776/v1/$(tenant_id)s',
'cinderv2_service': 'cinderv2',
'cinderv2_region': 'RegionOne',
'cinderv2_public_url': 'http://cindernode1:8776/v2/$(tenant_id)s',
'cinderv2_admin_url': 'http://cindernode1:8776/v2/$(tenant_id)s',
'cinderv2_internal_url': 'http://cindernode1:8776/'
'v2/$(tenant_id)s',
'cinderv3_service': 'cinderv3',
'cinderv3_region': 'RegionOne',
'cinderv3_public_url': 'http://cindernode1:8776/v3/$(tenant_id)s',
'cinderv3_admin_url': 'http://cindernode1:8776/v3/$(tenant_id)s',
'cinderv3_internal_url': 'http://cindernode1:8776/'
'v3/$(tenant_id)s',
'relation_id': None,
}
self.relation_set.assert_called_with(**expected)
@patch('charmhelpers.contrib.openstack.ip.config')
@patch('charmhelpers.contrib.openstack.ip.unit_get')
@patch('charmhelpers.contrib.openstack.ip.is_clustered')