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'])
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)

View File

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

View File

@ -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

View File

@ -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)