def PUT(self, cluster_id): """:IMPORTANT: this method should be rewritten to be more RESTful :returns: JSONized Task object. :http: * 200 (network verification task finished/has error) * 202 (network verification task running) * 400 (data validation failed) * 404 (cluster not found in db) """ cluster = self.get_object_or_404(objects.Cluster, cluster_id) self.check_net_provider(cluster) try: data = self.validator.validate_networks_data(web.data(), cluster) except Exception as exc: self._raise_error_task(cluster, consts.TASK_NAMES.verify_networks, exc) vlan_ids = [{ 'name': n['name'], 'vlans': objects.Cluster.get_network_manager( cluster).generate_vlan_ids_list(data, cluster, n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) try: task = task_manager.execute(data, vlan_ids) except errors.CantRemoveOldVerificationTask: raise self.http(400, "You cannot delete running task manually") except errors.OutOfIPs as err: raise self.http(400, err.message) self.raise_task(task)
def launch_verify(self, cluster): try: data = self.validator.validate_networks_update(web.data()) except web.webapi.badrequest as exc: task = Task(name='check_networks', cluster=cluster) db().add(task) db().commit() TaskHelper.set_error(task.uuid, exc.data) logger.error(traceback.format_exc()) json_task = build_json_response(TaskHandler.render(task)) raise web.accepted(data=json_task) data["networks"] = [ n for n in data["networks"] if n.get("name") != "fuelweb_admin" ] vlan_ids = [{ 'name': n['name'], 'vlans': cluster.network_manager.generate_vlan_ids_list( data, cluster, n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) try: task = task_manager.execute(data, vlan_ids) except errors.CantRemoveOldVerificationTask: raise web.badrequest("You cannot delete running task manually") return TaskHandler.render(task)
def PUT(self, cluster_id): """:IMPORTANT: this method should be rewritten to be more RESTful :returns: JSONized Task object. :http: * 200 (network verification task finished/has error) * 202 (network verification task running) * 400 (data validation failed) * 404 (cluster not found in db) """ cluster, data = self._get_cluster_and_validated_network_data( cluster_id) vlan_ids = [{ 'name': n['name'], 'vlans': objects.Cluster.get_network_manager( cluster ).generate_vlan_ids_list( data, cluster, n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) try: task = task_manager.execute(data, vlan_ids) except errors.CantRemoveOldVerificationTask: raise self.http(400, "You cannot delete running task manually") except errors.OutOfIPs as err: raise self.http(400, err.message) self.raise_task(task)
def PUT(self, cluster_id): """ :IMPORTANT: this method should be rewritten to be more RESTful :returns: JSONized Task object. :http: * 202 (network checking task failed) * 200 (network verification task started) * 404 (cluster not found in db) """ cluster = self.get_object_or_404(Cluster, cluster_id) try: data = self.validator.validate_networks_update(web.data()) except web.webapi.badrequest as exc: task = Task(name='check_networks', cluster=cluster) db().add(task) db().commit() TaskHelper.set_error(task.uuid, exc.data) logger.error(traceback.format_exc()) json_task = build_json_response(TaskHandler.render(task)) raise web.accepted(data=json_task) vlan_ids = [{ 'name': n['name'], 'vlans': NetworkGroup.generate_vlan_ids_list(n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) task = task_manager.execute(data, vlan_ids) return TaskHandler.render(task)
def PUT(self, cluster_id): """:IMPORTANT: this method should be rewritten to be more RESTful :returns: JSONized Task object. :http: * 202 (network checking task failed) * 200 (network verification task started) * 404 (cluster not found in db) """ cluster = self.get_object_or_404(Cluster, cluster_id) try: data = self.validator.validate_networks_update(web.data()) except web.webapi.badrequest as exc: task = Task(name='check_networks', cluster=cluster) db().add(task) db().commit() TaskHelper.set_error(task.uuid, exc.data) logger.error(traceback.format_exc()) json_task = build_json_response(TaskHandler.render(task)) raise web.accepted(data=json_task) vlan_ids = [{ 'name': n['name'], 'vlans': NetworkGroup.generate_vlan_ids_list(n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) task = task_manager.execute(data, vlan_ids) return TaskHandler.render(task)
def PUT(self, cluster_id): """:IMPORTANT: this method should be rewritten to be more RESTful :returns: JSONized Task object. :http: * 200 (network verification task finished/has error) * 202 (network verification task running) * 400 (data validation failed) * 404 (cluster not found in db) """ cluster = self.get_object_or_404(objects.Cluster, cluster_id) self.check_net_provider(cluster) try: data = self.validator.validate_networks_data(web.data(), cluster) except Exception as exc: self._raise_error_task(cluster, consts.TASK_NAMES.verify_networks, exc) vlan_ids = [ { "name": n["name"], "vlans": objects.Cluster.get_network_manager(cluster).generate_vlan_ids_list(data, cluster, n), } for n in data["networks"] ] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) try: task = task_manager.execute(data, vlan_ids) except errors.CantRemoveOldVerificationTask: raise self.http(400, "You cannot delete running task manually") except errors.OutOfIPs as err: raise self.http(400, err.message) self.raise_task(task)
def PUT(self, cluster_id): cluster = self.get_object_or_404(Cluster, cluster_id) data = self.validator.validate_networks_update(web.data()) vlan_ids = [{ 'name': n['name'], 'vlans': NetworkGroup.generate_vlan_ids_list(n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) task = task_manager.execute(data, vlan_ids) return TaskHandler.render(task)
def launch_verify(self, cluster): data = self.validator.validate_networks_update(web.data()) data["networks"] = [n for n in data["networks"] if n.get("name") != "fuelweb_admin"] vlan_ids = [ { "name": n["name"], "vlans": objects.Cluster.get_network_manager(cluster).generate_vlan_ids_list(data, cluster, n), } for n in data["networks"] ] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) try: task = task_manager.execute(data, vlan_ids) except errors.CantRemoveOldVerificationTask: raise self.http(400, "You cannot delete running task manually") return objects.Task.to_json(task)
def launch_verify(self, cluster): data = self.validator.validate_networks_update(web.data()) data["networks"] = [ n for n in data["networks"] if n.get("name") != "fuelweb_admin" ] vlan_ids = [{ 'name': n['name'], 'vlans': objects.Cluster.get_network_manager( cluster).generate_vlan_ids_list(data, cluster, n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) try: task = task_manager.execute(data, vlan_ids) except errors.CantRemoveOldVerificationTask: raise self.http(400, "You cannot delete running task manually") return objects.Task.to_json(task)
def launch_verify(self, cluster): data = self.validator.validate_networks_update(web.data()) data["networks"] = [ n for n in data["networks"] if n.get("name") != "fuelweb_admin" ] vlan_ids = [{ 'name': n['name'], 'vlans': objects.Cluster.get_network_manager( cluster ).generate_vlan_ids_list( data, cluster, n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) try: task = task_manager.execute(data, vlan_ids) except errors.CantRemoveOldVerificationTask: raise self.http(400, "You cannot delete running task manually") except errors.OutOfIPs as err: raise self.http(400, err.message) self.raise_task(task)
def PUT(self, cluster_id): cluster = self.get_object_or_404(Cluster, cluster_id) try: data = self.validator.validate_networks_update(web.data()) except web.webapi.badrequest as exc: task = Task(name='check_networks', cluster=cluster) db().add(task) db().commit() TaskHelper.set_error(task.uuid, exc.data) logger.error(traceback.format_exc()) json_task = build_json_response(TaskHandler.render(task)) raise web.accepted(data=json_task) vlan_ids = [{ 'name': n['name'], 'vlans': NetworkGroup.generate_vlan_ids_list(n) } for n in data['networks']] task_manager = VerifyNetworksTaskManager(cluster_id=cluster.id) task = task_manager.execute(data, vlan_ids) return TaskHandler.render(task)