diff --git a/tuskar_ui/api/tuskar.py b/tuskar_ui/api/tuskar.py
index 903559df6..e21cb70ea 100644
--- a/tuskar_ui/api/tuskar.py
+++ b/tuskar_ui/api/tuskar.py
@@ -154,6 +154,17 @@ class OvercloudPlan(base.APIDictWrapper):
return [OvercloudRole.get(self._request, role['id'])
for role in self.roles]
+ def parameter_list(self, include_key_parameters=True):
+ params = self.parameters
+ if not include_key_parameters:
+ key_params = []
+ for role in self.role_list:
+ key_params.extend([role.node_count_parameter_name,
+ role.image_id_parameter_name,
+ role.flavor_id_parameter_name])
+ params = [p for p in params if p['name'] not in key_params]
+ return params
+
def parameter(self, param_name):
for parameter in self.parameters:
if parameter['name'] == param_name:
@@ -167,8 +178,7 @@ class OvercloudPlan(base.APIDictWrapper):
class OvercloudRole(base.APIDictWrapper):
- _attrs = ('id', 'name', 'version', 'description', 'created_at',
- 'parameters')
+ _attrs = ('id', 'name', 'version', 'description', 'created')
def __init__(self, apiresource, request=None):
super(OvercloudRole, self).__init__(apiresource)
diff --git a/tuskar_ui/infrastructure/parameters/templates/parameters/index.html b/tuskar_ui/infrastructure/parameters/templates/parameters/index.html
index f1d812669..f823de8cf 100644
--- a/tuskar_ui/infrastructure/parameters/templates/parameters/index.html
+++ b/tuskar_ui/infrastructure/parameters/templates/parameters/index.html
@@ -10,14 +10,11 @@
{% block main %}
- {% for role in roles %}
- {{ role.name }}
-
- {% for p in role.parameters %}
- - {{ p.name }}
- {% endfor %}
-
- {% endfor %}
+
+ {% for p in plan_parameters %}
+ - {{ p.parameter_group|default:"General" }}: {{ p.name }}
+ {% endfor %}
+
{% endblock %}
diff --git a/tuskar_ui/infrastructure/parameters/views.py b/tuskar_ui/infrastructure/parameters/views.py
index 250b056dc..4893c8260 100644
--- a/tuskar_ui/infrastructure/parameters/views.py
+++ b/tuskar_ui/infrastructure/parameters/views.py
@@ -23,5 +23,6 @@ class IndexView(horizon_views.APIView):
def get_data(self, request, context, *args, **kwargs):
plan = api.tuskar.OvercloudPlan.get_the_plan(self.request)
context['plan'] = plan
- context['roles'] = plan.role_list
+ context['plan_parameters'] = plan.parameter_list(
+ include_key_parameters=False)
return context
diff --git a/tuskar_ui/test/test_data/tuskar_data.py b/tuskar_ui/test/test_data/tuskar_data.py
index 94f9b3d49..fccad559c 100644
--- a/tuskar_ui/test/test_data/tuskar_data.py
+++ b/tuskar_ui/test/test_data/tuskar_data.py
@@ -95,6 +95,41 @@ def data(TEST):
'description': 'Block storage image ID',
'hidden': 'false',
'value': '4',
+ }, {
+ 'name': 'controller_NovaInterfaces',
+ 'parameter_group': 'Nova',
+ 'type': 'String',
+ 'description': '',
+ 'no_echo': 'false',
+ 'default': 'eth0',
+ }, {
+ 'name': 'controller_NeutronInterfaces',
+ 'parameter_group': 'Neutron',
+ 'type': 'String',
+ 'description': '',
+ 'no_echo': 'false',
+ 'default': 'eth0',
+ }, {
+ 'name': 'compute_KeystoneHost',
+ 'parameter_group': 'Keystone',
+ 'type': 'String',
+ 'description': '',
+ 'no_echo': 'false',
+ 'default': '',
+ }, {
+ 'name': 'object_storage_SwiftHashSuffix',
+ 'parameter_group': 'Swift',
+ 'type': 'String',
+ 'description': '',
+ 'no_echo': 'true',
+ 'default': '',
+ }, {
+ 'name': 'block_storage_NeutronNetworkType',
+ 'parameter_group': 'Neutron',
+ 'type': 'String',
+ 'description': '',
+ 'no_echo': 'false',
+ 'default': 'gre',
}, {
'name': 'AdminPassword',
'label': 'Admin Password',
@@ -112,66 +147,27 @@ def data(TEST):
'name': 'Controller',
'version': 1,
'description': 'controller role',
- 'created_at': '2014-05-27T21:11:09Z',
- 'parameters': [{
- 'name': 'controller_NovaInterfaces',
- 'parameter_group': 'Nova',
- 'type': 'String',
- 'description': '',
- 'no_echo': 'false',
- 'default': 'eth0',
- }, {
- 'name': 'controller_NeutronInterfaces',
- 'parameter_group': 'Neutron',
- 'type': 'String',
- 'description': '',
- 'no_echo': 'false',
- 'default': 'eth0',
- }]
+ 'created_at': '2014-05-27T21:11:09Z'
}
r_2 = {
'id': 'role-2',
'name': 'Compute',
'version': 1,
'description': 'compute role',
- 'created_at': '2014-05-27T21:11:09Z',
- 'parameters': [{
- 'name': 'compute_KeystoneHost',
- 'parameter_group': 'Keystone',
- 'type': 'String',
- 'description': '',
- 'no_echo': 'false',
- 'default': '',
- }]
+ 'created_at': '2014-05-27T21:11:09Z'
}
r_3 = {
'id': 'role-3',
'name': 'Object Storage',
'version': 1,
'description': 'object storage role',
- 'created_at': '2014-05-27T21:11:09Z',
- 'parameters': [{
- 'name': 'object_storage_SwiftHashSuffix',
- 'parameter_group': 'Swift',
- 'type': 'String',
- 'description': '',
- 'no_echo': 'true',
- 'default': '',
- }]
+ 'created_at': '2014-05-27T21:11:09Z'
}
r_4 = {
'id': 'role-4',
'name': 'Block Storage',
'version': 1,
'description': 'block storage role',
- 'created_at': '2014-05-27T21:11:09Z',
- 'parameters': [{
- 'name': 'block_storage_NeutronNetworkType',
- 'parameter_group': 'Neutron',
- 'type': 'String',
- 'description': '',
- 'no_echo': 'false',
- 'default': 'gre',
- }]
+ 'created_at': '2014-05-27T21:11:09Z'
}
TEST.tuskarclient_roles.add(r_1, r_2, r_3, r_4)