def _computeAutoIdlepcCallback(self, result, error=False, *args, **kwargs): """ Callback for computeAutoIdlepc. :param result: server response :param error: indicates an error (boolean) """ if self._project_created: Topology.instance().deleteProject() self._project_created = False self._router = None elif self._router: self._router.delete() self._router = None if error: QtWidgets.QMessageBox.critical( self, "Idle-PC finder", "Error: {}".format(result["message"])) else: idlepc = result["idlepc"] self.uiIdlepcLineEdit.setText(idlepc) QtWidgets.QMessageBox.information( self, "Idle-PC finder", "Idle-PC value {} has been found suitable for your IOS image". format(idlepc))
def _idlePCFinderSlot(self): """ Slot for the idle-PC finder. """ if Topology.instance().project() is None: project = Topology.instance().createLoadProject({"project_name": str(uuid.uuid4())}) project.project_updated_signal.connect(self._projectCreatedSlot) else: self._projectCreatedSlot()
def _idlePCFinderSlot(self): """ Slot for the idle-PC finder. """ if Topology.instance().project() is None: project = Topology.instance().createLoadProject( {"project_name": str(uuid.uuid4())}) project.project_updated_signal.connect(self._projectCreatedSlot) else: self._projectCreatedSlot()
def _projectClosedCallback(self, result, error=False, server=None, **kwargs): # Status 404 could be when someone else already closed the project if error and "status" in result and result["status"] != 404: log.error("Error while closing project {}: {}".format(self._id, result["message"])) else: self.stopListenNotifications() log.debug("Project {} closed".format(self._id)) self._closed = True self.project_closed_signal.emit() Topology.instance().setProject(None)
def _projectClosedCallback(self, result, error=False, server=None, **kwargs): # Status 404 could be when someone else already closed the project if error and "status" in result and result["status"] != 404: log.error("Error while closing project {}: {}".format(self._id, result["message"])) else: self.stopListenNotifications() log.debug("Project {} closed".format(self._id)) self._closed = True self.project_closed_signal.emit() Topology.instance().setProject(None)
def _event_received(self, result, server=None, **kwargs): log.debug("Event received: %s", result) if result["action"] in ["vm.started", "vm.stopped"]: vm = Topology.instance().getVM(result["event"]["vm_id"]) if vm is not None: if result["action"] == "vm.started": vm.setStatus(Node.started) vm.started_signal.emit() elif result["action"] == "vm.stopped": vm.setStatus(Node.stopped) vm.stopped_signal.emit() elif result["action"] == "log.error": log.error(result["event"]["message"]) print("Error: " + result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) print("Warning: " + result["event"]["message"]) elif result["action"] == "log.info": log.info(result["event"]["message"]) print("Info: " + result["event"]["message"]) elif result["action"] == "ping": # Compatible with 1.4.0 server if "event" in result: server.setSystemUsage(result["event"])
def _event_received(self, result, server=None, **kwargs): log.debug("Event received: %s", result) if result["action"] in ["vm.started", "vm.stopped"]: vm = Topology.instance().getVM(result["event"]["vm_id"]) if vm is not None: if result["action"] == "vm.started": vm.setStatus(Node.started) vm.started_signal.emit() elif result["action"] == "vm.stopped": vm.setStatus(Node.stopped) vm.stopped_signal.emit() elif result["action"] == "log.error": log.error(result["event"]["message"]) print("Error: " + result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) print("Warning: " + result["event"]["message"]) elif result["action"] == "log.info": log.info(result["event"]["message"]) print("Info: " + result["event"]["message"]) elif result["action"] == "ping": # Compatible with 1.4.0 server if "event" in result: server.setSystemUsage(result["event"])
def _listDrawingsCallback(self, result, error=False, **kwargs): if error: log.error("Error while listing drawings: {}".format( result["message"])) return topo = Topology.instance() for drawing in result: topo.createDrawing(drawing)
def _listDrawingsCallback(self, result, error=False, **kwargs): if error: log.error("Error while listing drawings: {}".format(result["message"])) return topo = Topology.instance() for drawing in result: topo.createDrawing(drawing) self.project_loaded_signal.emit()
def _listDrawingsCallback(self, result, error=False, **kwargs): if error: log.error("Error while listing drawings: {}".format(result.get("message", "unknown"))) return topo = Topology.instance() for drawing in result: topo.createDrawing(drawing) self.project_loaded_signal.emit()
def _listNodesCallback(self, result, error=False, **kwargs): if error: log.error("Error while listing project: {}".format(result.get("message", "unknown"))) return topo = Topology.instance() for node in result: topo.createNode(node) self.get("/links", self._listLinksCallback)
def _listLinksCallback(self, result, error=False, **kwargs): if error: log.error("Error while listing links: {}".format(result.get("message", "unknown"))) return topo = Topology.instance() for link in result: topo.createLink(link) self.get("/drawings", self._listDrawingsCallback)
def _listLinksCallback(self, result, error=False, **kwargs): if error: log.error("Error while listing links: {}".format(result["message"])) return topo = Topology.instance() for link in result: topo.createLink(link) self.get("/drawings", self._listDrawingsCallback)
def _listNodesCallback(self, result, error=False, **kwargs): if error: log.error("Error while listing project: {}".format(result["message"])) return topo = Topology.instance() for node in result: topo.createNode(node) self.get("/links", self._listLinksCallback)
def _projectCreatedSlot(self, *args): if Topology.instance().project() is None: return try: Topology.instance().project().project_updated_signal.disconnect(self._projectCreatedSlot) self._project_created = True except TypeError: pass # If the slot is not connected (project already created) module = Dynamips.instance() platform = self.uiPlatformComboBox.currentText() ios_image = self.uiIOSImageLineEdit.text() ram = self.uiRamSpinBox.value() router_class = PLATFORM_TO_CLASS[platform] self._router = router_class(module, ComputeManager.instance().getCompute(self._compute_id), Topology.instance().project()) self._router.create(ios_image, ram, name="AUTOIDLEPC") self._router.created_signal.connect(self.createdSlot) self._router.server_error_signal.connect(self.serverErrorSlot) self.uiIdlePCFinderPushButton.setEnabled(False)
def _computeAutoIdlepcCallback(self, result, error=False, *args, **kwargs): """ Callback for computeAutoIdlepc. :param result: server response :param error: indicates an error (boolean) """ if self._project_created: Topology.instance().deleteProject() self._project_created = False self._router = None elif self._router: self._router.delete() self._router = None if error: QtWidgets.QMessageBox.critical(self, "Idle-PC finder", "Error: {}".format(result["message"])) else: idlepc = result["idlepc"] self.uiIdlepcLineEdit.setText(idlepc) QtWidgets.QMessageBox.information(self, "Idle-PC finder", "Idle-PC value {} has been found suitable for your IOS image".format(idlepc))
def _projectCreatedSlot(self, *args): if Topology.instance().project() is None: return try: Topology.instance().project().project_updated_signal.disconnect( self._projectCreatedSlot) self._project_created = True except TypeError: pass # If the slot is not connected (project already created) module = Dynamips.instance() platform = self.uiPlatformComboBox.currentText() ios_image = self.uiIOSImageLineEdit.text() ram = self.uiRamSpinBox.value() router_class = PLATFORM_TO_CLASS[platform] self._router = router_class( module, ComputeManager.instance().getCompute(self._compute_id), Topology.instance().project()) self._router.create(ios_image, ram, name="AUTOIDLEPC") self._router.created_signal.connect(self.createdSlot) self._router.server_error_signal.connect(self.serverErrorSlot) self.uiIdlePCFinderPushButton.setEnabled(False)
def _event_received(self, result, **kwargs): log.debug("Event received: %s", result) if result["action"] in ["vm.started", "vm.stopped"]: vm = Topology.instance().getVM(result["event"]["vm_id"]) if vm is not None: if result["action"] == "vm.started": vm.setStatus(Node.started) vm.started_signal.emit() elif result["action"] == "vm.stopped": vm.setStatus(Node.stopped) vm.stopped_signal.emit() elif result["action"] == "log.error": log.error(result["event"]["message"]) print("Error: " + result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) print("Warning: " + result["event"]["message"])
def _event_received(self, result, **kwargs): log.debug("Event received: %s", result) if result["action"] in ["vm.started", "vm.stopped"]: vm = Topology.instance().getVM(result["event"]["vm_id"]) if vm is not None: if result["action"] == "vm.started": vm.setStatus(Node.started) vm.started_signal.emit() elif result["action"] == "vm.stopped": vm.setStatus(Node.stopped) vm.stopped_signal.emit() elif result["action"] == "log.error": log.error(result["event"]["message"]) print("Error: " + result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) print("Warning: " + result["event"]["message"])
def setUp(self): self.t = Topology.instance()
def _event_received(self, result, *args, **kwargs): # Log only relevant events if result["action"] not in ("ping", "compute.updated"): log.debug("Event received: %s", result) if result["action"] == "node.created": node = Topology.instance().getNodeFromUuid( result["event"]["node_id"]) if node is None: Topology.instance().createNode(result["event"]) elif result["action"] == "node.updated": node = Topology.instance().getNodeFromUuid( result["event"]["node_id"]) if node is not None: node.updateNodeCallback(result["event"]) elif result["action"] == "node.deleted": node = Topology.instance().getNodeFromUuid( result["event"]["node_id"]) if node is not None: node.delete(skip_controller=True) elif result["action"] == "link.created": link = Topology.instance().getLinkFromUuid( result["event"]["link_id"]) if link is None: Topology.instance().createLink(result["event"]) elif result["action"] == "link.updated": link = Topology.instance().getLinkFromUuid( result["event"]["link_id"]) if link is not None: link.updateLinkCallback(result["event"]) elif result["action"] == "link.deleted": link = Topology.instance().getLinkFromUuid( result["event"]["link_id"]) if link is not None: link.deleteLink(skip_controller=True) elif result["action"] == "drawing.created": drawing = Topology.instance().getDrawingFromUuid( result["event"]["drawing_id"]) if drawing is None: Topology.instance().createDrawing(result["event"]) elif result["action"] == "drawing.updated": drawing = Topology.instance().getDrawingFromUuid( result["event"]["drawing_id"]) if drawing is not None: drawing.updateDrawingCallback(result["event"]) elif result["action"] == "drawing.deleted": drawing = Topology.instance().getDrawingFromUuid( result["event"]["drawing_id"]) if drawing is not None: drawing.delete(skip_controller=True) elif result["action"] == "project.closed": Topology.instance().setProject(None) elif result["action"] == "project.updated": self._projectUpdatedCallback(result["event"]) elif result["action"] == "snapshot.restored": Topology.instance().createLoadProject( {"project_id": result["event"]["project_id"]}) elif result["action"] == "log.error": log.error(result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) elif result["action"] == "log.info": log.info(result["event"]["message"], extra={"show": True}) elif result["action"] == "compute.created" or result[ "action"] == "compute.updated": cm = ComputeManager.instance() cm.computeDataReceivedCallback(result["event"]) elif result["action"] == "settings.updated": LocalConfig.instance().refreshConfigFromController() ApplianceManager.instance().refresh() elif result["action"] == "ping": pass
def setUp(self): self.t = Topology.instance()
def _event_received(self, result, *args, **kwargs): # Log only relevant events if result["action"] not in ("ping"): log.debug("Event received from project stream: {}".format(result)) if result["action"] == "node.created": node = Topology.instance().getNodeFromUuid( result["event"]["node_id"]) if node is None: Topology.instance().createNode(result["event"]) elif result["action"] == "node.updated": node = Topology.instance().getNodeFromUuid( result["event"]["node_id"]) if node is not None: node.updateNodeCallback(result["event"]) elif result["action"] == "node.deleted": node = Topology.instance().getNodeFromUuid( result["event"]["node_id"]) if node is not None: node.delete(skip_controller=True) elif result["action"] == "link.created": link = Topology.instance().getLinkFromUuid( result["event"]["link_id"]) if link is None: Topology.instance().createLink(result["event"]) elif result["action"] == "link.updated": link = Topology.instance().getLinkFromUuid( result["event"]["link_id"]) if link is not None: link.updateLinkCallback(result["event"]) elif result["action"] == "link.deleted": link = Topology.instance().getLinkFromUuid( result["event"]["link_id"]) if link is not None: link.deleteLink(skip_controller=True) elif result["action"] == "drawing.created": drawing = Topology.instance().getDrawingFromUuid( result["event"]["drawing_id"]) if drawing is None: Topology.instance().createDrawing(result["event"]) elif result["action"] == "drawing.updated": drawing = Topology.instance().getDrawingFromUuid( result["event"]["drawing_id"]) if drawing is not None: drawing.updateDrawingCallback(result["event"]) elif result["action"] == "drawing.deleted": drawing = Topology.instance().getDrawingFromUuid( result["event"]["drawing_id"]) if drawing is not None: drawing.delete(skip_controller=True) elif result["action"] == "project.closed": Topology.instance().setProject(None) elif result["action"] == "project.updated": self._projectUpdatedCallback(result["event"]) elif result["action"] == "snapshot.restored": Topology.instance().restoreSnapshot(result["event"]["project_id"]) elif result["action"] == "log.error": log.error(result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) elif result["action"] == "log.info": log.info(result["event"]["message"], extra={"show": True}) elif result["action"] == "ping": pass
def _event_received(self, result, *args, **kwargs): # Log only relevant events if result["action"] not in ("ping"): log.debug("Event received from project stream: {}".format(result)) if result["action"] == "node.created": node = Topology.instance().getNodeFromUuid(result["event"]["node_id"]) if node is None: Topology.instance().createNode(result["event"]) elif result["action"] == "node.updated": node = Topology.instance().getNodeFromUuid(result["event"]["node_id"]) if node is not None: node.updateNodeCallback(result["event"]) elif result["action"] == "node.deleted": node = Topology.instance().getNodeFromUuid(result["event"]["node_id"]) if node is not None: node.delete(skip_controller=True) elif result["action"] == "link.created": link = Topology.instance().getLinkFromUuid(result["event"]["link_id"]) if link is None: Topology.instance().createLink(result["event"]) elif result["action"] == "link.updated": link = Topology.instance().getLinkFromUuid(result["event"]["link_id"]) if link is not None: link.updateLinkCallback(result["event"]) elif result["action"] == "link.deleted": link = Topology.instance().getLinkFromUuid(result["event"]["link_id"]) if link is not None: link.deleteLink(skip_controller=True) elif result["action"] == "drawing.created": drawing = Topology.instance().getDrawingFromUuid(result["event"]["drawing_id"]) if drawing is None: Topology.instance().createDrawing(result["event"]) elif result["action"] == "drawing.updated": drawing = Topology.instance().getDrawingFromUuid(result["event"]["drawing_id"]) if drawing is not None: drawing.updateDrawingCallback(result["event"]) elif result["action"] == "drawing.deleted": drawing = Topology.instance().getDrawingFromUuid(result["event"]["drawing_id"]) if drawing is not None: drawing.delete(skip_controller=True) elif result["action"] == "project.closed": Topology.instance().setProject(None) elif result["action"] == "project.updated": self._projectUpdatedCallback(result["event"]) elif result["action"] == "snapshot.restored": Topology.instance().createLoadProject({"project_id": result["event"]["project_id"]}) elif result["action"] == "log.error": log.error(result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) elif result["action"] == "log.info": log.info(result["event"]["message"], extra={"show": True}) elif result["action"] == "ping": pass
def _event_received(self, result, *args, **kwargs): # Log only relevant events if result["action"] not in ("ping", "compute.updated"): log.debug("Event received: %s", result) if result["action"] == "node.created": node = Topology.instance().getNodeFromUuid(result["event"]["node_id"]) if node is None: Topology.instance().createNode(result["event"]) elif result["action"] == "node.updated": node = Topology.instance().getNodeFromUuid(result["event"]["node_id"]) if node is not None: node.updateNodeCallback(result["event"]) elif result["action"] == "node.deleted": node = Topology.instance().getNodeFromUuid(result["event"]["node_id"]) if node is not None: node.delete(skip_controller=True) elif result["action"] == "link.created": link = Topology.instance().getLinkFromUuid(result["event"]["link_id"]) if link is None: Topology.instance().createLink(result["event"]) elif result["action"] == "link.updated": link = Topology.instance().getLinkFromUuid(result["event"]["link_id"]) if link is not None: link.updateLinkCallback(result["event"]) elif result["action"] == "link.deleted": link = Topology.instance().getLinkFromUuid(result["event"]["link_id"]) if link is not None: link.deleteLink(skip_controller=True) elif result["action"] == "drawing.created": drawing = Topology.instance().getDrawingFromUuid(result["event"]["drawing_id"]) if drawing is None: Topology.instance().createDrawing(result["event"]) elif result["action"] == "drawing.updated": drawing = Topology.instance().getDrawingFromUuid(result["event"]["drawing_id"]) if drawing is not None: drawing.updateDrawingCallback(result["event"]) elif result["action"] == "drawing.deleted": drawing = Topology.instance().getDrawingFromUuid(result["event"]["drawing_id"]) if drawing is not None: drawing.delete(skip_controller=True) elif result["action"] == "project.closed": Topology.instance().setProject(None) elif result["action"] == "project.updated": self._projectUpdatedCallback(result["event"]) elif result["action"] == "snapshot.restored": Topology.instance().createLoadProject({"project_id": result["event"]["project_id"]}) elif result["action"] == "log.error": log.error(result["event"]["message"]) elif result["action"] == "log.warning": log.warning(result["event"]["message"]) elif result["action"] == "log.info": log.info(result["event"]["message"], extra={"show": True}) elif result["action"] == "compute.created" or result["action"] == "compute.updated": cm = ComputeManager.instance() cm.computeDataReceivedCallback(result["event"]) elif result["action"] == "settings.updated": LocalConfig.instance().refreshConfigFromController() ApplianceManager.instance().refresh() elif result["action"] == "ping": pass