Change in vdsm[master]: tests: functional - convert to run over jsonrpc

ykaplan at redhat.com ykaplan at redhat.com
Mon Sep 7 10:57:19 UTC 2015


Yeela Kaplan has uploaded a new change for review.

Change subject: tests: functional - convert to run over jsonrpc
......................................................................

tests: functional - convert to run over jsonrpc

will run functional tests by default over jsonrpc

Change-Id: Iaba1e2811f010e4509a658acef8040ad8f39cece
Signed-off-by: Yeela Kaplan <ykaplan at redhat.com>
---
M lib/vdsm/jsonrpcvdscli.py
M lib/vdsm/response.py
M tests/functional/utils.py
3 files changed, 58 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/89/45789/1

diff --git a/lib/vdsm/jsonrpcvdscli.py b/lib/vdsm/jsonrpcvdscli.py
index 21e135c..606bbef 100644
--- a/lib/vdsm/jsonrpcvdscli.py
+++ b/lib/vdsm/jsonrpcvdscli.py
@@ -33,17 +33,34 @@
 
 
 _COMMAND_CONVERTER = {
-    'ping': 'Host.ping',
+    'addNetwork': 'Host.addNetwork',
+    'create': 'VM.create',
+    'delNetwork': 'Host.delNetwork',
     'destroy': 'VM.destroy',
+    'editNetwork': 'Host.editNetwork',
+    'fullList': 'Host.getVMFullList',
+    'getAllVmStats': 'Host.getAllVmStats',
+    'getVdsCapabilities': 'Host.getCapabilities',
+    'getVdsStats': 'Host.getStats',
     'getVmStats': 'VM.getStats',
+    'list': 'Host.getVMList',
     'migrationCreate': 'VM.migrationCreate',
+    'ping': 'Host.ping',
+    'setBalloonTarget': 'VM.setBalloonTarget',
+    'setCpuTunePeriod': 'VM.setCpuTunePeriod',
+    'setCpuTuneQuota': 'VM.setCpuTuneQuota',
+    'setMOMPolicy': 'Host.setMOMPolicy',
+    'setSafeNetworkConfig': 'Host.setSafeNetworkConfig',
+    'setupNetworks': 'Host.setupNetworks',
+    'updateVmPolicy': 'VM.updateVmPolicy',
 }
 
 
 class _Server(object):
 
-    def __init__(self, client):
+    def __init__(self, client, compat):
         self._client = client
+        self._compat = compat
 
     def _callMethod(self, methodName, *args):
         try:
@@ -64,6 +81,9 @@
             return response.error_raw(resp.error["code"],
                                       resp.error["message"])
 
+        if not self._compat:
+            return response.success_raw(resp.result)
+
         if resp.result and resp.result is not True:
             # None is translated to True inside our JSONRPC implementation
             return response.success(**resp.result)
@@ -72,6 +92,11 @@
 
     def migrationCreate(self, params):
         return self._callMethod('migrationCreate',
+                                params['vmId'],
+                                params)
+
+    def create(self, params):
+        return self._callMethod('create',
                                 params['vmId'],
                                 params)
 
@@ -107,7 +132,7 @@
 def connect(requestQueue, stompClient=None,
             host=None, port=None,
             useSSL=None,
-            responseQueue=None):
+            responseQueue=None, compat=True):
     if not stompClient:
         client = _create(requestQueue,
                          host, port, useSSL,
@@ -119,4 +144,4 @@
             str(uuid4())
         )
 
-    return _Server(client)
+    return _Server(client, compat)
diff --git a/lib/vdsm/response.py b/lib/vdsm/response.py
index 62ed49e..160898f 100644
--- a/lib/vdsm/response.py
+++ b/lib/vdsm/response.py
@@ -41,6 +41,21 @@
     return kwargs
 
 
+def success_raw(result=None, message=None):
+    ret = {
+        'status':
+            {
+                "code": doneCode["code"],
+                "message": message or doneCode["message"],
+            }
+    }
+
+    if result:
+        ret['result'] = result
+
+    return ret
+
+
 def error(name, message=None):
     status = errCode[name]["status"]
     return {
diff --git a/tests/functional/utils.py b/tests/functional/utils.py
index 6bd8dd9..b8bdce6 100644
--- a/tests/functional/utils.py
+++ b/tests/functional/utils.py
@@ -26,9 +26,9 @@
 from vdsm.config import config
 from vdsm.utils import retry
 from vdsm import ipwrapper
+from vdsm import jsonrpcvdscli
 from vdsm import netinfo
 from vdsm import supervdsm
-from vdsm import vdscli
 from vdsm.netconfpersistence import RunningConfig
 
 
@@ -71,7 +71,9 @@
         retry(self.start, (socket.error, KeyError), tries=30)
 
     def start(self):
-        self.vdscli = vdscli.connect()
+        requestQueues = config.get('addresses', 'request_queues')
+        requestQueue = requestQueues.split(",")[0]
+        self.vdscli = jsonrpcvdscli.connect(requestQueue, compat=False)
         self.netinfo = self._get_netinfo()
         if config.get('vars', 'net_persistence') == 'unified':
             self.config = RunningConfig()
@@ -204,40 +206,40 @@
 
     def getVdsStats(self):
         result = self.vdscli.getVdsStats()
-        return _parse_result(result, 'info')
+        return _parse_result(result, True)
 
     def getAllVmStats(self):
         result = self.vdscli.getAllVmStats()
-        return _parse_result(result, 'statsList')
+        return _parse_result(result, True)
 
     def getVmStats(self, vmId):
         result = self.vdscli.getVmStats(vmId)
-        if 'statsList' in result:
-            code, msg, stats = _parse_result(result, 'statsList')
+        if 'result' in result:
+            code, msg, stats = _parse_result(result, True)
             return code, msg, stats[0]
         else:
             return _parse_result(result)
 
     def getVmList(self, vmId):
-        result = self.vdscli.list('true', [vmId])
-        code, msg, vm_list = _parse_result(result, 'vmList')
+        result = self.vdscli.fullList([vmId])
+        code, msg, vm_list = _parse_result(result, True)
         return code, msg, vm_list[0]
 
     def getVdsCapabilities(self):
         result = self.vdscli.getVdsCapabilities()
-        return _parse_result(result, 'info')
+        return _parse_result(result, True)
 
     def updateVmPolicy(self, vmId, vcpuLimit):
         result = self.vdscli.updateVmPolicy([vmId, vcpuLimit])
         return _parse_result(result)
 
 
-def _parse_result(result, return_value=None):
+def _parse_result(result, return_value=False):
     status = result['status']
     code = status['code']
     msg = status['message']
 
-    if code == SUCCESS and return_value is not None:
-        return code, msg, result[return_value]
+    if code == SUCCESS and return_value:
+        return code, msg, result['result']
     else:
         return code, msg


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iaba1e2811f010e4509a658acef8040ad8f39cece
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Yeela Kaplan <ykaplan at redhat.com>


More information about the vdsm-patches mailing list