From 6d08bed111c21f50cbb88c2d4872ba1f9bdc4886 Mon Sep 17 00:00:00 2001 From: Parker Berberian Date: Thu, 3 Jan 2019 10:49:29 -0500 Subject: Requires a Jumphost per POD It was assumed but never enforced that each pod configuration elects at least one host as the "jumphost". This commit makes that a requirement when creating a configuration. Change-Id: If55f1aa231b3cba8713f325f158796d85466b02a Signed-off-by: Parker Berberian --- dashboard/src/workflow/sw_bundle_workflow.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dashboard/src/workflow/sw_bundle_workflow.py b/dashboard/src/workflow/sw_bundle_workflow.py index 26ade22..1695b65 100644 --- a/dashboard/src/workflow/sw_bundle_workflow.py +++ b/dashboard/src/workflow/sw_bundle_workflow.py @@ -125,6 +125,7 @@ class Define_Software(WorkflowStep): HostFormset = formset_factory(HostSoftwareDefinitionForm, extra=0) formset = HostFormset(request.POST) hosts = self.get_host_list() + has_jumphost = False if formset.is_valid(): models['host_configs'] = [] i = 0 @@ -147,6 +148,8 @@ class Define_Software(WorkflowStep): except: self.metastep.set_invalid("Image " + image.name + " is not compatible with host " + host.resource.name) role = form.cleaned_data['role'] + if "jumphost" in role.name.lower(): + has_jumphost = True bundle = models['bundle'] hostConfig = HostConfiguration( host=host, @@ -158,6 +161,10 @@ class Define_Software(WorkflowStep): confirm_host = {"name": host.resource.name, "image": image.name, "role": role.name} confirm_hosts.append(confirm_host) + if not has_jumphost: + self.metastep.set_invalid('Must have at least one "Jumphost" per POD') + return self.render(request) + self.repo_put(self.repo.CONFIG_MODELS, models) if "configuration" not in confirm: confirm['configuration'] = {} -- cgit 1.2.3-korg