From fc0218121a1186e849d51129f00c1b6b2e324c53 Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Tue, 14 Feb 2017 15:42:13 +0800 Subject: [PATCH] Add code of get operation status Change-Id: I6785c1223db11f3a894075e4ca0a9649b254c0f8 Issue-Id: GVNFM-5 Signed-off-by: ying.yunlong --- lcm/lcm/jobs/job_get.py | 35 +++++++++++++++++++++++++++++++++- lcm/lcm/jobs/urls.py | 12 +++++++++++- lcm/lcm/jobs/views.py | 18 ++++++++++++++++- lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py | 2 +- 4 files changed, 63 insertions(+), 4 deletions(-) diff --git a/lcm/lcm/jobs/job_get.py b/lcm/lcm/jobs/job_get.py index 650d17ec..a8a615a9 100644 --- a/lcm/lcm/jobs/job_get.py +++ b/lcm/lcm/jobs/job_get.py @@ -10,4 +10,37 @@ # distributed under the License is distributed on an "AS IS" BASIS, # 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. \ No newline at end of file +# limitations under the License. +import logging + +from lcm.pub.utils.jobutil import JobUtil + +logger = logging.getLogger(__name__) + + +class GetJobInfoService(object): + def __init__(self, job_id, response_id=0): + self.job_id = job_id + self.response_id = response_id if response_id else 0 + + def do_biz(self): + # logger.info("get job info, job_id=:%s, response_id=:%s" % (self.job_id, self.response_id)) + jobs = JobUtil.query_job_status(self.job_id, self.response_id) + if not jobs: + return {"jobId": self.job_id} + ret = { + "jobId": self.job_id, + "responseDescriptor": { + "status": jobs[0].status, + "progress": jobs[0].progress, + "statusDescription": jobs[0].descp, + "errorCode": jobs[0].errcode, + "responseId": jobs[0].indexid, + "responseHistoryList": [ + { + "status": job.status, + "progress": job.progress, + "statusDescription": job.descp, + "errorCode": job.errcode, + "responseId": job.indexid} for job in jobs[1:]]}} + return ret diff --git a/lcm/lcm/jobs/urls.py b/lcm/lcm/jobs/urls.py index 650d17ec..e05cf873 100644 --- a/lcm/lcm/jobs/urls.py +++ b/lcm/lcm/jobs/urls.py @@ -10,4 +10,14 @@ # distributed under the License is distributed on an "AS IS" BASIS, # 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. \ No newline at end of file +# limitations under the License. +from django.conf.urls import patterns, url +from rest_framework.urlpatterns import format_suffix_patterns + +from lcm.jobs.views import JobView + +urlpatterns = patterns('', + url(r'^openoapi/vnflcm/v1/jobs/(?P[0-9a-zA-Z_-]+)$', JobView.as_view()), + ) + +urlpatterns = format_suffix_patterns(urlpatterns) diff --git a/lcm/lcm/jobs/views.py b/lcm/lcm/jobs/views.py index 650d17ec..c0cd405c 100644 --- a/lcm/lcm/jobs/views.py +++ b/lcm/lcm/jobs/views.py @@ -10,4 +10,20 @@ # distributed under the License is distributed on an "AS IS" BASIS, # 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. \ No newline at end of file +# limitations under the License. +import logging + +from rest_framework.response import Response +from rest_framework.views import APIView + +from lcm.jobs.job_get import GetJobInfoService +from lcm.pub.utils.values import ignore_case_get + +logger = logging.getLogger(__name__) + + +class JobView(APIView): + def get(self, request, job_id): + response_id = ignore_case_get(request.META, 'responseId') + ret = GetJobInfoService(job_id, response_id).do_biz() + return Response(data=ret) diff --git a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py index 32f139a3..17b45baf 100644 --- a/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py +++ b/lcm/lcm/nf/vnfs/vnf_create/inst_vnf.py @@ -37,7 +37,7 @@ class InstVnf(Thread): self.nfvo_inst_id = '' self.vnfm_inst_id = '' self.vnfd_info = [] - self.inst_resource = {'volumn': [], # [{"vim_id": ignore_case_get(ret, "vim_id")},{}]11 + self.inst_resource = {'volumn': [], # [{"vim_id": ignore_case_get(ret, "vim_id")},{}] 'network': [], 'subnet': [], 'port': [], -- 2.16.6