Register v2 endpoint for >= icehouse

This commit is contained in:
James Page 2015-03-24 09:35:14 +00:00
parent fc3183e07b
commit 699eb65bee
2 changed files with 54 additions and 1 deletions

@ -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'