refactor job url const 57/91057/1
authormaopengzhang <zhang.maopeng1@zte.com.cn>
Tue, 9 Jul 2019 03:00:17 +0000 (11:00 +0800)
committermaopengzhang <zhang.maopeng1@zte.com.cn>
Tue, 9 Jul 2019 03:00:17 +0000 (11:00 +0800)
refactor job url const

Change-Id: I7d3ca0fcd3f26b6c87cb06874b627393a690140a
Issue-ID: VFC-1431
Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
lcm/jobs/const.py
lcm/jobs/tests/tests.py
lcm/jobs/views.py
lcm/ns/biz/ns_instantiate_flow.py
lcm/ns/biz/ns_terminate.py
lcm/ns_vnfs/biz/verify_vnfs.py
lcm/workflows/build_in.py
lcm/workflows/graphflow/task/lcm_async_rest_task.py
lcm/workflows/tests.py

index c4185ab..c0612b6 100644 (file)
@@ -11,6 +11,6 @@
 # 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.
-from lcm.pub.config.config import MSB_BASE_URL
 
-JOB_INSTANCE_URI = MSB_BASE_URL + '/api/nslcm/v1/jobs/%s'
+JOB_INSTANCE_URI = '/api/nslcm/v1/jobs/%s'
+JOB_INSTANCE_RESPONSE_ID_URI = '/api/nslcm/v1/jobs/%s?responseId=%s'
index 2de0c2c..7a1ef1a 100644 (file)
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 from django.test import TestCase
+from lcm.jobs.const import JOB_INSTANCE_URI
 from lcm.jobs.enum import JOB_ACTION, JOB_STATUS, JOB_TYPE
 from lcm.jobs.tests import UPDATE_JOB_DICT, UPDATE_JOB_BAD_REQ_DICT
 from lcm.pub.database.models import JobModel, JobStatusModel
@@ -42,7 +43,7 @@ class JobsViewTest(TestCase):
                        progress=20,
                        descp='Finish to instantiate NS.',
                        errcode="0").save()
-        response = self.client.get("/api/nslcm/v1/jobs/%s" % self.job_id)
+        response = self.client.get(JOB_INSTANCE_URI % self.job_id)
         self.assertEqual(status.HTTP_200_OK, response.status_code, response.data)
         self.assertIn('jobId', response.data)
         self.assertIn('responseDescriptor', response.data)
@@ -50,7 +51,7 @@ class JobsViewTest(TestCase):
 
     def test_query_ns_job_not_existed(self):
         job_id = 'test_job_id_not_existed'
-        response = self.client.get("/api/nslcm/v1/jobs/%s" % job_id)
+        response = self.client.get(JOB_INSTANCE_URI % job_id)
         self.assertEqual(status.HTTP_200_OK, response.status_code)
         self.assertIn('jobId', response.data)
         self.assertNotIn('responseDescriptor', response.data)
@@ -84,7 +85,8 @@ class JobsViewTest(TestCase):
                        progress=100,
                        descp='Finish to instantiate NS.',
                        errcode="0").save()
-        response = self.client.get("/api/nslcm/v1/jobs/%s?responseId=2" % self.job_id)
+        url = JOB_INSTANCE_URI % self.job_id + "?responseId=2"
+        response = self.client.get(url)
         self.assertEqual(status.HTTP_200_OK, response.status_code)
         self.assertEqual(self.job_id, response.data.get('jobId'))
         self.assertIn('responseDescriptor', response.data)
@@ -104,11 +106,11 @@ class JobsViewTest(TestCase):
             progress=20,
             descp='NS instantiation progress is 20%.',
             errcode="0").save()
-        response = self.client.post("/api/nslcm/v1/jobs/%s" % self.job_id, format='json', data=UPDATE_JOB_DICT)
+        response = self.client.post(JOB_INSTANCE_URI % self.job_id, format='json', data=UPDATE_JOB_DICT)
         self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
 
     def test_update_job_not_existed(self):
-        response = self.client.post("/api/nslcm/v1/jobs/%s" % self.job_id, format='json', data=UPDATE_JOB_DICT)
+        response = self.client.post(JOB_INSTANCE_URI % self.job_id, format='json', data=UPDATE_JOB_DICT)
         self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code)
 
     def test_update_job_with_bad_req(self):
@@ -124,5 +126,5 @@ class JobsViewTest(TestCase):
             progress=20,
             descp='NS instantiation progress is 20%.',
             errcode="0").save()
-        response = self.client.post("/api/nslcm/v1/jobs/%s" % self.job_id, format='json', data=UPDATE_JOB_BAD_REQ_DICT)
+        response = self.client.post(JOB_INSTANCE_URI % self.job_id, format='json', data=UPDATE_JOB_BAD_REQ_DICT)
         self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code)
index 2518b3c..71306c1 100644 (file)
@@ -88,9 +88,10 @@ class JobView(APIView):
             if jobs[-1].errcode != JOB_ERROR_CODE.ERROR:
                 job_up_req = JobUpdReq(**request.data)
                 desc = job_up_req.desc
-                errcode = JOB_ERROR_CODE.NO_ERROR if job_up_req.errcode in ('true', 'active') else JOB_ERROR_CODE.ERROR
-                logger.debug("errcode=%s", errcode)
-                JobUtil.add_job_status(job_id, job_up_req.progress, desc, error_code=errcode)
+                no_err_list = ('true', 'active', '0')
+                err_code = JOB_ERROR_CODE.NO_ERROR if job_up_req.errcode in no_err_list else JOB_ERROR_CODE.ERROR
+                logger.debug("errcode=%s", err_code)
+                JobUtil.add_job_status(job_id, job_up_req.progress, desc, error_code=err_code)
             job_update_resp = JobUpdResp('ok')
             resp_serializer = JobUpdRespSerializer(job_update_resp)
             logger.debug("Leave JobView::post, response=%s", resp_serializer.data)
index 0605751..a247be3 100644 (file)
@@ -16,7 +16,7 @@ import json
 import logging
 import traceback
 from threading import Thread
-
+from lcm.jobs.const import JOB_INSTANCE_URI
 from lcm.pub.utils.syscomm import fun_name
 from lcm.pub.utils.values import ignore_case_get
 from lcm.pub.utils import restcall
@@ -173,7 +173,7 @@ def post_deal(ns_inst_id, status):
 
 def update_job(job_id, progress, errcode, desc):
     logger.debug("job_id %s" % job_id)
-    uri = "api/nslcm/v1/jobs/{jobId}".format(jobId=job_id)
+    uri = JOB_INSTANCE_URI % job_id
     data = json.JSONEncoder().encode({
         "progress": progress,
         "errcode": errcode,
index b2776a6..53973d3 100644 (file)
@@ -17,6 +17,7 @@ import threading
 import time
 import traceback
 
+from lcm.jobs.const import JOB_INSTANCE_RESPONSE_ID_URI
 from lcm.pub.database.models import NSInstModel, VLInstModel, FPInstModel, NfInstModel
 from lcm.pub.exceptions import NSLCMException
 from lcm.pub.msapi.nslcm import call_from_ns_cancel_resource
@@ -169,7 +170,7 @@ class TerminateNsService(threading.Thread):
         while count < retry_count:
             count = count + 1
             time.sleep(interval_second)
-            uri = "/api/nslcm/v1/jobs/%s?responseId=%s" % (vnf_job_id, response_id)
+            uri = JOB_INSTANCE_RESPONSE_ID_URI % (vnf_job_id, response_id)
             ret = restcall.req_by_msb(uri, "GET")
             if ret[0] != 0:
                 logger.error("Failed to query job: %s:%s", ret[2], ret[1])
index 55f80e1..386af33 100644 (file)
@@ -17,7 +17,7 @@ import os
 import threading
 import traceback
 import time
-
+from lcm.jobs.const import JOB_INSTANCE_RESPONSE_ID_URI
 from lcm.pub.exceptions import NSLCMException
 from lcm.pub.utils.jobutil import JobUtil
 from lcm.jobs.enum import JOB_TYPE, JOB_PROGRESS, JOB_ACTION
@@ -136,7 +136,7 @@ class VerifyVnfs(threading.Thread):
         while count < retry_count:
             count = count + 1
             time.sleep(interval_second)
-            ret = req_by_msb("/api/nslcm/v1/jobs/%s?responseId=%s" % (job_id, response_id), "GET")
+            ret = req_by_msb(JOB_INSTANCE_RESPONSE_ID_URI % (job_id, response_id), "GET")
             if ret[0] != 0:
                 logger.error("Failed to query job: %s:%s", ret[2], ret[1])
                 continue
index c508545..14ce073 100644 (file)
@@ -16,7 +16,8 @@ import logging
 import traceback
 from threading import Thread
 import time
-
+from lcm.jobs.const import JOB_INSTANCE_URI, JOB_INSTANCE_RESPONSE_ID_URI
+from lcm.jobs.enum import JOB_ERROR_CODE
 from lcm.pub.utils.syscomm import fun_name
 from lcm.pub.utils.values import ignore_case_get
 from lcm.pub.utils import restcall
@@ -61,40 +62,40 @@ def run_ns_instantiate(input_data, occ_id):
     sdnc_id = ignore_case_get(input_data, "sdnControllerId")
     g_jobs_status[job_id] = [1 for i in range(vnf_count)]
     try:
-        update_job(job_id, 10, "true", "Start to create VL")
+        update_job(job_id, 10, JOB_ERROR_CODE.NO_ERROR, "Start to create VL")
         for i in range(vl_count):
             create_vl(ns_inst_id, i + 1, nsd_json, ns_param_json)
 
-        update_job(job_id, 30, "true", "Start to create VNF")
+        update_job(job_id, 30, JOB_ERROR_CODE.NO_ERROR, "Start to create VNF")
         jobs = [create_vnf(ns_inst_id, i + 1, vnf_param_json) for i in range(vnf_count)]
         wait_until_jobs_done(job_id, jobs)
 
         [confirm_vnf_status(inst_id) for inst_id, _, _ in jobs]
 
-        update_job(job_id, 50, "true", "Start to create PNF")
+        update_job(job_id, 50, JOB_ERROR_CODE.NO_ERROR, "Start to create PNF")
         create_pnf(pnf_param_json)
 
-        update_job(job_id, 70, "true", "Start to create SFC")
+        update_job(job_id, 70, JOB_ERROR_CODE.NO_ERROR, "Start to create SFC")
         g_jobs_status[job_id] = [1 for i in range(sfc_count)]
         jobs = [create_sfc(ns_inst_id, i + 1, nsd_json, sdnc_id) for i in range(sfc_count)]
         wait_until_jobs_done(job_id, jobs)
 
         [confirm_sfc_status(inst_id) for inst_id, _, _ in jobs]
 
-        update_job(job_id, 90, "true", "Start to post deal")
+        update_job(job_id, 90, JOB_ERROR_CODE.NO_ERROR, "Start to post deal")
         post_deal(ns_inst_id, "true")
 
-        update_job(job_id, 100, "true", "Create NS successfully.")
+        update_job(job_id, 100, JOB_ERROR_CODE.NO_ERROR, "Create NS successfully.")
         NsLcmOpOcc.update(occ_id, "COMPLETED")
         ns_instantiate_ok = True
     except NSLCMException as e:
         logger.error("Failded to Create NS: %s", e.args[0])
-        update_job(job_id, JOB_ERROR, "255", "Failded to Create NS.")
+        update_job(job_id, JOB_ERROR, JOB_ERROR_CODE.ERROR, "Failded to Create NS.")
         NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.args[0])
         post_deal(ns_inst_id, "false")
     except Exception as e:
         logger.error(traceback.format_exc())
-        update_job(job_id, JOB_ERROR, "255", "Failded to Create NS.")
+        update_job(job_id, JOB_ERROR, JOB_ERROR_CODE.ERROR, "Failded to Create NS.")
         NsLcmOpOcc.update(occ_id, operationState="FAILED", error=e.args[0])
         post_deal(ns_inst_id, "false")
     finally:
@@ -181,7 +182,7 @@ def post_deal(ns_inst_id, status):
 
 
 def update_job(job_id, progress, errcode, desc):
-    uri = "api/nslcm/v1/jobs/{jobId}".format(jobId=job_id)
+    uri = JOB_INSTANCE_URI % job_id
     data = json.JSONEncoder().encode({
         "progress": progress,
         "errcode": errcode,
@@ -211,7 +212,7 @@ class JobWaitThread(Thread):
         while count < self.retry_count:
             count = count + 1
             time.sleep(self.interval_second)
-            uri = "/api/nslcm/v1/jobs/%s?responseId=%s" % (self.job_id, response_id)
+            uri = JOB_INSTANCE_RESPONSE_ID_URI % (self.job_id, response_id)
             ret = restcall.req_by_msb(uri, "GET")
             if ret[0] != 0:
                 logger.error("Failed to query job: %s:%s", ret[2], ret[1])
index 2e3b606..39fde43 100644 (file)
@@ -14,6 +14,7 @@
 
 import logging
 import json
+from lcm.jobs.const import JOB_INSTANCE_URI
 from lcm.workflows.graphflow.task.async_rest_task import ASyncRestTask
 from lcm.pub.utils import restcall
 
@@ -26,7 +27,7 @@ class LcmASyncRestTask(ASyncRestTask):
 
     def __init__(self, *args):
         super(LcmASyncRestTask, self).__init__(*args)
-        self.job_url = "/api/nslcm/v1/jobs/%s"
+        # self.job_url = JOB_INSTANCE_URI
 
     def call_rest(self, url, method, content=None):
         ret = restcall.req_by_msb(url, method, content)
@@ -37,7 +38,7 @@ class LcmASyncRestTask(ASyncRestTask):
         logger.debug("get_ext_status %s", self.key)
         job_status = None
         if job_id:
-            url = "/api/nslcm/v1/jobs/%s" % job_id
+            url = JOB_INSTANCE_URI % job_id
             status, job_result = self.call_rest(url, self.GET)
             if status in self.STATUS_OK:
                 progress = job_result["responseDescriptor"]["progress"]
index 08e3477..460e351 100644 (file)
@@ -22,8 +22,8 @@ from rest_framework import status
 
 from lcm.pub.database.models import WFPlanModel
 from lcm.pub.utils import restcall
-from lcm.workflows import build_in
 from lcm.ns.biz.ns_lcm_op_occ import NsLcmOpOcc
+from lcm.workflows import build_in
 
 
 class WorkflowViewTest(unittest.TestCase):
@@ -127,7 +127,7 @@ class WorkflowViewTest(unittest.TestCase):
                     "progress": 100,
                     "statusDescription": "ok"
                 }}), '200'],
-            "api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
+            "/api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
                 [0, '{}', '201'],
             "api/nslcm/v1/ns/{nsInstanceId}/postdeal".format(nsInstanceId=ns_inst_id):
                 [0, '{}', '201']
@@ -161,7 +161,7 @@ class WorkflowViewTest(unittest.TestCase):
                     "detail": "vl1",
                     "vlId": "1"
                 }), '201'],
-            "api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
+            "/api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
                 [0, '{}', '201'],
             "api/nslcm/v1/ns/{nsInstanceId}/postdeal".format(nsInstanceId=ns_inst_id):
                 [0, '{}', '201']
@@ -210,7 +210,7 @@ class WorkflowViewTest(unittest.TestCase):
                     "progress": 100,
                     "statusDescription": "ok"
                 }}), '200'],
-            "api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
+            "/api/nslcm/v1/jobs/{jobId}".format(jobId=job_id):
                 [0, '{}', '201'],
             "api/nslcm/v1/ns/{nsInstanceId}/postdeal".format(nsInstanceId=ns_inst_id):
                 [0, '{}', '201']