diff options
-rw-r--r-- | src/workflow/sw_bundle_workflow.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/workflow/sw_bundle_workflow.py b/src/workflow/sw_bundle_workflow.py index a9be4ea..80d1b3d 100644 --- a/src/workflow/sw_bundle_workflow.py +++ b/src/workflow/sw_bundle_workflow.py @@ -118,6 +118,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 @@ -140,6 +141,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, @@ -151,6 +154,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'] = {} |