diff --git a/lib/client/gnt_backup.py b/lib/client/gnt_backup.py index edc8b4400df1e3252eeefbb86fd3857a5f9ba831..e6fc6a3e4ee4cce694c4cd100643854bfd11cb22 100644 --- a/lib/client/gnt_backup.py +++ b/lib/client/gnt_backup.py @@ -129,6 +129,7 @@ import_opts = [ SRC_DIR_OPT, SRC_NODE_OPT, IGNORE_IPOLICY_OPT, + HOTPLUG_OPT, ] diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 343087c44559e958dd69ff73b7c8306e0b0ddf99..8156c83034f96c15f4ade95ec6adb595ba32ca02 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -8958,7 +8958,7 @@ def _GenerateUniqueNames(lu, exts): def _GetPCIInfo(lu, dev_type): - if lu.op.hotplug: + if (hasattr(lu, 'op') and lu.op.hotplug): # case of InstanceCreate() if hasattr(lu, 'hotplug_info'): if lu.hotplug_info is not None: @@ -8973,7 +8973,7 @@ def _GetPCIInfo(lu, dev_type): lu.LogInfo("Choosing pci slot %d" % pci) return idx, pci - lu.LogWarning("Hotplug not supported for this instance.") + lu.LogWarning("Hotplug not supported for this instance.") return None, None @@ -13294,11 +13294,12 @@ class LUInstanceSetParams(LogicalUnit): if self.op.hotplug and disk.pci: self.LogInfo("Trying to hotplug device.") - disk_ok, device_info = _AssembleInstanceDisks(self, self.instance, - [disk], check=False) + _, device_info = _AssembleInstanceDisks(self, self.instance, + [disk], check=False) _, _, dev_path = device_info[0] - result = self.rpc.call_hot_add_disk(self.instance.primary_node, - self.instance, disk, dev_path, idx) + #TODO: handle result + self.rpc.call_hot_add_disk(self.instance.primary_node, + self.instance, disk, dev_path, idx) return (disk, [ ("disk/%d" % idx, "add:size=%s,mode=%s" % (disk.size, disk.mode)), ]) @@ -13364,8 +13365,8 @@ class LUInstanceSetParams(LogicalUnit): if pci is not None: nic.idx = nic_idx nic.pci = pci - result = self.rpc.call_hot_add_nic(self.instance.primary_node, - self.instance, nic, idx) + self.rpc.call_hot_add_nic(self.instance.primary_node, + self.instance, nic, idx) desc = [ ("nic.%d" % idx, "add:mac=%s,ip=%s,mode=%s,link=%s,network=%s" % @@ -13398,11 +13399,11 @@ class LUInstanceSetParams(LogicalUnit): self.LogInfo("Trying to hotplug device.") self.rpc.call_hot_del_nic(self.instance.primary_node, self.instance, nic, idx) - result = self.rpc.call_hot_add_nic(self.instance.primary_node, - self.instance, nic, idx) + self.rpc.call_hot_add_nic(self.instance.primary_node, + self.instance, nic, idx) return changes - def _RemoveNic(self, idx, nic, private): + def _RemoveNic(self, idx, nic, _): if nic.pci and not self.op.hotplug: raise errors.OpPrereqError("Cannot remove a nic that has been hotplugged" " without removing it with hotplug", diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py index e047fd1373475a0b0f1b410c3fc6859d969c3748..2e0f77babd13dd168f02ae5105f68870ba528d43 100644 --- a/lib/hypervisor/hv_kvm.py +++ b/lib/hypervisor/hv_kvm.py @@ -1067,9 +1067,8 @@ class KVMHypervisor(hv_base.BaseHypervisor): hvp = instance.hvparams kernel_path = hvp[constants.HV_KERNEL_PATH] if kernel_path: - boot_disk = boot_cdrom = boot_floppy = boot_network = False + boot_cdrom = boot_floppy = boot_network = False else: - boot_disk = hvp[constants.HV_BOOT_ORDER] == constants.HT_BO_DISK boot_cdrom = hvp[constants.HV_BOOT_ORDER] == constants.HT_BO_CDROM boot_floppy = hvp[constants.HV_BOOT_ORDER] == constants.HT_BO_FLOPPY boot_network = hvp[constants.HV_BOOT_ORDER] == constants.HT_BO_NETWORK @@ -1428,7 +1427,6 @@ class KVMHypervisor(hv_base.BaseHypervisor): conf_hvp = instance.hvparams name = instance.name self._CheckDown(name) - boot_disk = conf_hvp[constants.HV_BOOT_ORDER] == constants.HT_BO_DISK temp_files = [] @@ -1655,12 +1653,12 @@ class KVMHypervisor(hv_base.BaseHypervisor): return result - def HotAddDisk(self, instance, disk, dev_path, seq): + def HotAddDisk(self, instance, disk, dev_path, _): """Hotadd new disk to the VM """ if not self._InstancePidAlive(instance.name)[2]: - logging.info("Cannot hotplug. Instance %s not alive" % instance.name) + logging.info("Cannot hotplug. Instance %s not alive", instance.name) return disk.ToDict() _, v_major, v_min, _ = self._GetKVMVersion() @@ -1669,16 +1667,16 @@ class KVMHypervisor(hv_base.BaseHypervisor): command = ("drive_add dummy file=%s,if=none,id=drive%d,format=raw" % (dev_path, idx)) - logging.info("%s" % command) + logging.info("Run cmd %s", command) output = self._CallMonitorCommand(instance.name, command) command = ("device_add virtio-blk-pci,bus=pci.0,addr=%s," "drive=drive%d,id=virtio-blk-pci.%d" % (hex(disk.pci), idx, idx)) - logging.info("%s" % command) + logging.info("Run cmd %s", command) output = self._CallMonitorCommand(instance.name, command) for line in output.stdout.splitlines(): - logging.info("%s" % line) + logging.info("%s", line) (kvm_cmd, kvm_nics, hvparams, block_devices) = self._LoadKVMRuntime(instance) @@ -1688,12 +1686,12 @@ class KVMHypervisor(hv_base.BaseHypervisor): return disk.ToDict() - def HotDelDisk(self, instance, disk, seq): + def HotDelDisk(self, instance, disk, _): """Hotdel disk to the VM """ if not self._InstancePidAlive(instance.name)[2]: - logging.info("Cannot hotplug. Instance %s not alive" % instance.name) + logging.info("Cannot hotplug. Instance %s not alive", instance.name) return disk.ToDict() _, v_major, v_min, _ = self._GetKVMVersion() @@ -1701,13 +1699,13 @@ class KVMHypervisor(hv_base.BaseHypervisor): idx = disk.idx command = "device_del virtio-blk-pci.%d" % idx - logging.info("%s" % command) + logging.info("Run cmd %s", command) output = self._CallMonitorCommand(instance.name, command) for line in output.stdout.splitlines(): - logging.info("%s" % line) + logging.info("%s", line) command = "drive_del drive%d" % idx - logging.info("%s" % command) + logging.info("Run cmd %s", command) #output = self._CallMonitorCommand(instance.name, command) #for line in output.stdout.splitlines(): # logging.info("%s" % line) @@ -1730,7 +1728,7 @@ class KVMHypervisor(hv_base.BaseHypervisor): """ if not self._InstancePidAlive(instance.name)[2]: - logging.info("Cannot hotplug. Instance %s not alive" % instance.name) + logging.info("Cannot hotplug. Instance %s not alive", instance.name) return nic.ToDict() _, v_major, v_min, _ = self._GetKVMVersion() @@ -1745,18 +1743,18 @@ class KVMHypervisor(hv_base.BaseHypervisor): command = ("netdev_add tap,id=netdev%d,fd=netdev%d" % (idx, idx)) - logging.info("%s" % command) + logging.info("Run cmd %s", command) output = self._CallMonitorCommand(instance.name, command) for line in output.stdout.splitlines(): - logging.info("%s" % line) + logging.info("%s", line) command = ("device_add virtio-net-pci,bus=pci.0,addr=%s,mac=%s," "netdev=netdev%d,id=virtio-net-pci.%d" % (hex(nic.pci), mac, idx, idx)) - logging.info("%s" % command) + logging.info("Run cmd %s", command) output = self._CallMonitorCommand(instance.name, command) for line in output.stdout.splitlines(): - logging.info("%s" % line) + logging.info("%s", line) self._ConfigureNIC(instance, seq, nic, tap) @@ -1768,30 +1766,29 @@ class KVMHypervisor(hv_base.BaseHypervisor): return nic.ToDict() - def HotDelNic(self, instance, nic, seq): + def HotDelNic(self, instance, nic, _): """Hotadd new nic to the VM """ if not self._InstancePidAlive(instance.name)[2]: - logging.info("Cannot hotplug. Instance %s not alive" % instance.name) + logging.info("Cannot hotplug. Instance %s not alive", instance.name) return nic.ToDict() _, v_major, v_min, _ = self._GetKVMVersion() if (v_major, v_min) >= (1, 0) and nic.pci: - mac = nic.mac idx = nic.idx command = "device_del virtio-net-pci.%d" % idx - logging.info("%s" % command) + logging.info("Run cmd %s", command) output = self._CallMonitorCommand(instance.name, command) for line in output.stdout.splitlines(): - logging.info("%s" % line) + logging.info("%s", line) command = "netdev_del netdev%d" % idx - logging.info("%s" % command) + logging.info("Run cmd %s", command) output = self._CallMonitorCommand(instance.name, command) for line in output.stdout.splitlines(): - logging.info("%s" % line) + logging.info("%s", line) (kvm_cmd, kvm_nics, hvparams, block_devices) = self._LoadKVMRuntime(instance)