def dispatch(self, method): class_name, method_name = method.split('.', 1) if class_name != "Test": raise yajsonrpc.JsonRpcMethodNotFoundError(method=method) try: return getattr(self, method_name) except AttributeError: raise yajsonrpc.JsonRpcMethodNotFoundError(method=method)
def dispatch(self, method): try: className, methodName = method.split('.', 1) self._schema.get_method(vdsmapi.MethodRep(className, methodName)) except (vdsmapi.MethodNotFound, ValueError): raise yajsonrpc.JsonRpcMethodNotFoundError(method=method) return partial(self._dynamicMethod, className, methodName)
def test_missing_method(self): with self._create_client() as client: with self.assertRaises(ServerError) as ex: client.Test.missingMethod() self.assertEqual(ex.exception.code, yajsonrpc.JsonRpcMethodNotFoundError("").code) self.assertIn("missingMethod", ex.exception.message)
def testNoMethod(self): msg = self.buildMessage({ 'jsonrpc': '2.0', 'id': id, 'method': 'Host.fake' }) reply = self.sendMessage(msg) self.assertEquals(yajsonrpc.JsonRpcMethodNotFoundError().code, reply['error']['code'])
def dispatch(self, name, argobj): methodName = name.replace('.', '_') result = None try: fn = getattr(self, methodName) except AttributeError: 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 yajsonrpc.JsonRpcError(e.code, e.message)
def dispatch(self, method): try: return getattr(self, method) except AttributeError: raise yajsonrpc.JsonRpcMethodNotFoundError(method=method)
def testBadMethod(self): msg = self.buildMessage(self._createRequest('malformed\'', id)) reply = self.sendMessage(msg) self.assertEquals(yajsonrpc.JsonRpcMethodNotFoundError().code, reply['error']['code'])