diff --git a/lib/rapi/baserlib.py b/lib/rapi/baserlib.py index 5710000c604975dbe9f3314d6abd2e6b86f49a63..b44d454d2f967ff636eeaa2cf787b46c20673fd2 100644 --- a/lib/rapi/baserlib.py +++ b/lib/rapi/baserlib.py @@ -289,7 +289,7 @@ class ResourceBase(object): POST_ACCESS = [rapi.RAPI_ACCESS_WRITE] DELETE_ACCESS = [rapi.RAPI_ACCESS_WRITE] - def __init__(self, items, queryargs, req, _client_cls=luxi.Client): + def __init__(self, items, queryargs, req, _client_cls=None): """Generic resource constructor. @param items: a list with variables encoded in the URL @@ -301,6 +301,10 @@ class ResourceBase(object): self.items = items self.queryargs = queryargs self._req = req + + if _client_cls is None: + _client_cls = luxi.Client + self._client_cls = _client_cls def _GetRequestBody(self): diff --git a/lib/server/rapi.py b/lib/server/rapi.py index 2bc0dc4f87c8ebc84dfb1d680acba3a683b00399..9157889c40ddfd690469f2f4606ef6fb5b3ee8ba 100644 --- a/lib/server/rapi.py +++ b/lib/server/rapi.py @@ -71,11 +71,12 @@ class RemoteApiHandler(http.auth.HttpServerRequestAuthentication, """ AUTH_REALM = "Ganeti Remote API" - def __init__(self): + def __init__(self, _client_cls=None): # pylint: disable=W0233 # it seems pylint doesn't see the second parent class there http.server.HttpServerHandler.__init__(self) http.auth.HttpServerRequestAuthentication.__init__(self) + self._client_cls = _client_cls self._resmap = connector.Mapper() self._users = None @@ -132,7 +133,7 @@ class RemoteApiHandler(http.auth.HttpServerRequestAuthentication, self._resmap.getController(req.request_path) ctx = RemoteApiRequestContext() - ctx.handler = HandlerClass(items, args, req) + ctx.handler = HandlerClass(items, args, req, _client_cls=self._client_cls) method = req.request_method.upper() try: