Moved all parameters away from Role and into Plan

This change reflects the Tuskar API design.

Change-Id: Ic6b32a8fc19cc17903bd62c1bccaece00df3e5ab
This commit is contained in:
Tzu-Mainn Chen 2014-08-08 18:35:54 +02:00
parent d928ed3038
commit a6383aa974
4 changed files with 58 additions and 54 deletions

View File

@ -154,6 +154,17 @@ class OvercloudPlan(base.APIDictWrapper):
return [OvercloudRole.get(self._request, role['id']) return [OvercloudRole.get(self._request, role['id'])
for role in self.roles] 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): def parameter(self, param_name):
for parameter in self.parameters: for parameter in self.parameters:
if parameter['name'] == param_name: if parameter['name'] == param_name:
@ -167,8 +178,7 @@ class OvercloudPlan(base.APIDictWrapper):
class OvercloudRole(base.APIDictWrapper): class OvercloudRole(base.APIDictWrapper):
_attrs = ('id', 'name', 'version', 'description', 'created_at', _attrs = ('id', 'name', 'version', 'description', 'created')
'parameters')
def __init__(self, apiresource, request=None): def __init__(self, apiresource, request=None):
super(OvercloudRole, self).__init__(apiresource) super(OvercloudRole, self).__init__(apiresource)

View File

@ -10,14 +10,11 @@
{% block main %} {% block main %}
<div class="row-fluid"> <div class="row-fluid">
<div class="span12"> <div class="span12">
{% for role in roles %} <ul>
{{ role.name }} {% for p in plan_parameters %}
<ul> <li>{{ p.parameter_group|default:"General" }}: {{ p.name }}</li>
{% for p in role.parameters %} {% endfor %}
<li>{{ p.name }}</li> </ul>
{% endfor %}
</ul>
{% endfor %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -23,5 +23,6 @@ class IndexView(horizon_views.APIView):
def get_data(self, request, context, *args, **kwargs): def get_data(self, request, context, *args, **kwargs):
plan = api.tuskar.OvercloudPlan.get_the_plan(self.request) plan = api.tuskar.OvercloudPlan.get_the_plan(self.request)
context['plan'] = plan context['plan'] = plan
context['roles'] = plan.role_list context['plan_parameters'] = plan.parameter_list(
include_key_parameters=False)
return context return context

View File

@ -95,6 +95,41 @@ def data(TEST):
'description': 'Block storage image ID', 'description': 'Block storage image ID',
'hidden': 'false', 'hidden': 'false',
'value': '4', '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', 'name': 'AdminPassword',
'label': 'Admin Password', 'label': 'Admin Password',
@ -112,66 +147,27 @@ def data(TEST):
'name': 'Controller', 'name': 'Controller',
'version': 1, 'version': 1,
'description': 'controller role', 'description': 'controller role',
'created_at': '2014-05-27T21:11:09Z', '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',
}]
} }
r_2 = { r_2 = {
'id': 'role-2', 'id': 'role-2',
'name': 'Compute', 'name': 'Compute',
'version': 1, 'version': 1,
'description': 'compute role', 'description': 'compute role',
'created_at': '2014-05-27T21:11:09Z', 'created_at': '2014-05-27T21:11:09Z'
'parameters': [{
'name': 'compute_KeystoneHost',
'parameter_group': 'Keystone',
'type': 'String',
'description': '',
'no_echo': 'false',
'default': '',
}]
} }
r_3 = { r_3 = {
'id': 'role-3', 'id': 'role-3',
'name': 'Object Storage', 'name': 'Object Storage',
'version': 1, 'version': 1,
'description': 'object storage role', 'description': 'object storage role',
'created_at': '2014-05-27T21:11:09Z', 'created_at': '2014-05-27T21:11:09Z'
'parameters': [{
'name': 'object_storage_SwiftHashSuffix',
'parameter_group': 'Swift',
'type': 'String',
'description': '',
'no_echo': 'true',
'default': '',
}]
} }
r_4 = { r_4 = {
'id': 'role-4', 'id': 'role-4',
'name': 'Block Storage', 'name': 'Block Storage',
'version': 1, 'version': 1,
'description': 'block storage role', 'description': 'block storage role',
'created_at': '2014-05-27T21:11:09Z', 'created_at': '2014-05-27T21:11:09Z'
'parameters': [{
'name': 'block_storage_NeutronNetworkType',
'parameter_group': 'Neutron',
'type': 'String',
'description': '',
'no_echo': 'false',
'default': 'gre',
}]
} }
TEST.tuskarclient_roles.add(r_1, r_2, r_3, r_4) TEST.tuskarclient_roles.add(r_1, r_2, r_3, r_4)