* [dts] [PATCH V1 0/2] fix issue of ssh vm @ 2020-06-04 1:38 lihong 2020-06-04 1:38 ` [dts] [PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py lihong ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: lihong @ 2020-06-04 1:38 UTC (permalink / raw) To: dts, weix.xie; +Cc: lihong lihong (2): QMP: optimization file qemu-ga-client and qmp.py framework/qemu_kvm: check the ssh service status before get vm ip dep/QMP/qemu-ga-client | 10 ++++++---- dep/QMP/qmp.py | 4 ++-- framework/qemu_kvm.py | 9 +++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [dts] [PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py 2020-06-04 1:38 [dts] [PATCH V1 0/2] fix issue of ssh vm lihong @ 2020-06-04 1:38 ` lihong 2020-06-05 7:48 ` Xie, WeiX 2020-06-04 1:38 ` [dts] [PATCH V1 2/2] framework/qemu_kvm: check the ssh service status before get vm ip lihong 2020-06-11 12:17 ` [dts] [PATCH V1 0/2] fix issue of ssh vm Tu, Lijuan 2 siblings, 1 reply; 6+ messages in thread From: lihong @ 2020-06-04 1:38 UTC (permalink / raw) To: dts, weix.xie; +Cc: lihong 1. modify code to support python3 2. return None string if file not exist when use cat command Signed-off-by: lihong <lihongx.ma@intel.com> --- dep/QMP/qemu-ga-client | 10 ++++++---- dep/QMP/qmp.py | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dep/QMP/qemu-ga-client b/dep/QMP/qemu-ga-client index 46676c3..caf44b1 100755 --- a/dep/QMP/qemu-ga-client +++ b/dep/QMP/qemu-ga-client @@ -68,7 +68,7 @@ class QemuGuestAgentClient: def __file_read_all(self, handle): eof = False - data = '' + data = b'' while not eof: ret = self.qga.file_read(handle=handle, count=1024) _data = base64.b64decode(ret['buf-b64']) @@ -77,7 +77,10 @@ class QemuGuestAgentClient: return data def read(self, path): - handle = self.qga.file_open(path=path) + try: + handle = self.qga.file_open(path=path) + except: + return '' try: data = self.__file_read_all(handle) finally: @@ -162,7 +165,6 @@ class QemuGuestAgentClient: except self.qga.timeout: return - def _cmd_cat(client, args): if len(args) != 1: print('Invalid argument') @@ -259,7 +261,7 @@ def main(address, cmd, args): try: client = QemuGuestAgentClient(address) - except QemuGuestAgent.error, e: + except QemuGuestAgent.error as e: import errno print(e) diff --git a/dep/QMP/qmp.py b/dep/QMP/qmp.py index 9e6f4cf..430887d 100755 --- a/dep/QMP/qmp.py +++ b/dep/QMP/qmp.py @@ -108,7 +108,7 @@ class QEMUMonitorProtocol: been closed """ try: - self.__sock.sendall(json.dumps(qmp_cmd)) + self.__sock.sendall(str.encode(json.dumps(qmp_cmd))) except socket.error as err: if err[0] == errno.EPIPE: return @@ -135,7 +135,7 @@ class QEMUMonitorProtocol: if not ret: return else: - if 'error' in ret: + if 'error' in ret.keys(): raise Exception(ret['error']['desc']) return ret['return'] -- 2.7.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dts] [PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py 2020-06-04 1:38 ` [dts] [PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py lihong @ 2020-06-05 7:48 ` Xie, WeiX 0 siblings, 0 replies; 6+ messages in thread From: Xie, WeiX @ 2020-06-05 7:48 UTC (permalink / raw) To: Ma, LihongX, dts [-- Attachment #1: Type: text/plain, Size: 2578 bytes --] Tested-by: Xie,WeiX < weix.xie@intel.com> Regards, Xie Wei -----Original Message----- From: Ma, LihongX Sent: Thursday, June 4, 2020 9:38 AM To: dts@dpdk.org; Xie, WeiX <weix.xie@intel.com> Cc: Ma, LihongX <lihongx.ma@intel.com> Subject: [dts][PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py 1. modify code to support python3 2. return None string if file not exist when use cat command Signed-off-by: lihong <lihongx.ma@intel.com> --- dep/QMP/qemu-ga-client | 10 ++++++---- dep/QMP/qmp.py | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dep/QMP/qemu-ga-client b/dep/QMP/qemu-ga-client index 46676c3..caf44b1 100755 --- a/dep/QMP/qemu-ga-client +++ b/dep/QMP/qemu-ga-client @@ -68,7 +68,7 @@ class QemuGuestAgentClient: def __file_read_all(self, handle): eof = False - data = '' + data = b'' while not eof: ret = self.qga.file_read(handle=handle, count=1024) _data = base64.b64decode(ret['buf-b64']) @@ -77,7 +77,10 @@ class QemuGuestAgentClient: return data def read(self, path): - handle = self.qga.file_open(path=path) + try: + handle = self.qga.file_open(path=path) + except: + return '' try: data = self.__file_read_all(handle) finally: @@ -162,7 +165,6 @@ class QemuGuestAgentClient: except self.qga.timeout: return - def _cmd_cat(client, args): if len(args) != 1: print('Invalid argument') @@ -259,7 +261,7 @@ def main(address, cmd, args): try: client = QemuGuestAgentClient(address) - except QemuGuestAgent.error, e: + except QemuGuestAgent.error as e: import errno print(e) diff --git a/dep/QMP/qmp.py b/dep/QMP/qmp.py index 9e6f4cf..430887d 100755 --- a/dep/QMP/qmp.py +++ b/dep/QMP/qmp.py @@ -108,7 +108,7 @@ class QEMUMonitorProtocol: been closed """ try: - self.__sock.sendall(json.dumps(qmp_cmd)) + self.__sock.sendall(str.encode(json.dumps(qmp_cmd))) except socket.error as err: if err[0] == errno.EPIPE: return @@ -135,7 +135,7 @@ class QEMUMonitorProtocol: if not ret: return else: - if 'error' in ret: + if 'error' in ret.keys(): raise Exception(ret['error']['desc']) return ret['return'] -- 2.7.4 [-- Attachment #2: TestVmHotplug.log --] [-- Type: application/octet-stream, Size: 7263124 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [dts] [PATCH V1 2/2] framework/qemu_kvm: check the ssh service status before get vm ip 2020-06-04 1:38 [dts] [PATCH V1 0/2] fix issue of ssh vm lihong 2020-06-04 1:38 ` [dts] [PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py lihong @ 2020-06-04 1:38 ` lihong 2020-06-04 9:26 ` Xie, WeiX 2020-06-11 12:17 ` [dts] [PATCH V1 0/2] fix issue of ssh vm Tu, Lijuan 2 siblings, 1 reply; 6+ messages in thread From: lihong @ 2020-06-04 1:38 UTC (permalink / raw) To: dts, weix.xie; +Cc: lihong If the vm os version is relatively new, the ip allocation may be before the ssh service start. So add the action of check the ssh service status before get vm ip. Signed-off-by: lihong <lihongx.ma@intel.com> --- framework/qemu_kvm.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/framework/qemu_kvm.py b/framework/qemu_kvm.py index 757737e..421ee3e 100644 --- a/framework/qemu_kvm.py +++ b/framework/qemu_kvm.py @@ -1829,6 +1829,11 @@ class QEMUKvm(VirtBase): if self.control_type == "qga": # wait few seconds for network ready time.sleep(5) + # before get the ip, check the ssh service is ok + # if the ssh service if ready, the file /run/sshd.pid will store the pid + out = self.control_session.send_expect(self.qga_cmd_head + "cat /run/sshd.pid" , "#", timeout=self.OPERATION_TIMEOUT) + if out == '': + return "Failed" out = self.control_session.send_expect(self.qga_cmd_head + "ifconfig" , "#", timeout=self.OPERATION_TIMEOUT) else: pci = "00:1f.0" @@ -1838,6 +1843,10 @@ class QEMUKvm(VirtBase): if self.nic_model == "virtio": pci += "/virtio*/" + # before get the ip, check the ssh service is ok + out = self.control_session.send_expect("ls /run/sshd.pid", "# ", timeout=self.OPERATION_TIMEOUT, verify=True) + if isinstance(out, int): + return "Failed" intf = self.control_session.send_expect("ls -1 /sys/bus/pci/devices/0000:%s/net" %pci, "#", timeout=self.OPERATION_TIMEOUT) out = self.control_session.send_expect("ifconfig %s" % intf, "#", timeout=self.OPERATION_TIMEOUT) if "10.0.2" not in out: -- 2.7.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dts] [PATCH V1 2/2] framework/qemu_kvm: check the ssh service status before get vm ip 2020-06-04 1:38 ` [dts] [PATCH V1 2/2] framework/qemu_kvm: check the ssh service status before get vm ip lihong @ 2020-06-04 9:26 ` Xie, WeiX 0 siblings, 0 replies; 6+ messages in thread From: Xie, WeiX @ 2020-06-04 9:26 UTC (permalink / raw) To: Ma, LihongX, dts [-- Attachment #1: Type: text/plain, Size: 2245 bytes --] Tested-by: Xie,WeiX < weix.xie@intel.com> Regards, Xie Wei -----Original Message----- From: Ma, LihongX Sent: Thursday, June 4, 2020 9:38 AM To: dts@dpdk.org; Xie, WeiX <weix.xie@intel.com> Cc: Ma, LihongX <lihongx.ma@intel.com> Subject: [dts][PATCH V1 2/2] framework/qemu_kvm: check the ssh service status before get vm ip If the vm os version is relatively new, the ip allocation may be before the ssh service start. So add the action of check the ssh service status before get vm ip. Signed-off-by: lihong <lihongx.ma@intel.com> --- framework/qemu_kvm.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/framework/qemu_kvm.py b/framework/qemu_kvm.py index 757737e..421ee3e 100644 --- a/framework/qemu_kvm.py +++ b/framework/qemu_kvm.py @@ -1829,6 +1829,11 @@ class QEMUKvm(VirtBase): if self.control_type == "qga": # wait few seconds for network ready time.sleep(5) + # before get the ip, check the ssh service is ok + # if the ssh service if ready, the file /run/sshd.pid will store the pid + out = self.control_session.send_expect(self.qga_cmd_head + "cat /run/sshd.pid" , "#", timeout=self.OPERATION_TIMEOUT) + if out == '': + return "Failed" out = self.control_session.send_expect(self.qga_cmd_head + "ifconfig" , "#", timeout=self.OPERATION_TIMEOUT) else: pci = "00:1f.0" @@ -1838,6 +1843,10 @@ class QEMUKvm(VirtBase): if self.nic_model == "virtio": pci += "/virtio*/" + # before get the ip, check the ssh service is ok + out = self.control_session.send_expect("ls /run/sshd.pid", "# ", timeout=self.OPERATION_TIMEOUT, verify=True) + if isinstance(out, int): + return "Failed" intf = self.control_session.send_expect("ls -1 /sys/bus/pci/devices/0000:%s/net" %pci, "#", timeout=self.OPERATION_TIMEOUT) out = self.control_session.send_expect("ifconfig %s" % intf, "#", timeout=self.OPERATION_TIMEOUT) if "10.0.2" not in out: -- 2.7.4 [-- Attachment #2: TestVmHotplug.log --] [-- Type: application/octet-stream, Size: 7263124 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dts] [PATCH V1 0/2] fix issue of ssh vm 2020-06-04 1:38 [dts] [PATCH V1 0/2] fix issue of ssh vm lihong 2020-06-04 1:38 ` [dts] [PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py lihong 2020-06-04 1:38 ` [dts] [PATCH V1 2/2] framework/qemu_kvm: check the ssh service status before get vm ip lihong @ 2020-06-11 12:17 ` Tu, Lijuan 2 siblings, 0 replies; 6+ messages in thread From: Tu, Lijuan @ 2020-06-11 12:17 UTC (permalink / raw) To: Ma, LihongX, dts, Xie, WeiX; +Cc: Ma, LihongX Applied the series, thanks -----Original Message----- From: dts <dts-bounces@dpdk.org> On Behalf Of lihong Sent: 2020年6月4日 9:38 To: dts@dpdk.org; Xie, WeiX <weix.xie@intel.com> Cc: Ma, LihongX <lihongx.ma@intel.com> Subject: [dts] [PATCH V1 0/2] fix issue of ssh vm lihong (2): QMP: optimization file qemu-ga-client and qmp.py framework/qemu_kvm: check the ssh service status before get vm ip dep/QMP/qemu-ga-client | 10 ++++++---- dep/QMP/qmp.py | 4 ++-- framework/qemu_kvm.py | 9 +++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-06-11 12:17 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-06-04 1:38 [dts] [PATCH V1 0/2] fix issue of ssh vm lihong 2020-06-04 1:38 ` [dts] [PATCH V1 1/2] QMP: optimization file qemu-ga-client and qmp.py lihong 2020-06-05 7:48 ` Xie, WeiX 2020-06-04 1:38 ` [dts] [PATCH V1 2/2] framework/qemu_kvm: check the ssh service status before get vm ip lihong 2020-06-04 9:26 ` Xie, WeiX 2020-06-11 12:17 ` [dts] [PATCH V1 0/2] fix issue of ssh vm Tu, Lijuan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).