Fix pep8 error for vfc-nfvo-lcm/ns.
[vfc/nfvo/lcm.git] / lcm / ns / views.py
index 88ca542..78fc51b 100644 (file)
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+
 import json
 import logging
 import os
@@ -21,15 +23,16 @@ from rest_framework.response import Response
 from rest_framework.views import APIView
 
 from lcm.ns.ns_create import CreateNSService
+from lcm.ns.ns_delete import DeleteNsService
 from lcm.ns.ns_get import GetNSInfoService
+from lcm.ns.ns_heal import NSHealService
 from lcm.ns.ns_instant import InstantNSService
 from lcm.ns.ns_manual_scale import NSManualScaleService
-from lcm.ns.ns_terminate import TerminateNsService, DeleteNsService
+from lcm.ns.ns_terminate import TerminateNsService
 from lcm.pub.database.models import NSInstModel, ServiceBaseInfoModel
 from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE
-from lcm.pub.utils.values import ignore_case_get
 from lcm.pub.utils.restcall import req_by_msb
-from lcm.pub.exceptions import NSLCMException
+from lcm.pub.utils.values import ignore_case_get
 
 logger = logging.getLogger(__name__)
 
@@ -37,12 +40,19 @@ logger = logging.getLogger(__name__)
 class CreateNSView(APIView):
     def get(self, request):
         logger.debug("CreateNSView::get")
-        ret = GetNSInfoService().get_ns_info()
+        filter = None
+        csarId = ignore_case_get(request.META, 'csarId')
+        if csarId:
+            filter = {"csarId": csarId}
+
+        ret = GetNSInfoService(filter).get_ns_info()
         logger.debug("CreateNSView::get::ret=%s", ret)
         return Response(data=ret, status=status.HTTP_200_OK)
 
     def post(self, request):
         logger.debug("Enter CreateNS: %s", request.data)
+        if ignore_case_get(request.data, 'test') == "test":
+            return Response(data={'nsInstanceId': "test"}, status=status.HTTP_201_CREATED)
         nsd_id = ignore_case_get(request.data, 'nsdId')
         ns_name = ignore_case_get(request.data, 'nsName')
         description = ignore_case_get(request.data, 'description')
@@ -78,10 +88,25 @@ class TerminateNSView(APIView):
         return Response(data=ret, status=status.HTTP_202_ACCEPTED)
 
 
+class NSHealView(APIView):
+    def post(self, request, ns_instance_id):
+        logger.debug("Enter HealNSView::post %s", request.data)
+        job_id = JobUtil.create_job("VNF", JOB_TYPE.HEAL_VNF, ns_instance_id)
+        try:
+            NSHealService(ns_instance_id, request.data, job_id).start()
+        except Exception as e:
+            logger.error("Exception in HealNSView: %s", e.message)
+            return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+        ret = {'jobId': job_id}
+        logger.debug("Leave HealNSView::post ret=%s", ret)
+        return Response(data=ret, status=status.HTTP_202_ACCEPTED)
+
+
 class NSDetailView(APIView):
     def get(self, request, ns_instance_id):
         logger.debug("Enter NSDetailView::get ns(%s)", ns_instance_id)
-        ret = GetNSInfoService(ns_instance_id).get_ns_info()
+        ns_filter = {"ns_inst_id": ns_instance_id}
+        ret = GetNSInfoService(ns_filter).get_ns_info()
         if not ret:
             return Response(status=status.HTTP_404_NOT_FOUND)
         logger.debug("Leave NSDetailView::get::ret=%s", ret)
@@ -103,8 +128,6 @@ class SwaggerJsonView(APIView):
 
 
 class NSInstPostDealView(APIView):
-
-
     def post(self, request, ns_instance_id):
         logger.debug("Enter NSInstPostDealView::post %s, %s", request.data, ns_instance_id)
         ns_post_status = ignore_case_get(request.data, 'status')
@@ -143,7 +166,6 @@ class NSInstPostDealView(APIView):
         ret = req_by_msb(policy_engine_url, "POST", req_param)
         if ret[0] != 0:
             logger.error("Failed to send ns policy req")
-            #raise NSLCMException('Failed to send ns policy req)')
 
 
 class NSManualScaleView(APIView):
@@ -157,4 +179,4 @@ class NSManualScaleView(APIView):
             JobUtil.add_job_status(job_id, 255, 'NS scale failed: %s' % e.message)
             return Response(data={'error': 'NS scale failed: %s' % ns_instance_id},
                             status=status.HTTP_500_INTERNAL_SERVER_ERROR)
-        return Response(data={'jobId': job_id}, status=status.HTTP_202_ACCEPTED)
\ No newline at end of file
+        return Response(data={'jobId': job_id}, status=status.HTTP_202_ACCEPTED)