From 3d10bac5ec6b5394d32dc6ad3b0a7e6294ea6593 Mon Sep 17 00:00:00 2001 From: hongyuzhao Date: Mon, 3 Feb 2020 17:35:20 +0800 Subject: [PATCH] Remove use of redis db Change-Id: I714c9f36ef9d6710bf8e3e21c023435d6fcc2a0a Issue-ID: MODELING-307 Signed-off-by: hongyuzhao --- catalog/jobs/job_get.py | 1 + catalog/jobs/tests/tests.py | 21 +++++++++++++++++++++ catalog/jobs/views.py | 2 +- catalog/pub/utils/jobutil.py | 8 ++++++-- catalog/settings.py | 12 +++--------- 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/catalog/jobs/job_get.py b/catalog/jobs/job_get.py index 32ee243..c59a060 100644 --- a/catalog/jobs/job_get.py +++ b/catalog/jobs/job_get.py @@ -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 diff --git a/catalog/jobs/tests/tests.py b/catalog/jobs/tests/tests.py index 460c854..9499cd0 100644 --- a/catalog/jobs/tests/tests.py +++ b/catalog/jobs/tests/tests.py @@ -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) diff --git a/catalog/jobs/views.py b/catalog/jobs/views.py index dd5299c..8dbfc8b 100644 --- a/catalog/jobs/views.py +++ b/catalog/jobs/views.py @@ -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 diff --git a/catalog/pub/utils/jobutil.py b/catalog/pub/utils/jobutil.py index 3d79c7a..5c35350 100644 --- a/catalog/pub/utils/jobutil.py +++ b/catalog/pub/utils/jobutil.py @@ -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 diff --git a/catalog/settings.py b/catalog/settings.py index 40c7565..c291c65 100644 --- a/catalog/settings.py +++ b/catalog/settings.py @@ -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 -- 2.16.6