update link to upper-constraints.txt
[multicloud/framework.git] / multivimbroker / multivimbroker / forwarder / base.py
index 512bb6a..f5d3734 100644 (file)
@@ -27,10 +27,11 @@ logger = logging.getLogger(__name__)
 
 class BaseHandler(object):
 
-    def _request(self, route_uri, method, body="", headers=None):
+    def _request(self, route_uri, method, body="", headers=None,
+                 multipart=False):
 
         try:
-            if "multipart" in route_uri:
+            if multipart:
                 return self._multipart_req(route_uri, method, body, headers)
             retcode, content, status_code, resp = \
                 req_by_msb(route_uri, method, body, headers)
@@ -48,8 +49,9 @@ class BaseHandler(object):
             logger.exception("exception: %s" % e)
 
         response = HttpResponse(content, status=status_code)
-        for k in getHeadersKeys(resp):
-            response[k] = resp[k]
+        if retcode == 0:
+            for k in getHeadersKeys(resp):
+                response[k] = resp[k]
         return response
 
     def _multipart_req(self, route_uri, method, body, headers=None):
@@ -73,7 +75,8 @@ class BaseHandler(object):
         response = HttpResponse(content, status=status_code)
         return response
 
-    def send(self, vimid, full_path, body, method, headers=None):
+    def send(self, vimid, full_path, body, method, headers=None,
+             multipart=False):
 
         try:
             url = getMultivimDriver(vimid, full_path=full_path)
@@ -84,5 +87,5 @@ class BaseHandler(object):
             logging.exception("unkown exception: %s" % e)
             return HttpResponse(str(e),
                                 status=status.HTTP_500_INTERNAL_SERVER_ERROR)
-
-        return self._request(url, method, body=body, headers=headers)
+        return self._request(url, method, body=body, headers=headers,
+                             multipart=multipart)