Remove use of redis db 30/101030/1
authorhongyuzhao <zhao.hongyu@zte.com.cn>
Mon, 3 Feb 2020 09:35:20 +0000 (17:35 +0800)
committerhongyuzhao <zhao.hongyu@zte.com.cn>
Mon, 3 Feb 2020 09:39:21 +0000 (17:39 +0800)
Change-Id: I714c9f36ef9d6710bf8e3e21c023435d6fcc2a0a
Issue-ID: MODELING-307
Signed-off-by: hongyuzhao <zhao.hongyu@zte.com.cn>
catalog/jobs/job_get.py
catalog/jobs/tests/tests.py
catalog/jobs/views.py
catalog/pub/utils/jobutil.py
catalog/settings.py

index 32ee243..c59a060 100644 (file)
@@ -43,4 +43,5 @@ class GetJobInfoService(object):
                         "statusDescription": job.descp,
                         "errorCode": job.errcode,
                         "responseId": job.indexid} for job in jobs[1:]]}}
+        logger.debug(ret)
         return ret
index 460c854..9499cd0 100644 (file)
@@ -13,6 +13,7 @@
 # limitations under the License.
 from django.test import TestCase, Client
 from rest_framework import status
+from catalog.pub.utils.jobutil import JobUtil
 
 from catalog.pub.database.models import JobModel, JobStatusModel
 
@@ -38,3 +39,23 @@ class JobsViewTest(TestCase):
         response = self.client.get("/api/catalog/v1/jobs/%s" % job_id)
         self.assertIn('jobId', response.data)
         self.assertNotIn('responseDescriptor', response.data)
+
+    def test_job_normal_multijobstatus(self):
+        JobUtil.create_job(
+            inst_type='test_new_job_id',
+            jobaction='test_jobaction',
+            inst_id="test_jobinstid",
+            job_id=self.job_id)
+        response = self.client.post("/api/catalog/v1/jobs/%s" % self.job_id, {"progress": "10", "desc": "10%", "errcode": "true"},
+                                    format='json')
+        print(response)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        response = self.client.post("/api/catalog/v1/jobs/%s" % self.job_id, {"progress": "50", "desc": "50%", "errcode": "true"},
+                                    format='json')
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        response = self.client.post("/api/catalog/v1/jobs/%s" % self.job_id, {"progress": "100", "desc": "100%", "errcode": "true"},
+                                    format='json')
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
+        response = self.client.get("/api/catalog/v1/jobs/%s" % self.job_id)
+        print(response)
+        self.assertEqual(status.HTTP_200_OK, response.status_code)
index dd5299c..8dbfc8b 100644 (file)
@@ -82,7 +82,7 @@ class JobView(APIView):
 
         request_serializer = PostJobRequestSerializer(data=request.data)
         validataion_error = self.handleValidatonError(request_serializer, True)
-        if not validataion_error:
+        if validataion_error:
             return validataion_error
 
         requestData = request_serializer.data
index 3d79c7a..5c35350 100644 (file)
@@ -18,7 +18,6 @@ import traceback
 from functools import reduce
 
 from catalog.pub.database.models import JobStatusModel, JobModel
-from catalog.pub.utils import idutil
 
 logger = logging.getLogger(__name__)
 
@@ -96,7 +95,12 @@ class JobUtil(object):
         try:
             int_progress = int(progress)
             job_status = JobStatusModel()
-            job_status.indexid = int(idutil.get_auto_id(job_id))
+            jobstatuslist = JobStatusModel.objects.filter(jobid=job_id)
+            indexid = 0
+            for jobstatus in jobstatuslist:
+                if jobstatus.indexid > indexid:
+                    indexid = jobstatus.indexid
+            job_status.indexid = indexid + 1
             job_status.jobid = job_id
             job_status.status = "processing"
             job_status.progress = int_progress
index 40c7565..c291c65 100644 (file)
@@ -16,9 +16,9 @@ import os
 import sys
 import platform
 
-import catalog.pub.redisco
+import catalog.pub.redisco
 
-from catalog.pub.config.config import REDIS_HOST, REDIS_PORT, REDIS_PASSWD
+from catalog.pub.config.config import REDIS_HOST, REDIS_PORT, REDIS_PASSWD
 from catalog.pub.config.config import DB_NAME, DB_IP, DB_USER, DB_PASSWD, DB_PORT
 from catalog.pub.config import config as pub_config
 from logging import config as log_config
@@ -124,7 +124,7 @@ DATABASES = {
 #     'NAME': ':memory:',
 # }
 
-catalog.pub.redisco.connection_setup(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWD, db=0)
+catalog.pub.redisco.connection_setup(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWD, db=0)
 # CACHE_BACKEND = 'redis_cache.cache://%s@%s:%s' % (REDIS_PASSWD, REDIS_HOST, REDIS_PORT)
 
 TIME_ZONE = 'UTC'
@@ -203,9 +203,3 @@ if 'test' in sys.argv:
         TEST_OUTPUT_VERBOSE = True
         TEST_OUTPUT_DESCRIPTIONS = True
         TEST_OUTPUT_DIR = 'test-reports'
-
-    import mock
-    from catalog.pub.utils import idutil
-
-    idutil.get_auto_id = mock.Mock()
-    idutil.get_auto_id.return_value = 1