Merge "Add extensions API to MultiCloud Framework"
[multicloud/framework.git] / multivimbroker / multivimbroker / forwarder / views.py
1 # Copyright 2017 Wind River Systems, Inc.
2 #
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
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14
15 from rest_framework.views import APIView
16 from multivimbroker.forwarder.base import BaseHandler
17
18 #
19
20
21 class BaseServer(BaseHandler, APIView):
22
23     def get(self, request, vimid):
24         raise NotImplementedError()
25
26     def post(self, request, vimid):
27         raise NotImplementedError()
28
29     def put(self, request, vimid):
30         raise NotImplementedError()
31
32     def delete(self, request, vimid):
33         raise NotImplementedError()
34
35     def head(self, request, vimid):
36         raise NotImplementedError()
37
38     def patch(self, request, vimid):
39         raise NotImplementedError()
40
41
42 # proxy handler
43 class Identity(BaseServer):
44
45     def get(self, request, vimid):
46
47         return self.send(vimid, request.get_full_path(), request.body, "GET")
48
49     def post(self, request, vimid):
50
51         return self.send(vimid, request.get_full_path(), request.body, "POST")
52
53
54 class Registry(BaseServer):
55
56     def post(self, request, vimid):
57
58         return self.send(vimid, request.get_full_path(), request.body, "POST")
59
60     def delete(self, request, vimid):
61
62         return self.send(vimid, request.get_full_path(), request.body,
63                          "DELETE")
64
65
66 class Extension(BaseServer):
67
68     def get(self, request, vimid):
69
70         return self.send(vimid, request.get_full_path(), request.body, "GET")
71
72
73 # forward  handler
74 class Forward(BaseServer):
75
76     def get(self, request, vimid):
77
78         return self.send(vimid, request.get_full_path(), request.body, "GET")
79
80     def post(self, request, vimid):
81
82         return self.send(vimid, request.get_full_path(), request.body, "POST",
83                          headers=None)
84
85     def patch(self, request, vimid):
86
87         return self.send(vimid, request.get_full_path(), request.body, "PATCH",
88                          headers=None)
89
90     def delete(self, request, vimid):
91
92         return self.send(vimid, request.get_full_path(), request.body,
93                          "DELETE", headers=None)
94
95     def head(self, request, vimid):
96
97         return self.send(vimid, request.get_full_path(), request.body, "HEAD")
98
99     def put(self, request, vimid):
100
101         return self.send(vimid, request.get_full_path(), request.body, "PUT",
102                          headers=None)