Add customization-module option

Add customization-module option for supporting
customize override layout horizon.
This adds HORIZON_CONFIG["customization-module"] to
local_settings.py

Change-Id: I610c74b64de1c0b0cbb7604ac1894d859828f1a0
Closes-Bug: 1618675
This commit is contained in:
Seyeong Kim 2016-12-20 11:03:59 +09:00 committed by Liam Young
parent 736169aad0
commit 155ddfae6d
5 changed files with 41 additions and 0 deletions

View File

@ -315,3 +315,9 @@ options:
default: horizon
type: string
description: Database name for Horizon (if enabled)
customization-module:
default: ""
type: string
description: |
Module that overriding layout for customization.
This is available from Liberty

View File

@ -182,6 +182,7 @@ class HorizonContext(OSContextGenerator):
'compress_offline':
bool_from_string(config('offline-compression')),
'debug': bool_from_string(config('debug')),
'customization_module': config('customization-module'),
'default_role': config('default-role'),
"webroot": config('webroot'),
"ubuntu_theme": bool_from_string(config('ubuntu-theme')),

View File

@ -94,6 +94,8 @@ WEBROOT = '/'
# including on the login form.
#HORIZON_CONFIG["disable_password_reveal"] = False
HORIZON_CONFIG["customization_module"] = "{{ customization_module }}"
LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))
# Set custom secret key:

View File

@ -114,6 +114,8 @@ WEBROOT = '/'
# including on the login form.
#HORIZON_CONFIG["disable_password_reveal"] = False
HORIZON_CONFIG["customization_module"] = "{{ customization_module }}"
LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))
# Set custom secret key:

View File

@ -102,6 +102,7 @@ class TestHorizonContexts(CharmTestCase):
def test_HorizonContext_defaults(self):
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': '',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': True,
'default_theme': None,
@ -122,6 +123,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('debug', 'yes')
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': True,
'customization_module': '',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': True,
'default_theme': None,
@ -142,6 +144,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('ubuntu-theme', 'False')
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': '',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': False,
'default_theme': None,
@ -163,6 +166,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('default-theme', 'material')
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': '',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': False,
'default_theme': 'material',
@ -187,6 +191,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('offline-compression', 'no')
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': False, 'debug': False,
'customization_module': '',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': True,
'default_theme': None,
@ -207,6 +212,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('default-role', 'foo')
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': '',
'default_role': 'foo', 'webroot': '/horizon',
'ubuntu_theme': True,
'default_theme': None,
@ -227,6 +233,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('webroot', '/')
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': '',
'default_role': 'Member', 'webroot': '/',
'ubuntu_theme': True,
'default_theme': None,
@ -252,6 +259,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('cinder-backup', True)
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': '',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': True,
'default_theme': None,
@ -272,6 +280,7 @@ class TestHorizonContexts(CharmTestCase):
self.test_config.set('password-retrieve', True)
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': '',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': True,
'default_theme': None,
@ -288,6 +297,27 @@ class TestHorizonContexts(CharmTestCase):
}
)
def test_HorizonContext_customization_module(self):
self.test_config.set('customization-module', 'customization.py')
self.assertEquals(horizon_contexts.HorizonContext()(),
{'compress_offline': True, 'debug': False,
'customization_module': 'customization.py',
'default_role': 'Member', 'webroot': '/horizon',
'ubuntu_theme': True,
'default_theme': None,
'virtualenv': None,
'secret': 'secret',
'support_profile': None,
"neutron_network_dvr": False,
"neutron_network_l3ha": False,
"neutron_network_lb": False,
"neutron_network_firewall": False,
"neutron_network_vpn": False,
"cinder_backup": False,
"password_retrieve": False,
}
)
def test_IdentityServiceContext_not_related(self):
self.relation_ids.return_value = []
self.context_complete.return_value = False