def test_heal_when_healnsdata_and_healvnfdata_parameters_does_not_exist( self): ns_heal_service = NSHealService(self.nf_inst_id, {}, self.job_id) ns_heal_service.run() self.assertEqual( JobModel.objects.filter(jobid=self.job_id).first().progress, JOB_PROGRESS.ERROR) self.assertEqual( NSLcmOpOccModel.objects.filter( id=ns_heal_service.occ_id).first().operation_state, 'FAILED')
def test_heal_ns_thread_when_the_degree_of_healing_does_not_exist(self): heal_ns_json = {'healNsData': {'degreeHealing': 'xxx'}} ns_heal_service = NSHealService(self.ns_inst_id, heal_ns_json, self.job_id) ns_heal_service.run() self.assertEqual( JobModel.objects.filter(jobid=self.job_id).first().progress, JOB_PROGRESS.ERROR) self.assertEqual( NSLcmOpOccModel.objects.filter( id=ns_heal_service.occ_id).first().operation_state, 'FAILED')
def test_heal_vnf_thread_when_vnfinstanceid_does_not_exist(self): heal_vnf_json = {'healVnfData': {'vnfInstanceId': ''}} ns_heal_service = NSHealService(self.ns_inst_id, heal_vnf_json, self.job_id) ns_heal_service.run() self.assertEqual( JobModel.objects.filter(jobid=self.job_id).first().progress, JOB_PROGRESS.ERROR) self.assertEqual( NSLcmOpOccModel.objects.filter( id=ns_heal_service.occ_id).first().operation_state, 'FAILED')
def test_heal_ns_thread_when_nf_heal_failed(self, mock_get, mock_sleep, mock_run): mock_run.return_value = None mock_sleep.return_value = None mock_get.return_value = JobModel(progress=JOB_PROGRESS.ERROR) heal_ns_json = HEAL_NS_DICT.copy() heal_ns_json['healNsData']['vnfInstanceId'] = self.nf_inst_id ns_heal_service = NSHealService(self.ns_inst_id, heal_ns_json, self.job_id) ns_heal_service.run() self.assertEqual( JobModel.objects.filter(jobid=self.job_id).first().progress, JOB_PROGRESS.ERROR) self.assertEqual( NSLcmOpOccModel.objects.filter( id=ns_heal_service.occ_id).first().operation_state, 'FAILED')
def test_heal_ns_thread_when_nsinsts_does_not_exist(self): NSInstModel(id='text_nsinsts_does_not_exist', name='ns_name', status='null').save() heal_ns_json = HEAL_NS_DICT.copy() heal_ns_json['healNsData'][ 'vnfInstanceId'] = 'text_nsinsts_does_not_exist' job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.HEAL, 'text_nsinsts_does_not_exist') ns_heal_service = NSHealService('text_nsinsts_does_not_exist', heal_ns_json, job_id) ns_heal_service.run() self.assertEqual( JobModel.objects.filter(jobid=job_id).first().progress, JOB_PROGRESS.ERROR) self.assertEqual( NSLcmOpOccModel.objects.filter( id=ns_heal_service.occ_id).first().operation_state, 'FAILED')
def test_heal_when_healnsdata_and_healvnfdata_parameters_exist_together( self): data = { 'healNsData': { 'degreeHealing': 'HEAL_RESTORE' }, 'healVnfData': { 'vnfInstanceId': 'default' } } ns_heal_service = NSHealService(self.nf_inst_id, data, self.job_id) ns_heal_service.run() self.assertEqual( JobModel.objects.filter(jobid=self.job_id).first().progress, JOB_PROGRESS.ERROR) self.assertEqual( NSLcmOpOccModel.objects.filter( id=ns_heal_service.occ_id).first().operation_state, 'FAILED')
def post(self, request, ns_instance_id): logger.debug( "Enter HealNSView::post nsInstanceId:%s, request.data:%s" % (ns_instance_id, request.data)) req_serializer = HealNsReqSerializer(data=request.data) if not req_serializer.is_valid(): logger.error("request.data is not valid,error: %s" % req_serializer.errors) raise BadRequestException(req_serializer.errors) job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.HEAL, ns_instance_id) ns_heal_service = NSHealService(ns_instance_id, request.data, job_id) ns_heal_service.start() response = Response(data={}, status=status.HTTP_202_ACCEPTED) logger.debug("Location: %s" % ns_heal_service.occ_id) response["Location"] = NS_OCC_BASE_URI % ns_heal_service.occ_id logger.debug("Leave NSHealView") return response
def test_heal_ns_thread(self, mock_get, mock_sleep, mock_run): mock_run.return_value = None mock_sleep.return_value = None mock_get.return_value = JobModel(progress=JOB_PROGRESS.FINISHED) heal_ns_json = HEAL_NS_DICT.copy() heal_ns_json['healNsData']['vnfInstanceId'] = self.nf_inst_id NSHealService(self.ns_inst_id, heal_ns_json, self.job_id).run() self.assertEqual( NSInstModel.objects.get(id=self.ns_inst_id).status, NS_INST_STATUS.ACTIVE)
def post(self, request, ns_instance_id): logger.debug("Enter HealNSView::post %s, %s", ns_instance_id, request.data) req_serializer = _HealNsReqSerializer(data=request.data) if not req_serializer.is_valid(): raise BadRequestException(req_serializer.errors) job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.HEAL, ns_instance_id) NSHealService(ns_instance_id, request.data, job_id).start() resp_serializer = _NsOperateJobSerializer(data={'jobId': job_id}) if not resp_serializer.is_valid(): raise NSLCMException(resp_serializer.errors) logger.debug("Leave HealNSView::post ret=%s", {'jobId': job_id}) return Response(data={'jobId': job_id}, status=status.HTTP_202_ACCEPTED)