Merge "Add test_get_res_from_aai"
[multicloud/framework.git] / multivimbroker / multivimbroker / forwarder / views.py
index cea4134..d1763c2 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import os
 import json
 
 from rest_framework.views import APIView
 from rest_framework.views import Response
 from rest_framework.views import status
 from multivimbroker.forwarder.base import BaseHandler
+from multivimbroker.pub.utils.syscomm import originHeaders
+from multivimbroker.pub.utils import syscomm
 
 
 class BaseServer(BaseHandler, APIView):
@@ -48,18 +49,21 @@ class Identity(BaseServer):
 
     def get(self, request, vimid):
 
-        return self.send(vimid, request.get_full_path(), request.body, "GET")
+        return self.send(vimid, request.get_full_path(), request.body, "GET",
+                         headers=originHeaders(request))
 
     def post(self, request, vimid):
 
-        return self.send(vimid, request.get_full_path(), request.body, "POST")
+        return self.send(vimid, request.get_full_path(), request.body, "POST",
+                         headers=originHeaders(request))
 
 
 class Registry(BaseServer):
 
     def post(self, request, vimid):
 
-        return self.send(vimid, request.get_full_path(), request.body, "POST")
+        return self.send(vimid, request.get_full_path(), request.body, "POST",
+                         headers=originHeaders(request))
 
 
 class UnRegistry(BaseServer):
@@ -67,31 +71,21 @@ class UnRegistry(BaseServer):
     def delete(self, request, vimid):
 
         return self.send(vimid, request.get_full_path(), request.body,
-                         "DELETE")
+                         "DELETE", headers=originHeaders(request))
 
 
 class Extension(BaseServer):
 
     def get(self, request, vimid):
 
-        return self.send(vimid, request.get_full_path(), request.body, "GET")
+        return self.send(vimid, request.get_full_path(), request.body, "GET",
+                         headers=originHeaders(request))
 
 
 class VIMTypes(BaseServer):
 
     def get(self, request):
-        # Fix here unless we have plugin registry
-        json_file = os.path.join(os.path.dirname(__file__),
-                                 '../pub/config/provider-plugin.json')
-        with open(json_file, "r") as f:
-            plugins = json.load(f)
-        ret = []
-        for k, v in plugins.items():
-            item = {}
-            item["vim_type"] = v.get("vim_type")
-            item["versions"] = [k for k in v.get('versions', {})]
-            ret.append(item)
-        return Response(data=ret, status=status.HTTP_200_OK)
+        return Response(data=syscomm.getVIMTypes(), status=status.HTTP_200_OK)
 
 
 class CheckCapacity(BaseServer):
@@ -99,7 +93,7 @@ class CheckCapacity(BaseServer):
     def post(self, request):
         try:
             body = json.loads(request.body)
-        except json.JSONDecodeError as e:
+        except ValueError as e:
             return Response(
                 data={'error': 'Invalidate request body %s.' % e},
                 status=status.HTTP_400_BAD_REQUEST)
@@ -118,7 +112,7 @@ class CheckCapacity(BaseServer):
                 continue
             try:
                 resp_body = json.loads(resp.body)
-            except json.JSONDecodeError:
+            except ValueError:
                 continue
             if not resp_body.get("result", False):
                 continue