Add new interface 'dashboard'
openstack-dashboard exposes the hostnames (and IP addresses) that can be
used by users to load Horizon. There are 3 possible sources, they are
juju units ingress-address, os-public-hostname and vip config options
Closes-Bug: #2030094
Change-Id: I5eb524c6258f72980ef43175f2bed21d7ca078be
(cherry picked from commit 484b7d8260
)
This commit is contained in:
parent
059e49d146
commit
f3f61cb24d
1
hooks/dashboard-relation-changed
Symbolic link
1
hooks/dashboard-relation-changed
Symbolic link
@ -0,0 +1 @@
|
||||
horizon_hooks.py
|
1
hooks/dashboard-relation-joined
Symbolic link
1
hooks/dashboard-relation-joined
Symbolic link
@ -0,0 +1 @@
|
||||
horizon_hooks.py
|
@ -225,6 +225,7 @@ def config_changed():
|
||||
|
||||
websso_trusted_dashboard_changed()
|
||||
application_dashboard_relation_changed()
|
||||
dashboard_relation_changed()
|
||||
|
||||
|
||||
@hooks.hook('identity-service-relation-joined')
|
||||
@ -464,6 +465,25 @@ def websso_trusted_dashboard_changed():
|
||||
})
|
||||
|
||||
|
||||
@hooks.hook('dashboard-relation-joined',
|
||||
'dashboard-relation-changed')
|
||||
def dashboard_relation_changed():
|
||||
"""
|
||||
Provide dashboard information.
|
||||
"""
|
||||
relations = relation_ids('dashboard')
|
||||
if not relations:
|
||||
return
|
||||
|
||||
relation_settings = {
|
||||
'os-public-hostname': config('os-public-hostname'),
|
||||
'vip': config('vip'),
|
||||
}
|
||||
|
||||
for rel_id in relations:
|
||||
relation_set(rel_id, relation_settings=relation_settings, app=True)
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
hooks.execute(sys.argv)
|
||||
|
@ -24,6 +24,8 @@ provides:
|
||||
scope: container
|
||||
websso-trusted-dashboard:
|
||||
interface: websso-trusted-dashboard
|
||||
dashboard:
|
||||
interface: dashboard
|
||||
requires:
|
||||
identity-service:
|
||||
interface: keystone
|
||||
|
@ -252,6 +252,7 @@ class TestHorizonHooks(CharmTestCase):
|
||||
],
|
||||
'certificates': [],
|
||||
'ha': [],
|
||||
'dashboard': [],
|
||||
}[rname]
|
||||
self.relation_ids.side_effect = relation_ids_side_effect
|
||||
|
||||
@ -525,3 +526,19 @@ class TestHorizonHooks(CharmTestCase):
|
||||
"group": "[local] OpenStack"
|
||||
})
|
||||
])
|
||||
|
||||
def test_dashboard_relation_changed(self):
|
||||
self.relation_ids.return_value = None
|
||||
hooks.dashboard_relation_changed()
|
||||
|
||||
self.test_config.set('os-public-hostname', 'mydashboard.local')
|
||||
self.test_config.set('vip', '1.2.3.4')
|
||||
self.relation_ids.return_value = ['dashboard:0']
|
||||
hooks.dashboard_relation_changed()
|
||||
|
||||
self.relation_set.assert_called_with(
|
||||
'dashboard:0',
|
||||
relation_settings={'os-public-hostname': 'mydashboard.local',
|
||||
'vip': '1.2.3.4'},
|
||||
app=True,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user