1 # Copyright 2017 Wind River Systems, Inc.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 from rest_framework.views import APIView
16 from multivimbroker.forwarder.base import BaseHandler
21 class BaseServer(BaseHandler, APIView):
23 def get(self, request, vimid):
24 raise NotImplementedError()
26 def post(self, request, vimid):
27 raise NotImplementedError()
29 def put(self, request, vimid):
30 raise NotImplementedError()
32 def delete(self, request, vimid):
33 raise NotImplementedError()
35 def head(self, request, vimid):
36 raise NotImplementedError()
38 def patch(self, request, vimid):
39 raise NotImplementedError()
43 class Identity(BaseServer):
45 def get(self, request, vimid):
47 return self.send(vimid, request.get_full_path(), request.body, "GET")
49 def post(self, request, vimid):
51 return self.send(vimid, request.get_full_path(), request.body, "POST")
54 class Registry(BaseServer):
56 def post(self, request, vimid):
58 return self.send(vimid, request.get_full_path(), request.body, "POST")
60 def delete(self, request, vimid):
62 return self.send(vimid, request.get_full_path(), request.body,
67 class Forward(BaseServer):
69 def get(self, request, vimid):
71 return self.send(vimid, request.get_full_path(), request.body, "GET")
73 def post(self, request, vimid):
75 return self.send(vimid, request.get_full_path(), request.body, "POST",
78 def patch(self, request, vimid):
80 return self.send(vimid, request.get_full_path(), request.body, "PATCH",
83 def delete(self, request, vimid):
85 return self.send(vimid, request.get_full_path(), request.body,
86 "DELETE", headers=None)
88 def head(self, request, vimid):
90 return self.send(vimid, request.get_full_path(), request.body, "HEAD")
92 def put(self, request, vimid):
94 return self.send(vimid, request.get_full_path(), request.body, "PUT",