Saggi Mizrahi has uploaded a new change for review.

Change subject: jsonrpc: Make jsonrpc an independent package
......................................................................

jsonrpc: Make jsonrpc an independent package

The json-rpc core is needed by the client and by the server.

I changed the package name to yajonrpc (yet another json-rpc) to avoid
collisions with existing jsonrpc implementations.

Change-Id: I09e5718d56e09e7f6ad36bc3b2f241c03bbaf08b
Signed-off-by: Saggi Mizrahi <[email protected]>
---
M Makefile.am
M configure.ac
M tests/apiTests.py
M tests/jsonRpcTests.py
M tests/jsonRpcUtils.py
M tests/run_tests_local.sh.in
M vdsm.spec.in
M vdsm_api/BindingJsonRpc.py
M vdsm_api/Bridge.py
M vdsm_api/Makefile.am
R yajsonrpc/Makefile.am
R yajsonrpc/__init__.py
R yajsonrpc/asyncoreReactor.py
R yajsonrpc/client.py
R yajsonrpc/protonReactor.py
15 files changed, 38 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/10/11710/1

diff --git a/Makefile.am b/Makefile.am
index 48bdc5e..75f360f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -26,6 +26,7 @@
          tests \
          vdsm-tool \
          vdsm_api \
+         yajsonrpc \
          $(NULL)
 
 include $(top_srcdir)/build-aux/Makefile.subs
diff --git a/configure.ac b/configure.ac
index 7b5a44d..434d209 100644
--- a/configure.ac
+++ b/configure.ac
@@ -80,7 +80,7 @@
 AC_SUBST([vdsmtooldir], ['${vdsmpylibdir}/tool'])
 AC_SUBST([vdsmtestsdir], ['${datarootdir}/vdsm/tests'])
 AC_SUBST([vdsmapidir], ['${datarootdir}/vdsm_api'])
-AC_SUBST([jsonrpcdir], ['${datarootdir}/vdsm_api/jsonrpc'])
+AC_SUBST([yajsonrpcdir], ['${pyexecdir}/yajsonrpc'])
 
 # VDSM registration default paths
 AC_SUBST([vdsmregdir], ['${datarootdir}/vdsm-reg'])
@@ -192,7 +192,6 @@
        tests/functional/Makefile
        vds_bootstrap/Makefile
        vdsm_api/Makefile
-       vdsm_api/jsonrpc/Makefile
        vdsm_cli/Makefile
        vdsm_hooks/directlun/Makefile
        vdsm_hooks/faqemu/Makefile
@@ -223,6 +222,7 @@
        vdsm/storage/imageRepository/Makefile
        vdsm/storage/protect/Makefile
        vdsm-tool/Makefile
+       yajsonrpc/Makefile
 ])
 
 AC_OUTPUT([
diff --git a/tests/apiTests.py b/tests/apiTests.py
index 7ad8a1f..571e4eb 100644
--- a/tests/apiTests.py
+++ b/tests/apiTests.py
@@ -29,7 +29,7 @@
 from testrunner import VdsmTestCase as TestCaseBase
 from vdsm import constants
 import BindingJsonRpc
-import jsonrpc
+import yajsonrpc
 import apiData
 from jsonRpcUtils import getFreePort
 
@@ -249,13 +249,13 @@
                                  'id': 1,
                                  'method': 'Host.fake'})
         reply = self.sendMessage(msg)
-        self.assertEquals(jsonrpc.JsonRpcMethodNotFoundError().code,
+        self.assertEquals(yajsonrpc.JsonRpcMethodNotFoundError().code,
                           reply['error']['code'])
 
     def testBadMethod(self):
         msg = self.buildMessage(self._createRequest('malformed\'', 1))
         reply = self.sendMessage(msg)
-        self.assertEquals(jsonrpc.JsonRpcMethodNotFoundError().code,
+        self.assertEquals(yajsonrpc.JsonRpcMethodNotFoundError().code,
                           reply['error']['code'])
 
     def testMissingSize(self):
@@ -267,7 +267,7 @@
         msize = JsonRawTest._Size.pack(len(msg))
         msg = msize + msg
         reply = self.sendMessage(msg)
-        self.assertEquals(jsonrpc.JsonRpcParseError().code,
+        self.assertEquals(yajsonrpc.JsonRpcParseError().code,
                           reply['error']['code'])
 
     def testSynchronization(self):
@@ -296,5 +296,5 @@
         msg = self.buildMessage({'jsonrpc': '2.0',
                                  'id': 1, 'method': 'Host.ping'})
         reply = self.sendMessage(msg)
-        self.assertEquals(jsonrpc.JsonRpcInternalError().code,
+        self.assertEquals(yajsonrpc.JsonRpcInternalError().code,
                           reply['error']['code'])
diff --git a/tests/jsonRpcTests.py b/tests/jsonRpcTests.py
index 5779334..e13e24b 100644
--- a/tests/jsonRpcTests.py
+++ b/tests/jsonRpcTests.py
@@ -33,7 +33,7 @@
     constructReactor, \
     constructServer
 
-from jsonrpc import \
+from yajsonrpc import \
     JsonRpcError, \
     JsonRpcMethodNotFoundError, \
     JsonRpcInternalError
diff --git a/tests/jsonRpcUtils.py b/tests/jsonRpcUtils.py
index d5ffc06..4e70514 100644
--- a/tests/jsonRpcUtils.py
+++ b/tests/jsonRpcUtils.py
@@ -6,17 +6,17 @@
 from functools import partial
 from nose.plugins.skip import SkipTest
 
-from jsonrpc import \
+from yajsonrpc import \
     JsonRpcServer, \
     asyncoreReactor
-from jsonrpc.client import \
+from yajsonrpc.client import \
     JsonRpcClient, \
     ProtonReactorClient
 
 protonReactor = None
 try:
     import proton
-    from jsonrpc import protonReactor
+    from yajsonrpc import protonReactor
     proton         # Squash pyflakes error for
     protonReactor  # unused import
 except ImportError:
diff --git a/tests/run_tests_local.sh.in b/tests/run_tests_local.sh.in
index bc21a85..445cdd8 100644
--- a/tests/run_tests_local.sh.in
+++ b/tests/run_tests_local.sh.in
@@ -3,4 +3,4 @@
     PYTHON_EXE="@PYTHON@"
 fi
 
-PYTHONDONTWRITEBYTECODE=1 LC_ALL=C 
PYTHONPATH="@builddir@/vdsm:@top_srcdir@/vdsm:@top_srcdir@/vdsm_cli:@top_srcdir@/vdsm_api:$PYTHONPATH"
 "$PYTHON_EXE" @top_srcdir@/tests/testrunner.py --local-modules $@
+PYTHONDONTWRITEBYTECODE=1 LC_ALL=C 
PYTHONPATH="@builddir@/vdsm:@top_srcdir@:@top_srcdir@/vdsm:@top_srcdir@/vdsm_cli:@top_srcdir@/vdsm_api:$PYTHONPATH"
 "$PYTHON_EXE" @top_srcdir@/tests/testrunner.py --local-modules $@
diff --git a/vdsm.spec.in b/vdsm.spec.in
index 72ed58a..dcbfbb6 100644
--- a/vdsm.spec.in
+++ b/vdsm.spec.in
@@ -195,6 +195,15 @@
 %description jsonrpc
 A Json-based RPC interface that serves as the protocol for libvdsm.
 
+%package yajsonrpc
+Summary:        JSON RPC server and client implementation
+BuildArch:      noarch
+
+Requires:       python >= 2.6
+
+%description yajsonrpc
+A JSON RPC server and client implementation.
+
 %package bootstrap
 Summary:        VDSM bootstrapping package
 BuildArch:      noarch
@@ -948,10 +957,12 @@
 %{_datadir}/%{vdsm_name}/Bridge.py*
 %{_datadir}/%{vdsm_name}/vdsmapi.py*
 %{_datadir}/%{vdsm_name}/vdsmapi-schema.json
-%{_datadir}/%{vdsm_name}/jsonrpc/__init__.py*
-%{_datadir}/%{vdsm_name}/jsonrpc/asyncoreReactor.py*
-%{_datadir}/%{vdsm_name}/jsonrpc/protonReactor.py*
-%{_datadir}/%{vdsm_name}/jsonrpc/client.py*
+
+%files yajsonrpc
+%{python_sitearch}/yajsonrpc/__init__.py*
+%{python_sitearch}/yajsonrpc/asyncoreReactor.py*
+%{python_sitearch}/yajsonrpc/protonReactor.py*
+%{python_sitearch}/yajsonrpc/client.py*
 
 %files bootstrap
 %defattr(-, root, root, -)
diff --git a/vdsm_api/BindingJsonRpc.py b/vdsm_api/BindingJsonRpc.py
index 44c4746..f9c634e 100644
--- a/vdsm_api/BindingJsonRpc.py
+++ b/vdsm_api/BindingJsonRpc.py
@@ -20,11 +20,11 @@
 
 _Size = struct.Struct("!Q")
 
-from jsonrpc import JsonRpcServer
-from jsonrpc.asyncoreReactor import AsyncoreReactor
+from yajsonrpc import JsonRpcServer
+from yajsonrpc.asyncoreReactor import AsyncoreReactor
 ProtonReactor = None
 try:
-    from jsonrpc.protonReactor import ProtonReactor
+    from yajsonrpc.protonReactor import ProtonReactor
 except ImportError:
     pass
 
diff --git a/vdsm_api/Bridge.py b/vdsm_api/Bridge.py
index 49b1558..909ada3 100644
--- a/vdsm_api/Bridge.py
+++ b/vdsm_api/Bridge.py
@@ -19,7 +19,7 @@
 import logging
 import types
 import API
-import jsonrpc
+import yajsonrpc
 
 
 class VdsmError(Exception):
@@ -38,14 +38,14 @@
         try:
             fn = getattr(self, methodName)
         except AttributeError:
-            raise jsonrpc.JsonRpcMethodNotFoundError()
+            raise yajsonrpc.JsonRpcMethodNotFoundError()
 
         try:
             result = fn(argobj)
         except VdsmError, e:
             # TBD: Do we really want to always log here
             self.log.debug("Operation failed, returning error", exc_info=True)
-            raise jsonrpc.JsonRpcError(e.code, e.message)
+            raise yajsonrpc.JsonRpcError(e.code, e.message)
 
         return result
 
@@ -210,7 +210,7 @@
         if result['status']['code']:
             code = result['status']['code']
             msg = result['status']['message']
-            raise jsonrpc.JsonRpcError(code, msg)
+            raise yajsonrpc.JsonRpcError(code, msg)
 
         retfield = command_info.get(cmd, {}).get('ret')
         if isinstance(retfield, types.FunctionType):
diff --git a/vdsm_api/Makefile.am b/vdsm_api/Makefile.am
index bfde987..6d1548b 100644
--- a/vdsm_api/Makefile.am
+++ b/vdsm_api/Makefile.am
@@ -1,5 +1,3 @@
-SUBDIRS = jsonrpc
-
 CLEANFILES = \
        vdsm-api.html \
        $(NULL)
diff --git a/vdsm_api/jsonrpc/Makefile.am b/yajsonrpc/Makefile.am
similarity index 93%
rename from vdsm_api/jsonrpc/Makefile.am
rename to yajsonrpc/Makefile.am
index b660719..e43eace 100644
--- a/vdsm_api/jsonrpc/Makefile.am
+++ b/yajsonrpc/Makefile.am
@@ -18,8 +18,7 @@
 # Refer to the README and COPYING files for full details of the license
 #
 
-jsonrpcdir = $(vdsmdir)/jsonrpc
-dist_jsonrpc_PYTHON = \
+dist_yajsonrpc_PYTHON = \
        __init__.py \
        asyncoreReactor.py \
        client.py \
diff --git a/vdsm_api/jsonrpc/__init__.py b/yajsonrpc/__init__.py
similarity index 100%
rename from vdsm_api/jsonrpc/__init__.py
rename to yajsonrpc/__init__.py
diff --git a/vdsm_api/jsonrpc/asyncoreReactor.py b/yajsonrpc/asyncoreReactor.py
similarity index 100%
rename from vdsm_api/jsonrpc/asyncoreReactor.py
rename to yajsonrpc/asyncoreReactor.py
diff --git a/vdsm_api/jsonrpc/client.py b/yajsonrpc/client.py
similarity index 97%
rename from vdsm_api/jsonrpc/client.py
rename to yajsonrpc/client.py
index 282738a..8bad01b 100644
--- a/vdsm_api/jsonrpc/client.py
+++ b/yajsonrpc/client.py
@@ -2,7 +2,7 @@
 import socket
 import logging
 import uuid
-from jsonrpc import \
+from yajsonrpc import \
     JsonRpcError, \
     asyncoreReactor
 
@@ -11,7 +11,7 @@
 proton = None
 try:
     import proton
-    from jsonrpc import protonReactor
+    from yajsonrpc import protonReactor
     proton         # Squash pyflakes error for
     protonReactor  # unused import
 except ImportError:
diff --git a/vdsm_api/jsonrpc/protonReactor.py b/yajsonrpc/protonReactor.py
similarity index 100%
rename from vdsm_api/jsonrpc/protonReactor.py
rename to yajsonrpc/protonReactor.py


--
To view, visit http://gerrit.ovirt.org/11710
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I09e5718d56e09e7f6ad36bc3b2f241c03bbaf08b
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Saggi Mizrahi <[email protected]>
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to