Register v2 endpoint for >= icehouse
This commit is contained in:
parent
fc3183e07b
commit
699eb65bee
@ -52,7 +52,9 @@ from charmhelpers.core.host import (
|
||||
from charmhelpers.contrib.openstack.utils import (
|
||||
configure_installation_source,
|
||||
openstack_upgrade_available,
|
||||
sync_db_with_multi_ipv6_addresses)
|
||||
sync_db_with_multi_ipv6_addresses,
|
||||
get_os_codename_package
|
||||
)
|
||||
|
||||
from charmhelpers.contrib.storage.linux.ceph import (
|
||||
ensure_ceph_keyring,
|
||||
@ -247,6 +249,29 @@ def identity_joined(rid=None):
|
||||
}
|
||||
relation_set(relation_id=rid, **settings)
|
||||
|
||||
if get_os_codename_package('cinder-common') >= 'icehouse':
|
||||
# NOTE(jamespage) register v2 endpoint as well
|
||||
public_url = '{}:{}/v2/$(tenant_id)s'.format(
|
||||
canonical_url(CONFIGS, PUBLIC),
|
||||
config('api-listening-port')
|
||||
)
|
||||
internal_url = '{}:{}/v2/$(tenant_id)s'.format(
|
||||
canonical_url(CONFIGS, INTERNAL),
|
||||
config('api-listening-port')
|
||||
)
|
||||
admin_url = '{}:{}/v2/$(tenant_id)s'.format(
|
||||
canonical_url(CONFIGS, ADMIN),
|
||||
config('api-listening-port')
|
||||
)
|
||||
settings = {
|
||||
'region': config('region'),
|
||||
'service': 'cinderv2',
|
||||
'public_url': public_url,
|
||||
'internal_url': internal_url,
|
||||
'admin_url': admin_url,
|
||||
}
|
||||
relation_set(relation_id=rid, **settings)
|
||||
|
||||
|
||||
@hooks.hook('identity-service-relation-changed')
|
||||
@restart_on_change(restart_map())
|
||||
|
@ -62,6 +62,7 @@ TO_PATCH = [
|
||||
# charmhelpers.contrib.openstack.openstack_utils
|
||||
'configure_installation_source',
|
||||
'openstack_upgrade_available',
|
||||
'get_os_codename_package',
|
||||
# charmhelpers.contrib.hahelpers.cluster_utils
|
||||
'canonical_url',
|
||||
'eligible_leader',
|
||||
@ -337,6 +338,7 @@ class TestJoinedHooks(CharmTestCase):
|
||||
|
||||
def test_identity_service_joined(self):
|
||||
'It properly requests unclustered endpoint via identity-service'
|
||||
self.get_os_codename_package.return_value = 'havana'
|
||||
self.unit_get.return_value = 'cindernode1'
|
||||
self.config.side_effect = self.test_config.get
|
||||
self.canonical_url.return_value = 'http://cindernode1'
|
||||
@ -351,6 +353,32 @@ class TestJoinedHooks(CharmTestCase):
|
||||
}
|
||||
self.relation_set.assert_called_with(**expected)
|
||||
|
||||
def test_identity_service_joined_icehouse(self):
|
||||
'It properly requests unclustered endpoint via identity-service'
|
||||
self.get_os_codename_package.return_value = 'icehouse'
|
||||
self.unit_get.return_value = 'cindernode1'
|
||||
self.config.side_effect = self.test_config.get
|
||||
self.canonical_url.return_value = 'http://cindernode1'
|
||||
hooks.hooks.execute(['hooks/identity-service-relation-joined'])
|
||||
expected = {
|
||||
'service': 'cinder',
|
||||
'region': 'RegionOne',
|
||||
'public_url': 'http://cindernode1:8776/v1/$(tenant_id)s',
|
||||
'admin_url': 'http://cindernode1:8776/v1/$(tenant_id)s',
|
||||
'internal_url': 'http://cindernode1:8776/v1/$(tenant_id)s',
|
||||
'relation_id': None,
|
||||
}
|
||||
expectedv2 = {
|
||||
'service': 'cinderv2',
|
||||
'region': 'RegionOne',
|
||||
'public_url': 'http://cindernode1:8776/v2/$(tenant_id)s',
|
||||
'admin_url': 'http://cindernode1:8776/v2/$(tenant_id)s',
|
||||
'internal_url': 'http://cindernode1:8776/v2/$(tenant_id)s',
|
||||
'relation_id': None,
|
||||
}
|
||||
self.relation_set.assert_has_calls([call(**expected),
|
||||
call(**expectedv2)])
|
||||
|
||||
@patch('os.mkdir')
|
||||
def test_ceph_joined(self, mkdir):
|
||||
'It correctly prepares for a ceph changed hook'
|
||||
|
Loading…
x
Reference in New Issue
Block a user