X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=dashboard%2Fsrc%2Fworkflow%2Fresource_bundle_workflow.py;h=4858ebe7c7db90b125c3d143cd801ed55a93252e;hb=2f9786ec78b1fd6181405bb9938ab90767838e37;hp=9fb4ae136d40463598164d729f7dfda5381ecb0b;hpb=f2bbdbbf7e03be031723a9680aa9deaf80e4a99c;p=pharos-tools.git diff --git a/dashboard/src/workflow/resource_bundle_workflow.py b/dashboard/src/workflow/resource_bundle_workflow.py index 9fb4ae1..4858ebe 100644 --- a/dashboard/src/workflow/resource_bundle_workflow.py +++ b/dashboard/src/workflow/resource_bundle_workflow.py @@ -35,7 +35,8 @@ from dashboard.exceptions import ( InvalidVlanConfigurationException, NetworkExistsException, InvalidHostnameException, - NonUniqueHostnameException + NonUniqueHostnameException, + ResourceAvailabilityException ) import logging @@ -130,9 +131,12 @@ class Define_Hardware(WorkflowStep): try: self.form = HardwareDefinitionForm(request.POST) if self.form.is_valid(): - self.update_models(self.form.cleaned_data) - self.update_confirmation() - self.metastep.set_valid("Step Completed") + if len(json.loads(self.form.cleaned_data['filter_field'])['labs']) != 1: + self.metastep.set_invalid("Please select one lab") + else: + self.update_models(self.form.cleaned_data) + self.update_confirmation() + self.metastep.set_valid("Step Completed") else: self.metastep.set_invalid("Please complete the fields highlighted in red to continue") pass @@ -233,6 +237,8 @@ class Define_Nets(WorkflowStep): self.updateModels(xmlData) # update model with xml self.metastep.set_valid("Networks applied successfully") + except ResourceAvailabilityException: + self.metastep.set_invalid("Public network not availble") except Exception: self.metastep.set_invalid("An error occurred when applying networks") return self.render(request) @@ -261,6 +267,9 @@ class Define_Nets(WorkflowStep): vlan_id = network['network']['vlan'] is_public = network['network']['public'] if is_public: + public_net = vlan_manager.get_public_vlan() + if public_net is None: + raise ResourceAvailabilityException("No public networks available") vlan_id = vlan_manager.get_public_vlan().vlan vlan = Vlan(vlan_id=vlan_id, tagged=network['tagged'], public=is_public) models['vlans'][existing_host.resource.name][iface['profile_name']].append(vlan)