X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=multivimbroker%2Fmultivimbroker%2Fforwarder%2Fbase.py;h=512bb6a51ba7771c12e656393bceda5c4e5043b9;hb=63bf19e9be7fe29fc691bef4088ec544444a4a19;hp=747784274c0265cff70f92d392ca738956ac44dd;hpb=86f5bfc80a1c753c730e2d7cb3daceeeb67e6e6d;p=multicloud%2Fframework.git diff --git a/multivimbroker/multivimbroker/forwarder/base.py b/multivimbroker/multivimbroker/forwarder/base.py index 7477842..512bb6a 100644 --- a/multivimbroker/multivimbroker/forwarder/base.py +++ b/multivimbroker/multivimbroker/forwarder/base.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 VMware, Inc. +# Copyright (c) 2017-2018 VMware, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ import multivimbroker.pub.exceptions as exceptions from multivimbroker.pub.utils.syscomm import getHeadersKeys from multivimbroker.pub.utils.syscomm import getMultivimDriver from multivimbroker.pub.utils.restcall import req_by_msb +from multivimbroker.pub.utils.restcall import req_by_msb_multipart logger = logging.getLogger(__name__) @@ -29,6 +30,8 @@ class BaseHandler(object): def _request(self, route_uri, method, body="", headers=None): try: + if "multipart" in route_uri: + return self._multipart_req(route_uri, method, body, headers) retcode, content, status_code, resp = \ req_by_msb(route_uri, method, body, headers) if retcode != 0: @@ -49,6 +52,27 @@ class BaseHandler(object): response[k] = resp[k] return response + def _multipart_req(self, route_uri, method, body, headers=None): + + try: + retcode, content, status_code, resp = \ + req_by_msb_multipart(route_uri, method, body, headers) + if retcode != 0: + # Execptions are handled within req_by_msb + logger.error("Status code is %s, detail is %s.", + status_code, content) + + except exceptions.NotFound as e: + return HttpResponse(str(e), status=status.HTTP_404_NOT_FOUND) + + except Exception as e: + content = e + status_code = status.HTTP_500_INTERNAL_SERVER_ERROR + logger.exception("exception: %s" % e) + + response = HttpResponse(content, status=status_code) + return response + def send(self, vimid, full_path, body, method, headers=None): try: