Change in vdsm[master]: API: getVMList: compatibity with internal clients

fromani at redhat.com fromani at redhat.com
Tue Mar 17 11:03:10 UTC 2015


Francesco Romani has posted comments on this change.

Change subject: API: getVMList: compatibity with internal clients
......................................................................


Patch Set 2:

TL;DR: Initial verification passed using VDSM master and Engine 3.5.0. 
VERY LONG report of full details below. Sorry for overly long message, but at this point I won't neglect any detail to finally properly close this issue.

1. applied 38679 and 38805 on top of 6d8c7edf0d9feabb2fc51ab3d7a5951f8e45f5a4 (master branch)
2. deployed patched master on RHEL 7.0 hypervisor host
3. patched yajsonrpc to always log each call at DEBUG level
4. restarted VDSM
5. started Engine 3.5.0
5. added patched hypervisor host to Engine
6.A. full disclosure: hacked ovirt-host-deploy to work with *-kvm-*-rhev
7. booted one VM (20150417 - 10:24)
7.A. full disclosure: had funky local routing problem, which lead to unresponsive/unassigned host. Fixed changed IP of the Engine VM
8. Booted a VM, let it run for a while (JSONRPC)
9. Booted a VM, let it run for a while (XMLRPC)

Logs: JSONRPC
JsonRpc (StompReactor)::DEBUG::2015-03-17 11:30:40,719::stompReactor::94::Broker.StompAdapter::(handle_frame) Handling message <StompFrame command='SEND'>
JsonRpcServer::DEBUG::2015-03-17 11:30:40,720::__init__::506::jsonrpc.JsonRpcServer::(serve_requests) Waiting for request
Thread-177::DEBUG::2015-03-17 11:30:40,720::__init__::469::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'Host.getVMList' in bridge with {}
Thread-177::DEBUG::2015-03-17 11:30:40,721::__init__::500::jsonrpc.JsonRpcServer::(_serveRequest) Return 'Host.getVMList' in bridge with []
Thread-177::DEBUG::2015-03-17 11:30:40,721::stompReactor::159::yajsonrpc.StompServer::(send) Sending response
JsonRpc (StompReactor)::DEBUG::2015-03-17 11:30:40,999::stompReactor::94::Broker.StompAdapter::(handle_frame) Handling message <StompFrame command='SEND'>

JsonRpc (StompReactor)::DEBUG::2015-03-17 11:30:43,288::stompReactor::94::Broker.StompAdapter::(handle_frame) Handling message <StompFrame command='SEND'>
Thread-180::DEBUG::2015-03-17 11:30:43,289::__init__::469::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'VM.create' in bridge with {u'vmParams': {u'acpiEnable': u'true',
[... omitted for brevity]
Thread-181::DEBUG::2015-03-17 11:30:43,297::vm::1179::vm.Vm::(_startUnderlyingVm) vmId=`d9be4550-7af1-4580-9430-4bfdaa7d50cf`::Start
Thread-180::DEBUG::2015-03-17 11:30:43,298::__init__::500::jsonrpc.JsonRpcServer::(_serveRequest) Return 'VM.create' in bridge with {u'acpiEnable': u'true',

Thread-183::DEBUG::2015-03-17 11:30:43,771::__init__::469::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'Host.getVMList' in bridge with {}
Thread-183::DEBUG::2015-03-17 11:30:43,773::__init__::500::jsonrpc.JsonRpcServer::(_serveRequest) Return 'Host.getVMList' in bridge with [u'd9be4550-7af1-4580-9430-4bfdaa7d50cf']
Thread-183::DEBUG::2015-03-17 11:30:43,773::stompReactor::159::yajsonrpc.StompServer::(send) Sending response
JsonRpc (StompReactor)::DEBUG::2015-03-17 11:30:43,775::stompReactor::94::Broker.StompAdapter::(handle_frame) Handling message <StompFrame command='SEND'>
JsonRpcServer::DEBUG::2015-03-17 11:30:43,776::__init__::506::jsonrpc.JsonRpcServer::(serve_requests) Waiting for request
Thread-184::DEBUG::2015-03-17 11:30:43,776::__init__::469::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'VM.getStats' in bridge with {u'vmID': u'd9be4550-7af1-4580-9430-4bfdaa7d50cf'}
Thread-184::DEBUG::2015-03-17 11:30:43,777::__init__::500::jsonrpc.JsonRpcServer::(_serveRequest) Return 'VM.getStats' in bridge with [{'status': 'WaitForLaunch', 'displayInfo': [{'tlsPort': '-1', 'ipAddress': '192.168.1.39', 'type': 'spice', 'port': '-1'}], 'hash': '-4942054084956770103', 'acpiEnable': u'true', 'displayIp': '192.168.1.39', 'guestFQDN': '', 'vmId': u'd9be4550-7af1-4580-9430-4bfdaa7d50cf', 'pid': '0', 'displayPort': '-1', 'session': 'Unknown', 'displaySecurePort': '-1', 'timeOffset': u'0', 'memUsage': '0', 'clientIp': '', 'elapsedTime': '0', 'kvmEnable': u'true', 'network': {}, 'displayType': u'qxl', 'disks': {}, 'monitorResponse': '0', 'username': 'Unknown', 'vmType': u'kvm', 'guestCPUCount': -1, 'appsList': [], 'guestIPs': '', 'vmName': u'FBD_1'}]
Thread-184::DEBUG::2015-03-17 11:30:43,777::stompReactor::159::yajsonrpc.StompServer::(send) Sending response
JsonRpc (StompReactor)::DEBUG::2015-03-17 11:30:43,800::stompReactor::94::Broker.StompAdapter::(handle_frame) Handling message <StompFrame command='SEND'>

Thread-195::DEBUG::2015-03-17 11:30:53,120::__init__::469::jsonrpc.JsonRpcServer::(_serveRequest) Calling 'Host.getAllVmStats' in bridge with {}
Thread-195::DEBUG::2015-03-17 11:30:53,121::__init__::500::jsonrpc.JsonRpcServer::(_serveRequest) Return 'Host.getAllVmStats' in bridge with [{'vcpuCount': '2', 'displayInfo': [{'tlsPort': u'5900', 'ipAddress': '192.168.1.39', 'type': 'spice', 'port': '-1'}], 'hash': '-7613369818897856376', 'acpiEnable': u'true', 'displayIp': '192.168.1.39', 'guestFQDN': '', 'pid': '11492', 'vmId': u'd9be4550-7af1-4580-9430-4bfdaa7d50cf', 'timeOffset': u'0', 'session': 'Unknown', 'vcpuPeriod': 100000L, 'displayPort': '-1', 'memUsage': '0', 'balloonInfo': {'balloon_max': '4194304', 'balloon_min': '4194304', 'balloon_target': '4194304', 'balloon_cur': '4194304'}, 'pauseCode': 'NOERR', 'vcpuQuota': '-1', 'username': 'Unknown', 'kvmEnable': u'true', 'network': {}, 'displayType': u'qxl', 'cpuUser': '0.00', 'vmJobs': {}, 'disks': {u'vda': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '5502926848', 'apparentsize': '5502926848', 'readOps': '0', 'writeLatency': '0', 'imageID': u'ba737308-0fca!
 -4c6d-8f0f-42a6e762c555', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'vdc': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '1073741824', 'apparentsize': '1073741824', 'readOps': '0', 'writeLatency': '0', 'imageID': u'5180f292-ea83-44ec-82f5-bc3aed59384c', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'vdb': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '1073741824', 'apparentsize': '1073741824', 'readOps': '0', 'writeLatency': '0', 'imageID': u'3b12ce02-d9da-46f8-a743-b3937bf5a6d2', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'hdc': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '0', 'apparentsize': '0', 'readOps': '0', 'writeLatency': '0', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}}, 'monitorResponse': '0', 'elapsedTime': '9', 'vmType': u'kvm', 'guestIPs': '', 'cpuSys': '0.00', 'status': 'Powering up', 'guestCPUCount': -1, 'appsList': [], 'ioTune': [], 'clientIp': '', 'vmName': u'FBD_1', 'displaySe!
 curePort': u'5900'}]

Logs: XMLRPC
Thread-13::DEBUG::2015-03-17 11:52:22,002::BindingXMLRPC::1159::vds::(wrapper) client [192.168.1.183]::call getVMList with () {}
Thread-13::DEBUG::2015-03-17 11:52:22,002::BindingXMLRPC::1166::vds::(wrapper) return getVMList with {'status': {'message': 'Done', 'code': 0}, 'vmList': []}
Thread-13::DEBUG::2015-03-17 11:52:22,414::BindingXMLRPC::1159::vds::(wrapper) client [192.168.1.183]::call vmCreate with ({'acpiEnable': 'true', 'emulatedMachine': 'rhel6.5.0',
[... omitted for brevity]

Thread-13::DEBUG::2015-03-17 11:52:31,136::BindingXMLRPC::1159::vds::(wrapper) client [192.168.1.183]::call getVMList with () {}
Thread-13::DEBUG::2015-03-17 11:52:31,137::BindingXMLRPC::1166::vds::(wrapper) return getVMList with {'status': {'message': 'Done', 'code': 0}, 'vmList': [{'status': 'Up', 'vmId': 'd9be4550-7af1-4580-9430-4bfdaa7d50cf'}]}
Thread-13::DEBUG::2015-03-17 11:52:31,143::BindingXMLRPC::1159::vds::(wrapper) client [192.168.1.183]::call vmGetStats with ('d9be4550-7af1-4580-9430-4bfdaa7d50cf',) {}
Thread-13::DEBUG::2015-03-17 11:52:31,143::BindingXMLRPC::1166::vds::(wrapper) return vmGetStats with {'status': {'message': 'Done', 'code': 0}, 'statsList': [{'displayInfo': [{'tlsPort': u'5900', 'ipAddress': '192.168.1.39', 'type': 'spice', 'port': '-1'}], 'memUsage': '0', 'acpiEnable': 'true', 'guestFQDN': '', 'pid': '15013', 'session': 'Unknown', 'vmType': 'kvm', 'timeOffset': '0', 'balloonInfo': {'balloon_max': '4194304', 'balloon_min': '4194304', 'balloon_target': '4194304', 'balloon_cur': '4194304'}, 'pauseCode': 'NOERR', 'network': {}, 'vmJobs': {}, 'cpuUser': '0.00', 'elapsedTime': '8', 'displayType': 'qxl', 'cpuSys': '0.00', 'appsList': [], 'vmName': 'FBD_1', 'vcpuCount': '2', 'clientIp': '', 'hash': '-7613369818897856376', 'vmId': 'd9be4550-7af1-4580-9430-4bfdaa7d50cf', 'displayIp': '192.168.1.39', 'vcpuPeriod': 100000L, 'displayPort': '-1', 'vcpuQuota': '-1', 'kvmEnable': 'true', 'disks': {u'vda': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '5502926848'!
 , 'apparentsize': '5502926848', 'readOps': '0', 'writeLatency': '0', 'imageID': 'ba737308-0fca-4c6d-8f0f-42a6e762c555', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'vdc': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '1073741824', 'apparentsize': '1073741824', 'readOps': '0', 'writeLatency': '0', 'imageID': '5180f292-ea83-44ec-82f5-bc3aed59384c', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'vdb': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '1073741824', 'apparentsize': '1073741824', 'readOps': '0', 'writeLatency': '0', 'imageID': '3b12ce02-d9da-46f8-a743-b3937bf5a6d2', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'hdc': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '0', 'apparentsize': '0', 'readOps': '0', 'writeLatency': '0', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}}, 'monitorResponse': '0', 'username': 'Unknown', 'status': 'Powering up', 'guestCPUCount': -1, 'ioTune': [], 'guestIPs': '', 'di!
 splaySecurePort': u'5900'}]}

[reached steady state]
Thread-13::DEBUG::2015-03-17 11:52:52,825::BindingXMLRPC::1159::vds::(wrapper) client [192.168.1.183]::call getVMList with () {}
Thread-13::DEBUG::2015-03-17 11:52:52,825::BindingXMLRPC::1166::vds::(wrapper) return getVMList with {'status': {'message': 'Done', 'code': 0}, 'vmList': [{'status': 'Up', 'vmId': 'd9be4550-7af1-4580-9430-4bfdaa7d50cf'}]}

Thread-13::DEBUG::2015-03-17 11:52:55,834::BindingXMLRPC::1159::vds::(wrapper) client [192.168.1.183]::call getVMList with () {}
Thread-13::DEBUG::2015-03-17 11:52:55,834::BindingXMLRPC::1166::vds::(wrapper) return getVMList with {'status': {'message': 'Done', 'code': 0}, 'vmList': [{'status': 'Up', 'vmId': 'd9be4550-7af1-4580-9430-4bfdaa7d50cf'}]}


Thread-13::DEBUG::2015-03-17 11:53:04,891::BindingXMLRPC::1159::vds::(wrapper) client [192.168.1.183]::call getAllVmStats with () {}
Thread-13::DEBUG::2015-03-17 11:53:04,891::BindingXMLRPC::1166::vds::(wrapper) return getAllVmStats with {'status': {'message': 'Done', 'code': 0}, 'statsList': [{'vcpuCount': '2', 'displayInfo': [{'tlsPort': u'5900', 'ipAddress': '192.168.1.39', 'type': 'spice', 'port': '-1'}], 'hash': '-7613369818897856376', 'guestCPUCount': -1, 'acpiEnable': 'true', 'displayIp': '192.168.1.39', 'guestFQDN': u'localhost.localdomain', 'pid': '15013', 'vmId': 'd9be4550-7af1-4580-9430-4bfdaa7d50cf', 'netIfaces': [], 'timeOffset': '0', 'session': 'Unknown', 'vcpuPeriod': 12500L, 'displayPort': '-1', 'memUsage': '11', 'balloonInfo': {'balloon_max': '4194304', 'balloon_min': '4194304', 'balloon_target': '4194304', 'balloon_cur': '4194304'}, 'pauseCode': 'NOERR', 'vcpuQuota': '50000', 'guestName': u'localhost.localdomain', 'username': u'(unknown)', 'memoryStats': {u'swap_out': '0', u'majflt': '0', u'swap_usage': '0', u'mem_cached': '200820', u'mem_free': '3713140', u'mem_buffers': '18220', u'swap!
 _in': '0', u'swap_total': '2097148', u'pageflt': '180', u'mem_total': '4048324', u'mem_unused': '3494100'}, 'kvmEnable': 'true', 'network': {u'vnet0': {'macAddr': '00:1a:4a:d8:81:01', 'rxDropped': '0', 'tx': '5425', 'rxErrors': '0', 'rx': '4972', 'txDropped': '0', 'txRate': '0.0', 'rxRate': '0.0', 'txErrors': '0', 'state': 'unknown', 'sampleTime': 4301870.19, 'speed': '1000', 'name': u'vnet0'}}, 'displayType': 'qxl', 'cpuUser': '59.41', 'vmJobs': {}, 'disks': {u'vda': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '5502926848', 'apparentsize': '5502926848', 'readOps': '0', 'writeLatency': '0', 'imageID': 'ba737308-0fca-4c6d-8f0f-42a6e762c555', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'vdc': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '1073741824', 'apparentsize': '1073741824', 'readOps': '0', 'writeLatency': '0', 'imageID': '5180f292-ea83-44ec-82f5-bc3aed59384c', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'vdb': {'readLatency!
 ': '0', 'writtenBytes': '0', 'truesize': '1073741824', 'apparentsize': '1073741824', 'readOps': '0', 'writeLatency': '0', 'imageID': '3b12ce02-d9da-46f8-a743-b3937bf5a6d2', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}, u'hdc': {'readLatency': '0', 'writtenBytes': '0', 'truesize': '0', 'apparentsize': '0', 'readOps': '0', 'writeLatency': '0', 'readBytes': '0', 'flushLatency': '0', 'writeOps': '0'}}, 'monitorResponse': '0', 'disksUsage': [{u'path': u'/sys/fs/pstore', u'total': '0', u'used': '0', u'fs': u'pstore'}, {u'path': u'/', u'total': '18369396736', u'used': '3896283136', u'fs': u'ext4'}, {u'path': u'/sys/kernel/config', u'total': '0', u'used': '0', u'fs': u'configfs'}, {u'path': u'/boot', u'total': '499355648', u'used': '93746176', u'fs': u'ext4'}], 'elapsedTime': '42', 'vmType': 'kvm', 'guestIPs': '', 'cpuSys': '3.66', 'status': 'Up', 'lastLogin': 1426589567.484948, 'appsList': [u'kernel-3.11.10-301.fc20', u'xorg-x11-drv-qxl-0.1.1-3.fc20', u'ovirt-guest-agent-common-1.0.10-1.fc20'], 'ioTune': [], 'guestOs': u'3.11.10-301.fc20.x!
 86_64', 'clientIp': '', 'vmName': 'FBD_1', 'displaySecurePort': u'5900'}]}


counterproof: grep -i classcast /var/log/ovirt-engine/engine.log -> no results

Appendix: packages:
Engine:
ovirt-engine-3.5.0-0.0.master.20140923231850.git42065cc.fc19.noarch
ovirt-engine-setup-3.5.0.1-0.0.master.20141009085636.fc19.noarch
ovirt-engine-extensions-api-impl-3.5.0.1-0.0.master.20141009085636.fc19.noarch
ovirt-engine-backend-3.5.0-0.0.master.20140923231850.git42065cc.fc19.noarch
ovirt-engine-setup-plugin-ovirt-engine-common-3.5.0.1-0.0.master.20141009085636.fc19.noarch
ovirt-engine-tools-3.5.0-0.0.master.20140923231850.git42065cc.fc19.noarch
ovirt-engine-setup-plugin-ovirt-engine-3.5.0.1-0.0.master.20141009085636.fc19.noarch
ovirt-engine-cli-3.5.0.5-1.fc19.noarch
ovirt-engine-dbscripts-3.5.0-0.0.master.20140923231850.git42065cc.fc19.noarch
ovirt-engine-userportal-3.5.0-0.0.master.20140923231850.git42065cc.fc19.noarch
ovirt-engine-setup-base-3.5.0.1-0.0.master.20141009085636.fc19.noarch
ovirt-engine-webadmin-portal-3.5.0-0.0.master.20140923231850.git42065cc.fc19.noarch
ovirt-engine-setup-plugin-websocket-proxy-3.5.0.1-0.0.master.20141009085636.fc19.noarch
ovirt-engine-restapi-3.5.0-0.0.master.20140923231850.git42065cc.fc19.noarch
ovirt-engine-websocket-proxy-3.5.0.1-0.0.master.20141009085636.fc19.noarch
ovirt-engine-sdk-python-3.5.0.7-1.fc19.noarch
ovirt-engine-lib-3.5.0.1-0.0.master.20141009085636.fc19.noarch

VDSM:
vdsm-debuginfo-4.17.0-527.gitaf15c55.el7.x86_64
vdsm-xmlrpc-4.17.0-527.gitaf15c55.el7.noarch
vdsm-python-zombiereaper-4.16.12-17.git7f87336.el7.noarch
vdsm-python-4.17.0-527.gitaf15c55.el7.noarch
vdsm-4.17.0-527.gitaf15c55.el7.x86_64
vdsm-infra-4.17.0-527.gitaf15c55.el7.noarch
vdsm-jsonrpc-4.17.0-527.gitaf15c55.el7.noarch
vdsm-yajsonrpc-4.17.0-527.gitaf15c55.el7.noarch
vdsm-cli-4.17.0-527.gitaf15c55.el7.noarch

-- 
To view, visit https://gerrit.ovirt.org/38805
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0560a262329f729716577b28aa78b177f0929121
Gerrit-PatchSet: 2
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani at redhat.com>
Gerrit-Reviewer: Adam Litke <alitke at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Francesco Romani <fromani at redhat.com>
Gerrit-Reviewer: Martin Sivák <msivak at redhat.com>
Gerrit-Reviewer: Michal Skrivanek <michal.skrivanek at redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski at gmail.com>
Gerrit-Reviewer: automation at ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: No


More information about the vdsm-patches mailing list