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:
parent
3c91613af5
commit
6a9fc447eb
|
@ -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]
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -19,6 +19,7 @@ UBUNTU_RELEASES = (
|
|||
'xenial',
|
||||
'yakkety',
|
||||
'zesty',
|
||||
'artful',
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -19,6 +19,7 @@ UBUNTU_RELEASES = (
|
|||
'xenial',
|
||||
'yakkety',
|
||||
'zesty',
|
||||
'artful',
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -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()
|
|
@ -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()
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue