Merge "Block endpoint reg if cluster partially formed"
This commit is contained in:
commit
32c14c46c3
|
@ -5,3 +5,4 @@ bin
|
|||
*.sw[nop]
|
||||
*.pyc
|
||||
.unit-state.db
|
||||
.stestr
|
||||
|
|
|
@ -59,6 +59,7 @@ from charmhelpers.core.hookenv import (
|
|||
related_units,
|
||||
service_name,
|
||||
log,
|
||||
DEBUG,
|
||||
ERROR,
|
||||
WARNING,
|
||||
status_set,
|
||||
|
@ -97,6 +98,7 @@ from charmhelpers.contrib.storage.linux.ceph import (
|
|||
)
|
||||
|
||||
from charmhelpers.contrib.hahelpers.cluster import (
|
||||
is_clustered,
|
||||
is_elected_leader,
|
||||
get_hacluster_config,
|
||||
)
|
||||
|
@ -307,13 +309,19 @@ def amqp_departed():
|
|||
|
||||
@hooks.hook('identity-service-relation-joined')
|
||||
def identity_joined(rid=None):
|
||||
if config('vip') and not is_clustered():
|
||||
log('Defering registration until clustered', level=DEBUG)
|
||||
return
|
||||
|
||||
settings = {}
|
||||
|
||||
if not service_enabled('api'):
|
||||
juju_log('api service not enabled; skipping endpoint registration')
|
||||
juju_log('api service not enabled; skipping endpoint '
|
||||
'registration')
|
||||
return
|
||||
|
||||
if CompareOpenStackReleases(os_release('cinder-common')) < 'pike':
|
||||
cinder_release = os_release('cinder-common')
|
||||
if CompareOpenStackReleases(cinder_release) < 'pike':
|
||||
public_url = '{}:{}/v1/$(tenant_id)s'.format(
|
||||
canonical_url(CONFIGS, PUBLIC),
|
||||
config('api-listening-port')
|
||||
|
@ -338,7 +346,7 @@ def identity_joined(rid=None):
|
|||
'cinder_internal_url': internal_url,
|
||||
'cinder_admin_url': admin_url,
|
||||
})
|
||||
if CompareOpenStackReleases(os_release('cinder-common')) >= 'icehouse':
|
||||
if CompareOpenStackReleases(cinder_release) >= 'icehouse':
|
||||
# NOTE(jamespage) register v2 endpoint as well
|
||||
public_url = '{}:{}/v2/$(tenant_id)s'.format(
|
||||
canonical_url(CONFIGS, PUBLIC),
|
||||
|
@ -359,7 +367,7 @@ def identity_joined(rid=None):
|
|||
'cinderv2_internal_url': internal_url,
|
||||
'cinderv2_admin_url': admin_url,
|
||||
})
|
||||
if CompareOpenStackReleases(os_release('cinder-common')) >= 'pike':
|
||||
if CompareOpenStackReleases(cinder_release) >= 'pike':
|
||||
# NOTE(jamespage) register v3 endpoint as well
|
||||
public_url = '{}:{}/v3/$(tenant_id)s'.format(
|
||||
canonical_url(CONFIGS, PUBLIC),
|
||||
|
|
|
@ -55,6 +55,7 @@ TO_PATCH = [
|
|||
'do_openstack_upgrade',
|
||||
'ensure_ceph_keyring',
|
||||
'git_install',
|
||||
'is_clustered',
|
||||
'juju_log',
|
||||
'log',
|
||||
'lsb_release',
|
||||
|
@ -368,6 +369,12 @@ class TestChangedHooks(CharmTestCase):
|
|||
hooks.hooks.execute(['hooks/amqp-relation-changed'])
|
||||
self.assertFalse(self.CONFIGS.write.called)
|
||||
|
||||
def test_identity_joined_partial_cluster(self):
|
||||
self.is_clustered.return_value = False
|
||||
self.test_config.set('vip', '10.0.0.10')
|
||||
hooks.identity_joined()
|
||||
self.assertFalse(self.relation_set.called)
|
||||
|
||||
@patch.object(hooks, 'configure_https')
|
||||
def test_identity_changed(self, conf_https):
|
||||
'It writes out api-paste.ini on identity-service changed'
|
||||
|
|
Loading…
Reference in New Issue