summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Tomasek <jtomasek@redhat.com>2015-02-26 14:30:06 +0100
committerJiri Tomasek <jtomasek@redhat.com>2015-03-03 11:13:23 +0100
commit1ec94e28738cdf643368f8a5ccaff265122e4e78 (patch)
tree71496c84ff3013f8102b4e05c842e748024568cf
parent53340993938de23ac747fa8aecf38b2be41e79da (diff)
downloadtuskar-ui-1ec94e28738cdf643368f8a5ccaff265122e4e78.tar.gz
Sync common parameters across roles when updating plan
Change-Id: I68b0d4d49001af4913bf6823c55ec96f368dbe22
-rw-r--r--tuskar_ui/infrastructure/parameters/forms.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/tuskar_ui/infrastructure/parameters/forms.py b/tuskar_ui/infrastructure/parameters/forms.py
index 1ee021f3..1992785c 100644
--- a/tuskar_ui/infrastructure/parameters/forms.py
+++ b/tuskar_ui/infrastructure/parameters/forms.py
@@ -125,6 +125,7 @@ class AdvancedEditServiceConfig(ServiceConfig):
def handle(self, request, data):
plan = api.tuskar.Plan.get_the_plan(self.request)
+ data = self._sync_common_params_across_roles(plan, data)
try:
plan.patch(request, plan.uuid, data)
@@ -140,6 +141,16 @@ class AdvancedEditServiceConfig(ServiceConfig):
_("Service configuration updated."))
return True
+ @staticmethod
+ def _sync_common_params_across_roles(plan, parameters_dict):
+ for (p_key, p_value) in parameters_dict.iteritems():
+ for role in plan.role_list:
+ role_parameter_key = (role.parameter_prefix +
+ api.tuskar.strip_prefix(p_key))
+ if role_parameter_key in parameters_dict:
+ parameters_dict[role_parameter_key] = p_value
+ return parameters_dict
+
class SimpleEditServiceConfig(horizon.forms.SelfHandlingForm):
virt_type = django.forms.ChoiceField(