remove swagger test function
[vfc/nfvo/lcm.git] / lcm / packages / views.py
1 # Copyright 2016-2017 ZTE Corporation.
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 import logging
16 import uuid
17
18 from rest_framework import status
19 from rest_framework.decorators import api_view
20 from rest_framework.response import Response
21
22 from lcm.pub.utils.values import ignore_case_get
23 from lcm.pub.utils.syscomm import fun_name
24 from lcm.packages import ns_package, nf_package, sdc_ns_package, sdc_nf_package
25
26 logger = logging.getLogger(__name__)
27
28
29 @api_view(http_method_names=['POST', 'GET'])
30 def ns_distribute_get(request, *args, **kwargs):
31     logger.debug("Enter %s, method is %s", fun_name(), request.method)
32     ret, normal_status = None, None
33     if request.method == 'GET':
34         ret = sdc_ns_package.SdcNsPackage().get_csars()
35         normal_status = status.HTTP_200_OK
36     else:
37         csar_id = ignore_case_get(request.data, "csarId")
38         logger.debug("csar_id is %s", csar_id)
39         ret = sdc_ns_package.ns_on_distribute(csar_id)
40         normal_status = status.HTTP_202_ACCEPTED
41     logger.debug("Leave %s, Return value is %s", fun_name(), ret)
42     if ret[0] != 0:
43         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
44     return Response(data=ret[1], status=normal_status)
45
46
47 @api_view(http_method_names=['GET', 'DELETE'])
48 def ns_rd_csar(request, *args, **kwargs):
49     csar_id = ignore_case_get(kwargs, "csarId")
50     logger.info("Enter %s, method is %s, csar_id is %s", fun_name(), request.method, csar_id)
51     ret, normal_status = None, None
52     if request.method == 'GET':
53         ret = sdc_ns_package.ns_get_csar(csar_id)
54         normal_status = status.HTTP_200_OK
55     else:
56         force_delete = csar_id.endswith("force")
57         if force_delete:
58             csar_id = csar_id[:-5]
59         ret = sdc_ns_package.ns_delete_csar(csar_id, force_delete)
60         normal_status = status.HTTP_202_ACCEPTED
61     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
62     if ret[0] != 0:
63         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
64     return Response(data=ret[1], status=normal_status)
65
66
67 ####################################################################################################
68 @api_view(http_method_names=['POST', 'GET'])
69 def nf_distribute_get(request, *args, **kwargs):
70     logger.debug("Enter %s%s, method is %s", fun_name(), request.data, request.method)
71     ret, normal_status = None, None
72     if request.method == 'GET':
73         ret = sdc_nf_package.nf_get_csars()
74         normal_status = status.HTTP_200_OK
75     else:
76         csar_id = ignore_case_get(request.data, "csarId")
77         vim_ids = ignore_case_get(request.data, "vimIds")
78         lab_vim_id = ignore_case_get(request.data, "labVimId")
79         job_id = str(uuid.uuid4())
80         sdc_nf_package.SdcNfDistributeThread(csar_id, vim_ids, lab_vim_id, job_id).start()
81         ret = [0, {"jobId": job_id}]
82         normal_status = status.HTTP_202_ACCEPTED
83     logger.debug("Leave %s, Return value is %s", fun_name(), ret)
84     if ret[0] != 0:
85         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
86     return Response(data=ret[1], status=normal_status)
87
88
89 @api_view(http_method_names=['GET', 'DELETE'])
90 def nf_rd_csar(request, *args, **kwargs):
91     csar_id = ignore_case_get(kwargs, "csarId")
92     logger.info("Enter %s, method is %s, csar_id is %s", fun_name(), request.method, csar_id)
93     ret, normal_status = None, None
94     if request.method == 'GET':
95         ret = sdc_nf_package.nf_get_csar(csar_id)
96         normal_status = status.HTTP_200_OK
97     else:
98         force_delete = csar_id.endswith("force")
99         if force_delete:
100             csar_id = csar_id[:-5]
101         job_id = str(uuid.uuid4())
102         sdc_nf_package.SdcNfPkgDeleteThread(csar_id, job_id, force_delete).start()
103         ret = [0, {"jobId": job_id}]
104         normal_status = status.HTTP_202_ACCEPTED
105     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
106     if ret[0] != 0:
107         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
108     return Response(data=ret[1], status=normal_status)
109
110
111 ####################################################################################################
112 @api_view(http_method_names=['POST'])
113 def ns_on_boarding(request, *args, **kwargs):
114     csar_id = ignore_case_get(request.data, "csarId")
115     logger.info("Enter %s, method is %s, csar_id is %s", fun_name(), request.method, csar_id)
116     ret = ns_package.ns_on_boarding(csar_id)
117     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
118     if ret[0] != 0:
119         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
120     return Response(data=ret[1], status=status.HTTP_202_ACCEPTED)
121
122
123 @api_view(http_method_names=['GET', 'DELETE'])
124 def ns_access_csar(request, *args, **kwargs):
125     csar_id = ignore_case_get(kwargs, "csarId")
126     logger.info("Enter %s, method is %s, csar_id is %s", fun_name(), request.method, csar_id)
127     ret, normal_status = None, None
128     if request.method == 'GET':
129         ret = ns_package.ns_get_csar(csar_id)
130         normal_status = status.HTTP_200_OK
131     else:
132         ret = ns_package.ns_delete_csar(csar_id)
133         normal_status = status.HTTP_202_ACCEPTED
134     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
135     if ret[0] != 0:
136         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
137     return Response(data=ret[1], status=normal_status)
138
139
140 @api_view(http_method_names=['DELETE'])
141 def ns_delete_pending_csar(request, *args, **kwargs):
142     csar_id = ignore_case_get(kwargs, "csarId")
143     logger.info("Enter %s, method is %s, csar_id is %s", fun_name(), request.method, csar_id)
144     ret = ns_package.ns_delete_pending_csar(csar_id)
145     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
146     if ret[0] != 0:
147         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
148     return Response(data=ret[1], status=status.HTTP_202_ACCEPTED)
149
150
151 @api_view(http_method_names=['PUT'])
152 def ns_set_state_csar(request, *args, **kwargs):
153     csar_id = ignore_case_get(kwargs, "csarId")
154     operation = ignore_case_get(kwargs, "operation")
155     logger.info("Enter %s, method is %s, csar_id is %s, operation is %s", fun_name(), request.method, csar_id, operation)
156     ret = ns_package.ns_set_state_csar(csar_id, operation)
157     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
158     if ret[0] != 0:
159         return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
160     return Response(data=ret[1], status=status.HTTP_202_ACCEPTED)
161
162
163 #################################################################################################################
164 @api_view(http_method_names=['POST', 'GET'])
165 def nf_on_boarding(request, *args, **kwargs):
166     logger.info("Enter %s%s, method is %s", fun_name(), request.data, request.method)
167     if request.method == 'GET':
168         ret = nf_package.NfPackage().get_csars()
169         logger.debug("csars=%s", str(ret))
170         return Response(data=ret, status=status.HTTP_200_OK)
171     csar_id = ignore_case_get(request.data, "csarId")
172     vim_ids = ignore_case_get(request.data, "vimIds")
173     lab_vim_id = ignore_case_get(request.data, "labVimId")
174     job_id = str(uuid.uuid4())
175     nf_package.NfOnBoardingThread(csar_id, vim_ids, lab_vim_id, job_id).start()
176     ret = {"jobId": job_id}
177     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
178     return Response(data=ret, status=status.HTTP_202_ACCEPTED)
179
180
181 @api_view(http_method_names=['GET', 'DELETE'])
182 def nf_access_csar(request, *args, **kwargs):
183     logger.info("Enter %s%s, method is %s", fun_name(), args, request.method)
184     csar_id = ignore_case_get(kwargs, "csarId")
185     if request.method == 'GET':
186         ret = nf_package.NfPackage().get_csar(csar_id)
187         logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
188         if ret[0] != 0:
189             return Response(data={'error': ret[1]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
190         return Response(data=ret[1], status=status.HTTP_200_OK)
191     # NF package deleting
192     job_id = str(uuid.uuid4())
193     nf_package.NfPkgDeleteThread(csar_id, job_id).start()
194     ret = {"jobId": job_id}
195     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
196     return Response(data=ret, status=status.HTTP_202_ACCEPTED)
197
198
199 @api_view(http_method_names=['DELETE'])
200 def nf_delete_pending_csar(request, *args, **kwargs):
201     logger.info("Enter %s%s, method is %s", fun_name(), args, request.method)
202     csar_id = ignore_case_get(kwargs, "csarId")
203     job_id = str(uuid.uuid4())
204     nf_package.NfPkgDeletePendingThread(csar_id, job_id).start()
205     ret = {"jobId": job_id}
206     logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
207     return Response(data=ret, status=status.HTTP_202_ACCEPTED)