def _iouDeviceNewSlot(self): """ Creates a new IOU device. """ wizard = IOUDeviceWizard(self._iou_devices, parent=self) wizard.show() if wizard.exec_(): new_device_settings = wizard.getSettings() key = "{server}:{name}".format( server=new_device_settings["server"], name=new_device_settings["name"]) self._iou_devices[key] = IOU_DEVICE_SETTINGS.copy() self._iou_devices[key].update(new_device_settings) item = QtGui.QTreeWidgetItem(self.uiIOUDevicesTreeWidget) item.setText(0, self._iou_devices[key]["name"]) item.setIcon(0, QtGui.QIcon(self._iou_devices[key]["default_symbol"])) item.setData(0, QtCore.Qt.UserRole, key) self._items.append(item) self.uiIOUDevicesTreeWidget.setCurrentItem(item) if new_device_settings["server"] == 'cloud': import logging log = logging.getLogger(__name__) # Start uploading the image to cloud files self._upload_image_progress_dialog = QtGui.QProgressDialog( "Uploading image file {}".format( new_device_settings['image']), "Cancel", 0, 0, parent=self) self._upload_image_progress_dialog.setWindowModality( QtCore.Qt.WindowModal) self._upload_image_progress_dialog.setWindowTitle( "IOU image upload") self._upload_image_progress_dialog.show() try: src = self._iou_devices[key]['path'] # Eg: images/IOU/i86.bin dst = 'images/IOU/{}'.format( self._iou_devices[key]['image']) upload_thread = UploadFilesThread( self, MainWindow.instance().cloudSettings(), [(src, dst)]) upload_thread.completed.connect(self._imageUploadComplete) upload_thread.start() except Exception as e: self._upload_image_progress_dialog.reject() log.error(e) QtGui.QMessageBox.critical( self, "IOU image upload", "Error uploading IOU image: {}".format(e))
def _uploadImages(self, qemu_vm): """ Upload hard drive images to Cloud Files. """ # Start uploading the image to cloud files self._upload_image_progress_dialog = QtGui.QProgressDialog( "Uploading image file(s)", "Cancel", 0, 0, parent=self) self._upload_image_progress_dialog.setWindowModality( QtCore.Qt.WindowModal) self._upload_image_progress_dialog.setWindowTitle("Qemu image upload") self._upload_image_progress_dialog.show() try: uploads = [] src = qemu_vm.get("hda_disk_image", None) if src: _, filename = ntpath.split(src) dst = "images/qemu/{}".format(filename) uploads.append((src, dst)) src = qemu_vm.get("hdb_disk_image", None) if src: _, filename = ntpath.split(src) dst = "images/qemu/{}".format(filename) uploads.append((src, dst)) src = qemu_vm.get("hdc_disk_image", None) if src: _, filename = ntpath.split(src) dst = "images/qemu/{}".format(filename) uploads.append((src, dst)) src = qemu_vm.get("hdd_disk_image", None) if src: _, filename = ntpath.split(src) dst = "images/qemu/{}".format(filename) uploads.append((src, dst)) src = qemu_vm.get("initrd", None) if src: _, filename = ntpath.split(src) dst = "images/qemu/{}".format(filename) uploads.append((src, dst)) src = qemu_vm.get("kernel_image", None) if src: _, filename = ntpath.split(src) dst = "images/qemu/{}".format(filename) uploads.append((src, dst)) upload_thread = UploadFilesThread( self, MainWindow.instance().cloudSettings(), uploads) upload_thread.completed.connect(self._imageUploadComplete) upload_thread.start() except Exception as e: self._upload_image_progress_dialog.reject() import logging log = logging.getLogger(__name__) log.error(e) QtGui.QMessageBox.critical( self, "Qemu image upload", "Error uploading Qemu image: {}".format(e))
def _iosRouterNewSlot(self): """ Creates a new IOS router. """ wizard = IOSRouterWizard(self._ios_routers, parent=self) wizard.show() if wizard.exec_(): ios_settings = wizard.getSettings() key = "{server}:{name}".format(server=ios_settings["server"], name=ios_settings["name"]) self._ios_routers[key] = IOS_ROUTER_SETTINGS.copy() self._ios_routers[key].update(ios_settings) if ios_settings["server"] == 'cloud': import logging log = logging.getLogger(__name__) log.debug(ios_settings["image"]) # Start uploading the image to cloud files self._upload_image_progress_dialog = QtGui.QProgressDialog( "Uploading image file {}".format(ios_settings['image']), "Cancel", 0, 0, parent=self) self._upload_image_progress_dialog.setWindowModality( QtCore.Qt.WindowModal) self._upload_image_progress_dialog.setWindowTitle( "IOS image upload") self._upload_image_progress_dialog.show() try: upload_thread = UploadFilesThread( self, cloud_settings=MainWindow.instance().cloudSettings(), files_to_upload=[ (self._ios_routers[key]["image"], 'images/' + os.path.relpath( self._ios_routers[key]["image"], self._main_window.settings().imagesDirPath())) ]) upload_thread.completed.connect(self._imageUploadComplete) upload_thread.start() except Exception as e: self._upload_image_progress_dialog.reject() log.error(e) QtGui.QMessageBox.critical( self, "IOS image upload", "Error uploading IOS image: {}".format(e)) if ios_settings["platform"] == "c7200": self._ios_routers[key]["midplane"] = "vxr" self._ios_routers[key]["npe"] = "npe-400" else: self._ios_routers[key]["iomem"] = 5 for slot_id in range(0, 7): slot = "slot{}".format(slot_id) if slot in ios_settings: self._ios_routers[key][slot] = ios_settings[slot] for wic_id in range(0, 3): wic = "wic{}".format(wic_id) if wic in ios_settings: self._ios_routers[key][wic] = ios_settings[wic] self._ios_routers[key].update(ios_settings) item = QtGui.QTreeWidgetItem(self.uiIOSRoutersTreeWidget) item.setText(0, self._ios_routers[key]["name"]) item.setIcon(0, QtGui.QIcon(self._ios_routers[key]["default_symbol"])) item.setData(0, QtCore.Qt.UserRole, key) self._items.append(item) self.uiIOSRoutersTreeWidget.setCurrentItem(item)