コード例 #1
0
ファイル: nf_package.py プロジェクト: openov2/nfvo
    def delete_pending_csar(self):
        JobUtil.create_job(
            inst_type='nf',
            jobaction='delete_pending',
            inst_id=self.csar_id,
            job_id=self.job_id)
        JobUtil.add_job_status(self.job_id, 5, "Start to delete pending CSAR(%s)." % self.csar_id)

        if not NfPackageModel.objects.filter(nfpackageid=self.csar_id):
            JobUtil.add_job_status(self.job_id, 100, "Delete pending CSAR(%s) successfully." % self.csar_id)
            return

        csar_info = query_csar_from_catalog(self.csar_id)

        process_state = ignore_case_get(csar_info, "processState")
        if process_state == P_STATUS_DELETING:
            JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) is deleting now." % self.csar_id)
            return

        deletion_pending = ignore_case_get(csar_info, "deletionPending")
        if deletion_pending.lower() == "false":
            JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) need not to be deleted." % self.csar_id)
            return

        if NfInstModel.objects.filter(package_id=self.csar_id):
            JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) is in using, cannot be deleted." % self.csar_id)
            return

        NfPackage().delete_csar(self.csar_id, self.job_id)
コード例 #2
0
 def test_create_job(self):
     job_id = "5"
     JobModel.objects.filter().delete()
     JobUtil.create_job(inst_type="1",
                        jobaction="2",
                        inst_id="3",
                        user="******",
                        job_id=5,
                        res_name="6")
     self.assertEqual(1, len(JobModel.objects.filter(jobid=job_id)))
     JobModel.objects.filter().delete()
コード例 #3
0
 def test_ns_update_asynchronous_tasks_when_ns_does_not_exist(self):
     ns_instance_id = 'test_ns_update_002'
     job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.UPDATE, ns_instance_id)
     ns_heal_service = NSUpdateService(ns_instance_id, UPDATE_NS_DICT, 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')
コード例 #4
0
 def test_instantiate_vnf_when_unexpected_exception(self, mock_call,
                                                    mock_call_req):
     NfInstModel.objects.create(nfinstid='1111',
                                nf_name='vFW_01',
                                package_id='222',
                                version='',
                                vendor='',
                                netype='',
                                vnfd_model='',
                                status='NOT_INSTANTIATED',
                                nf_desc='vFW in Nanjing TIC Edge',
                                vnfdid='111',
                                create_time=now_time())
     r1_get_vnfpackage_by_vnfdid = [
         0, json.JSONEncoder().encode(vnfpackage_info), '200'
     ]
     r2_apply_grant_result = [
         0, json.JSONEncoder().encode(self.grant_result), '200'
     ]
     mock_call_req.side_effect = [
         r1_get_vnfpackage_by_vnfdid, r2_apply_grant_result
     ]
     mock_call.side_effect = [
         c1_data_get_tenant_id, c2_data_create_volume, c3_data_get_volume
     ]
     self.nf_inst_id = '1111'
     self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
     JobUtil.add_job_status(self.job_id, 0, 'INST_VNF_READY')
     data = inst_req_data
     InstantiateVnf(data, nf_inst_id=self.nf_inst_id,
                    job_id=self.job_id).run()
     self.assert_job_result(self.job_id, 255, 'unexpected exception')
コード例 #5
0
 def test_instantiate_operating_conflict(self, mock_call_req):
     NfInstModel.objects.create(nfinstid='1111',
                                nf_name='vFW_01',
                                package_id='222',
                                version='',
                                vendor='',
                                netype='',
                                vnfd_model='',
                                status='NOT_INSTANTIATED',
                                nf_desc='vFW in Nanjing TIC Edge',
                                vnfdid='111',
                                create_time=now_time())
     r1_get_vnfpackage_by_vnfdid = [
         0, json.JSONEncoder().encode(vnfpackage_info), '200'
     ]
     mock_call_req.side_effect = [r1_get_vnfpackage_by_vnfdid]
     self.nf_inst_id = '1111'
     self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
     JobUtil.add_job_status(self.job_id, 0, 'INST_VNF_READY')
     VNFLcmOpOccModel.objects.create(
         vnf_instance_id=self.nf_inst_id,
         id=self.job_id,
         operation=const.OPERATION_TYPE.INSTANTIATE,
         operation_state=const.OPERATION_STATE_TYPE.PROCESSING)
     response = self.client.post(
         '/api/vnflcm/v1/vnf_instances/1111/instantiate',
         data=inst_req_data,
         format='json')
     self.assertEqual(status.HTTP_409_CONFLICT, response.status_code)
コード例 #6
0
ファイル: views.py プロジェクト: lremember/VFC-commit
    def post(self, request, vnfinstid):
        logger.debug("NfTerminate--post::> %s, %s", vnfinstid, request.data)

        req_serializer = TerminateVnfReqSerializer(data=request.data)
        if not req_serializer.is_valid():
            logger.error(req_serializer.errors)

        vnf_inst_id = vnfinstid
        terminationType = ignore_case_get(request.data, 'terminationType')
        gracefulTerminationTimeout = ignore_case_get(request.data, 'gracefulTerminationTimeout')
        job_id = JobUtil.create_job(JOB_TYPE.VNF, JOB_ACTION.TERMINATE, vnf_inst_id)
        data = {'terminationType': terminationType, 'gracefulTerminationTimeout': gracefulTerminationTimeout}
        logger.debug("data=%s", data)
        try:
            TerminateVnfs(data, vnf_inst_id, job_id).start()
        except Exception as e:
            logger.error(e.args[0])
            return Response(data={'error': '%s' % e.args[0]}, status=status.HTTP_409_CONFLICT)
        rsp = {'jobId': job_id}

        resp_serializer = TerminateVnfRespSerializer(data=rsp)
        if not resp_serializer.is_valid():
            logger.error(resp_serializer.errors)

        return Response(data=rsp, status=status.HTTP_202_ACCEPTED)
コード例 #7
0
ファイル: test_ns_heal.py プロジェクト: lremember/VFC-commit
 def setUp(self):
     self.ns_inst_id = '1'
     self.nf_inst_id = '1'
     self.nf_uuid = '1-1-1'
     self.job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.HEAL,
                                      self.ns_inst_id)
     self.client = APIClient()
     NSInstModel.objects.filter().delete()
     NfInstModel.objects.filter().delete()
     NSInstModel(id=self.ns_inst_id, name='ns_name', status='null').save()
     NfInstModel.objects.create(nfinstid=self.nf_inst_id,
                                nf_name='name_1',
                                vnf_id='1',
                                vnfm_inst_id='1',
                                ns_inst_id=self.ns_inst_id,
                                max_cpu='14',
                                max_ram='12296',
                                max_hd='101',
                                max_shd='20',
                                max_net=10,
                                status='null',
                                mnfinstid=self.nf_uuid,
                                package_id='pkg1',
                                vnfd_model=VNFD_MODEL_DICT)
     VNFCInstModel(nfinstid=self.nf_inst_id,
                   vmid='vmid_01',
                   vduid='vduid_01').save()
     VmInstModel(vmid='vmid_01', vmname='vmname_01').save()
コード例 #8
0
ファイル: views.py プロジェクト: lremember/VFC-commit
    def post(self, request):
        logger.debug("NfGrant--post::> %s" % request.data)
        try:
            req_serializer = GrantVnfReqSerializer(data=request.data)
            if not req_serializer.is_valid():
                raise Exception(req_serializer.errors)

            vnf_inst_id = ignore_case_get(request.data, 'vnfInstanceId')
            job_id = JobUtil.create_job(JOB_TYPE.VNF, JOB_ACTION.GRANT, vnf_inst_id)
            rsp = GrantVnfs(request.data, job_id).send_grant_vnf_to_resMgr()
            """
            rsp = {
                "vim": {
                    "vimid": ignore_case_get(ignore_case_get(request.data, 'additionalparam'), 'vimid'),
                    "accessinfo": {
                        "tenant": "admin"
                    }
                }
            }
            """
            # resp_serializer = GrantVnfRespSerializer(data=rsp)
            # if not resp_serializer.is_valid():
            # raise Exception(resp_serializer.errors)

            return Response(data=rsp, status=status.HTTP_201_CREATED)
        except Exception as e:
            logger.error(e.args[0])
            logger.error(traceback.format_exc())
            return Response(data={'error': '%s' % e.args[0]}, status=status.HTTP_409_CONFLICT)
コード例 #9
0
 def setUp(self):
     self.url = "/api/nslcm/v1/ns_instances/%s/heal"
     self.ns_inst_id = str(uuid.uuid4())
     self.nf_inst_id = '1'
     self.nf_uuid = '1-1-1'
     self.job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.HEAL, self.ns_inst_id)
     self.client = Client()
     model = json.dumps(VNFD_MODEL_DICT)
     NSInstModel.objects.filter().delete()
     NfInstModel.objects.filter().delete()
     NSInstModel(id=self.ns_inst_id, name="ns_name", status='null').save()
     NfInstModel.objects.create(
         nfinstid=self.nf_inst_id,
         nf_name='name_1',
         vnf_id='1',
         vnfm_inst_id='1',
         ns_inst_id=self.ns_inst_id,
         max_cpu='14',
         max_ram='12296',
         max_hd='101',
         max_shd="20",
         max_net=10,
         status='null',
         mnfinstid=self.nf_uuid,
         package_id='pkg1',
         vnfd_model=model)
コード例 #10
0
 def test_instantiate_vnf_when_already_instantiated(self):
     NfInstModel.objects.create(nfinstid='1111',
                                nf_name='vFW_01',
                                package_id='222',
                                version='',
                                vendor='',
                                netype='',
                                vnfd_model='',
                                status='INSTANTIATED',
                                nf_desc='vFW in Nanjing TIC Edge',
                                vnfdid='111',
                                create_time=now_time())
     self.nf_inst_id = '1111'
     self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
     JobUtil.add_job_status(self.job_id, 0, 'INST_VNF_READY')
     jobs = JobStatusModel.objects.filter(jobid=self.job_id,
                                          progress=0,
                                          descp='INST_VNF_READY')
     self.assertEqual(1, len(jobs))
     data = inst_req_data
     InstantiateVnf(data, nf_inst_id=self.nf_inst_id,
                    job_id=self.job_id).run()
     self.assert_job_result(
         self.job_id, 255,
         'VNF instantiationState is not NOT_INSTANTIATED.')
コード例 #11
0
 def test_instantiate_vnf_when_get_packageinfo_by_csarid_failed(
         self, mock_call_req):
     NfInstModel.objects.create(nfinstid='1111',
                                nf_name='vFW_01',
                                package_id='222',
                                version='',
                                vendor='',
                                netype='',
                                vnfd_model='',
                                status='NOT_INSTANTIATED',
                                nf_desc='vFW in Nanjing TIC Edge',
                                vnfdid='111',
                                create_time=now_time())
     r1_get_vnfpackage_by_vnfdid = [
         1, json.JSONEncoder().encode(vnfpackage_info), '200'
     ]
     mock_call_req.side_effect = [r1_get_vnfpackage_by_vnfdid]
     self.nf_inst_id = '1111'
     self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
     JobUtil.add_job_status(self.job_id, 0, 'INST_VNF_READY')
     data = inst_req_data
     InstantiateVnf(data, nf_inst_id=self.nf_inst_id,
                    job_id=self.job_id).run()
     self.assert_job_result(self.job_id, 255,
                            'Failed to query vnf CSAR(111) from catalog.')
コード例 #12
0
ファイル: tests_ns_terminate.py プロジェクト: openov2/nfvo
    def test_terminate_vnf(self, mock_call_req):
        job_id = JobUtil.create_job("VNF", JOB_TYPE.TERMINATE_VNF, self.nf_inst_id)

        mock_vals = {
            "/openoapi/nslcm/v1/ns/vls/1":
                [0, json.JSONEncoder().encode({"jobId": self.job_id}), '200'],
            "/openoapi/nslcm/v1/ns/sfcs/1":
                [0, json.JSONEncoder().encode({"jobId": self.job_id}), '200'],
            "/openoapi/nslcm/v1/ns/vnfs/1":
                [0, json.JSONEncoder().encode({}), '200'],
            "/openoapi/ztevmanagerdriver/v1/jobs/" + self.job_id + "&responseId=0":
                [0, json.JSONEncoder().encode({"jobid": self.job_id,
                                               "responsedescriptor": {"progress": "100",
                                                                      "status": JOB_MODEL_STATUS.FINISHED,
                                                                      "responseid": "3",
                                                                      "statusdescription": "creating",
                                                                      "errorcode": "0",
                                                                      "responsehistorylist": [
                                                                          {"progress": "0",
                                                                           "status": JOB_MODEL_STATUS.PROCESSING,
                                                                           "responseid": "2",
                                                                           "statusdescription": "creating",
                                                                           "errorcode": "0"}]}}), '200']}

        def side_effect(*args):
            return mock_vals[args[4]]

        mock_call_req.side_effect = side_effect

        TerminateNsService(self.nf_inst_id, "forceful", "600", job_id).start()
        nsinst = NSInstModel.objects.get(id=self.ns_inst_id)
        if nsinst:
            self.assertTrue(1, 0)
        else:
            self.assertTrue(1, 1)
コード例 #13
0
ファイル: nf_package.py プロジェクト: openov2/nfvo
 def on_boarding(self):
     JobUtil.create_job(
         inst_type='nf',
         jobaction='on_boarding',
         inst_id=self.csar_id,
         job_id=self.job_id)
     JobUtil.add_job_status(self.job_id, 5, "Start CSAR(%s) onBoarding." % self.csar_id)
     self.on_boarding_pre_deal()
     self.nf_package_save()
     self.need_rollback_when_failed = True
     nf_images = self.download_nf_images()
     self.upload_nf_images(nf_images)
     set_csar_state(self.csar_id, "onBoardState", STATUS_ONBOARDED)
     set_csar_state(self.csar_id, "processState", P_STATUS_NORMAL)
     set_csar_state(self.csar_id, "operationalState", P_STATUS_ENABLED)
     JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) onBoarding successfully." % self.csar_id)
コード例 #14
0
    def test_ns_terminate_asynchronous_tasks_when_no_new_progress(
            self, mock_request, mock_sleep):
        ns_instance_id = 'test_ns_terminate_when_no_new_progress'
        NSInstModel(id=ns_instance_id).save()
        NfInstModel(ns_inst_id=ns_instance_id).save()
        mock_request.side_effect = [
            ({
                'status': '200'
            }, '{"jobId": "zzz"}'.encode('utf-8')),
            ({
                'status': '200'
            }, '{}'.encode('utf-8')),
            ({
                'status': '200'
            }, '{"responseDescriptor": {"progress": 100, "responseId": 1, '
             '"statusDescription": ""}}'.encode('utf-8'))
        ]
        mock_sleep.return_value = None

        job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.TERMINATE,
                                    ns_instance_id)
        TerminateNsService(ns_instance_id, job_id, TERMINATE_NS_DICT).run()
        self.assertEqual(
            JobModel.objects.filter(jobid=job_id).first().progress,
            JOB_PROGRESS.FINISHED)
コード例 #15
0
ファイル: nf_package.py プロジェクト: openov2/nfvo
    def delete_csar(self):
        JobUtil.create_job(
            inst_type='nf',
            jobaction='delete',
            inst_id=self.csar_id,
            job_id=self.job_id)
        JobUtil.add_job_status(self.job_id, 5, "Start to delete CSAR(%s)." % self.csar_id)
        if query_csar_from_catalog(self.csar_id, "processState") == P_STATUS_DELETING:
            JobUtil.add_job_status(self.job_id, 100, "CSAR(%s) is deleting now." % self.csar_id)
            return

        if NfInstModel.objects.filter(package_id=self.csar_id):
            ret = set_csar_state(self.csar_id, "deletionPending", True)
            JobUtil.add_job_status(self.job_id, 100, ret[1])
            return

        NfPackage().delete_csar(self.csar_id, self.job_id)
コード例 #16
0
 def test_ns_terminate_asynchronous_tasks_with_none(self):
     ns_instance_id = 'test_ns_terminate_002'
     job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.TERMINATE,
                                 ns_instance_id)
     TerminateNsService(ns_instance_id, job_id, TERMINATE_NS_DICT).run()
     self.assertEqual(
         JobModel.objects.filter(jobid=job_id).first().progress,
         JOB_PROGRESS.FINISHED)
コード例 #17
0
ファイル: verify_vnfs.py プロジェクト: openov2/nfvo
 def run(self):
     try:
         self.verify_config = self.load_config()
         JobUtil.create_job("VNF", JOB_TYPE.CREATE_VNF, self.job_id, 'vnfsdk', self.job_id)
         self.do_on_boarding()
         self.do_inst_vnf()
         self.do_func_test()
         self.verify_ok = True
     except NSLCMException as e:
         self.update_job(JOB_ERROR, e.message)
     except:
         logger.error(traceback.format_exc())
         self.update_job(JOB_ERROR, 'Unknown error in vnf verify.')
     finally:
         logger.warn("Ignore terminate vnf operation")
         if self.verify_ok:
             self.update_job(100, "Ignore terminate vnf operation.")
コード例 #18
0
 def __init__(self, vnf_instance_id, data):
     super(NFManualScaleService, self).__init__()
     self.vnf_instance_id = vnf_instance_id
     self.data = data
     self.job_id = JobUtil.create_job(JOB_TYPE.VNF, JOB_ACTION.MANUAL_SCALE,
                                      vnf_instance_id)
     self.nf_scale_params = []
     self.m_nf_inst_id = ''
     self.vnfm_inst_id = ''
コード例 #19
0
 def insert_new_ns(self):
     ns_inst_id = str(uuid.uuid4())
     job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.MANUAL_SCALE,
                                 self.ns_inst_id)
     package_id = "23"
     NSInstModel(id=ns_inst_id,
                 name="abc",
                 nspackage_id=package_id,
                 nsd_id=package_id).save()
     return ns_inst_id, job_id
コード例 #20
0
 def __init__(self, vnf_instance_id, data):
     super(NFHealService, self).__init__()
     self.vnf_instance_id = vnf_instance_id
     self.data = data
     self.job_id = JobUtil.create_job(JOB_TYPE.VNF, JOB_ACTION.HEAL, vnf_instance_id)
     self.nf_model = {}
     self.nf_additional_params = {}
     self.nf_heal_params = {}
     self.m_nf_inst_id = ''
     self.vnfm_inst_id = ''
コード例 #21
0
ファイル: create_vnfs.py プロジェクト: openov2/nfvo
def prepare_create_params():
    nf_inst_id = str(uuid.uuid4())
    NfInstModel(nfinstid=nf_inst_id,
                status=VNF_STATUS.INSTANTIATING,
                create_time=now_time(),
                lastuptime=now_time()).save()
    job_id = JobUtil.create_job(INST_TYPE_NAME.VNF, JOB_TYPE.CREATE_VNF,
                                nf_inst_id)
    JobUtil.add_job_status(job_id, 0, 'create vnf record in database.', 0)
    return nf_inst_id, job_id
コード例 #22
0
 def __init__(self, vnf_instance_id, data):
     super(NFManualScaleService, self).__init__()
     self.vnf_instance_id = vnf_instance_id
     self.data = data
     self.job_id = JobUtil.create_job("NF", JOB_TYPE.MANUAL_SCALE_VNF,
                                      vnf_instance_id)
     self.scale_vnf_data = ''
     self.nf_model = {}
     self.nf_scale_params = []
     self.m_nf_inst_id = ''
     self.vnfm_inst_id = ''
コード例 #23
0
def prepare_create_params():
    nf_inst_id = str(uuid.uuid4())
    NfInstModel(nfinstid=nf_inst_id,
                status=VNF_STATUS.INSTANTIATING,
                create_time=now_time(),
                lastuptime=now_time()).save()
    job_id = JobUtil.create_job(JOB_TYPE.VNF, JOB_ACTION.CREATE, nf_inst_id)
    JobUtil.add_job_status(job_id, JOB_PROGRESS.STARTED,
                           'create vnf record in database.',
                           JOB_ERROR_CODE.NO_ERROR)
    return nf_inst_id, job_id
コード例 #24
0
    def test_terminate_ns_service(self, mock_call_req):
        job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.TERMINATE,
                                    self.ns_inst_id)

        mock_vals = {
            "/api/nslcm/v1/ns/ns_vls/1":
            [0, json.JSONEncoder().encode({"jobId": self.job_id}), '200'],
            "/api/nslcm/v1/ns/ns_sfcs/1":
            [0, json.JSONEncoder().encode({"jobId": self.job_id}), '200'],
            "/api/nslcm/v1/ns/ns_vnfs/1":
            [0, json.JSONEncoder().encode({}), '200'],
            "/api/ztevnfmdriver/v1/jobs/" + self.job_id + "&responseId=0": [
                0,
                json.JSONEncoder().encode({
                    "jobid": self.job_id,
                    "responsedescriptor": {
                        "progress":
                        "100",
                        "status":
                        JOB_MODEL_STATUS.FINISHED,
                        "responseid":
                        "3",
                        "statusdescription":
                        "creating",
                        "errorcode":
                        "0",
                        "responsehistorylist": [{
                            "progress": "0",
                            "status": JOB_MODEL_STATUS.PROCESSING,
                            "responseid": "2",
                            "statusdescription": "creating",
                            "errorcode": "0"
                        }]
                    }
                }), '200'
            ],
            "/api/catalog/v1/ns_descriptors/None":
            [0, json.JSONEncoder().encode({}), '202'],
        }

        def side_effect(*args):
            return mock_vals[args[4]]

        mock_call_req.side_effect = side_effect
        req_data = {
            "terminationType": "FORCEFUL",
            "gracefulTerminationTimeout": "600"
        }
        TerminateNsService(self.ns_inst_id, job_id, req_data).run()
        nsinst = NSInstModel.objects.get(id=self.ns_inst_id)
        if nsinst:
            self.assertTrue(1, 0)
        else:
            self.assertTrue(1, 1)
コード例 #25
0
 def setUp(self):
     self.url = "/api/nslcm/v1/ns_instances/%s/scale"
     self.ns_inst_id = str(uuid.uuid4())
     self.job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.MANUAL_SCALE,
                                      self.ns_inst_id)
     self.package_id = "7"
     self.client = APIClient()
     NSInstModel(id=self.ns_inst_id,
                 name="abc",
                 nspackage_id=self.package_id,
                 nsd_id="111").save()
コード例 #26
0
    def test_heal_vnf_success_reboot(self, mock_call, mock_call_req):
        vim_cache = {}
        res_cache = {}

        NfInstModel.objects.create(nfinstid='1111',
                                   nf_name='2222',
                                   vnfminstid='1',
                                   package_id='todo',
                                   version='',
                                   vendor='',
                                   netype='',
                                   vnfd_model=json.dumps(vnfd_model_dict),
                                   status='INSTANTIATED',
                                   nf_desc='',
                                   vnfdid='',
                                   vnfSoftwareVersion='',
                                   vnfConfigurableProperties='todo',
                                   localizationLanguage='EN_US',
                                   create_time=now_time(),
                                   resInfo=json.dumps(res_cache),
                                   vimInfo=json.dumps(vim_cache))

        VmInstModel.objects.create(vmid="1",
                                   vimid="vimid_1",
                                   resourceid="1",
                                   insttype=0,
                                   instid="1111",
                                   vmname="vduinstname",
                                   is_predefined=1,
                                   tenant="tenantname_1",
                                   operationalstate=1)
        t1_apply_grant_result = [0, json.JSONEncoder().encode(self.grant_result), '200']
        t2_lcm_notify_result = [0, json.JSONEncoder().encode(''), '200']
        t3_action_get_vm = [0, json.JSONEncoder().encode(self.getvmResult), '202']
        t4_action_vm_start_reboot = [0, json.JSONEncoder().encode(''), '202']
        mock_call_req.side_effect = [t1_apply_grant_result, t2_lcm_notify_result, t3_action_get_vm, t4_action_vm_start_reboot]
        mock_call.side_effect = [self.getvmResult, None]
        req_data = {
            "cause": "Error",
            "additionalParams": {
                "action": "vmReset",
                "affectedvm": {
                    "vmid": "1",
                    "vduid": "vdu1Id",
                    "vmname": "vduinstname"
                }
            }
        }
        self.nf_inst_id = '1111'
        self.job_id = JobUtil.create_job('NF', 'HEAL', self.nf_inst_id)
        JobUtil.add_job_status(self.job_id, 0, "HEAL_VNF_READY")
        HealVnf(req_data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
        self.assert_job_result(self.job_id, 100, "Heal Vnf success.")
コード例 #27
0
 def test_instantiate_vnf_when_inst_id_not_exist(self):
     self.nf_inst_id = str(uuid.uuid4())
     self.job_id = JobUtil.create_job('NF', 'CREATE', self.nf_inst_id)
     JobUtil.add_job_status(self.job_id, 0, "INST_VNF_READY")
     jobs = JobStatusModel.objects.filter(
         jobid=self.job_id,
         progress=0,
         descp="INST_VNF_READY")
     self.assertEqual(1, len(jobs))
     data = inst_req_data
     InstVnf(data, nf_inst_id=self.nf_inst_id, job_id=self.job_id).run()
     self.assert_job_result(self.job_id, 255, "VNF nf_inst_id is not exist.")
コード例 #28
0
ファイル: test_ns_manual_scale.py プロジェクト: openov2/nfvo
    def setUp(self):
        self.nsd_id = str(uuid.uuid4())
        self.ns_package_id = str(uuid.uuid4())
        self.ns_inst_id = str(uuid.uuid4())
        self.job_id = JobUtil.create_job("NS", JOB_TYPE.MANUAL_SCALE_VNF,
                                         self.ns_inst_id)
        NSDModel(id=self.ns_package_id, nsd_id=self.nsd_id, name='name').save()

        self.client = Client()
        self.context = '{"vnfs": ["a", "b"], "sfcs": ["c"], "vls": ["d", "e", "f"]}'
        NSInstModel(id=self.ns_inst_id,
                    name="abc",
                    nspackage_id="7",
                    nsd_id="111").save()
コード例 #29
0
 def post(self, request_paras, vnfinstid):
     logger.debug("VnfTerminateView--post::> %s, %s", vnfinstid, request_paras.data)
     vnf_inst_id = vnfinstid
     terminationType = ignore_case_get(request_paras.data, 'terminationType')
     gracefulTerminationTimeout = ignore_case_get(request_paras.data, 'gracefulTerminationTimeout')
     job_id = JobUtil.create_job("VNF", JOB_TYPE.TERMINATE_VNF, vnf_inst_id)
     data = {'terminationType': terminationType, 'gracefulTerminationTimeout': gracefulTerminationTimeout}
     logger.debug("data=%s", data)
     try:
         TerminateVnfs(data, vnf_inst_id, job_id).start()
     except Exception as e:
         return Response(data={'error': '%s' % e.message}, status=status.HTTP_409_CONFLICT)
     rsp = {'jobId': job_id}
     return Response(data=rsp, status=status.HTTP_201_CREATED)
コード例 #30
0
    def post(self, request, ns_instance_id):
        logger.debug("Enter UpdateNSView::post %s, %s", request.data, ns_instance_id)
        req_serializer = UpdateNsReqSerializer(data=request.data)
        if not req_serializer.is_valid():
            raise BadRequestException(req_serializer.errors)

        job_id = JobUtil.create_job(JOB_TYPE.NS, JOB_ACTION.UPDATE, ns_instance_id)
        NSUpdateService(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 UpdateNSView::post ret=%s", {'jobId': job_id})
        return Response(data={'jobId': job_id}, status=status.HTTP_202_ACCEPTED)