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
