def test_query_multiple_nsds_normal(self):
        expected_reponse_data = [
            copy.deepcopy(self.expected_nsd_info),
            copy.deepcopy(self.expected_nsd_info)
        ]
        expected_reponse_data[0]['id'] = '0'
        expected_reponse_data[0]['nsdId'] = '0'
        expected_reponse_data[1]['id'] = '1'
        expected_reponse_data[1]['nsdId'] = '1'

        user_defined_data = json.JSONEncoder().encode(self.user_defined_data)
        for i in range(2):
            NSPackageModel(nsPackageId=str(i),
                           onboardingState='CREATED',
                           operationalState='DISABLED',
                           usageState='NOT_IN_USE',
                           userDefinedData=user_defined_data,
                           nsdId=str(i)).save()

        response = self.client.get('/api/nsd/v1/ns_descriptors', format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(expected_reponse_data, response.data)

        expected_reponse_data = [copy.deepcopy(self.expected_nsd_info)]
        expected_reponse_data[0]['id'] = '1'
        expected_reponse_data[0]['nsdId'] = '1'
        response = self.client.get('/api/nsd/v1/ns_descriptors?nsdId=1',
                                   format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(expected_reponse_data, response.data)
    def test_nsd_content_upload_normal(self, mock_parse_nsd):
        user_defined_data_json = json.JSONEncoder().encode(
            self.user_defined_data)
        mock_parse_nsd.return_value = json.JSONEncoder().encode(nsd_data)
        VnfPackageModel(vnfPackageId="111", vnfdId="vcpe_vfw_zte_1_0").save()

        PnfPackageModel(pnfPackageId="112", pnfdId="m6000_s").save()

        NSPackageModel(
            nsPackageId='22',
            operationalState='DISABLED',
            usageState='NOT_IN_USE',
            userDefinedData=user_defined_data_json,
        ).save()

        with open('nsd_content.txt', 'wt') as fp:
            fp.write('test')
        with open('nsd_content.txt', 'rt') as fp:
            resp = self.client.put(
                "/api/nsd/v1/ns_descriptors/22/nsd_content",
                {'file': fp},
            )
        file_content = ''
        with open(os.path.join(GENERICPARSER_ROOT_PATH,
                               '22/nsd_content.txt')) as fp:
            data = fp.read()
            file_content = '%s%s' % (file_content, data)
        ns_pkg = NSPackageModel.objects.filter(nsPackageId="22")
        self.assertEqual("VCPE_NS", ns_pkg[0].nsdId)
        self.assertEqual(PKG_STATUS.ONBOARDED, ns_pkg[0].onboardingState)
        self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(None, resp.data)
        self.assertEqual(file_content, 'test')
        os.remove('nsd_content.txt')
Пример #3
0
 def test_ns_pkg_normal_delete(self):
     NSPackageModel(nsPackageId="8", nsdId="2").save()
     resp = self.client.delete("/api/parser/v1/nspackages/8")
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     self.assertEqual("success", resp.data["status"])
     self.assertEqual("Delete CSAR(8) successfully.",
                      resp.data["statusDescription"])
Пример #4
0
 def test_ns_pkg_distribute_when_ns_exists(self):
     NSPackageModel(nsPackageId="1", nsdId="2").save()
     resp = self.client.post("/api/parser/v1/nspackages", {"csarId": "1"},
                             format='json')
     self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
     self.assertEqual("failed", resp.data["status"])
     self.assertEqual("NS CSAR(1) already exists.",
                      resp.data["statusDescription"])
Пример #5
0
 def test_nsd_parse_normal(self, mock_parse_nsd):
     NSPackageModel(nsPackageId="18", nsdId="12").save()
     mock_parse_nsd.return_value = json.JSONEncoder().encode({"a": "b"})
     req_data = {"csarId": "18", "inputs": []}
     resp = self.client.post("/api/parser/v1/parsernsd",
                             req_data,
                             format='json')
     self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
     self.assertEqual({"model": '{"a": "b"}'}, resp.data)
Пример #6
0
 def test_ns_pkg_get_all(self):
     NSPackageModel(nsPackageId="13",
                    nsdId="2",
                    nsdDesginer="2",
                    nsdVersion="2",
                    nsPackageUri="13.csar",
                    nsdModel="").save()
     NSPackageModel(nsPackageId="14",
                    nsdId="3",
                    nsdDesginer="3",
                    nsdVersion="3",
                    nsPackageUri="14.csar",
                    nsdModel="").save()
     resp = self.client.get("/api/parser/v1/nspackages")
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     expect_data = [{
         "csarId": "13",
         "packageInfo": {
             "csarName": "13.csar",
             "nsdProvider": "2",
             "nsdId": "2",
             "nsPackageId": "13",
             "downloadUrl":
             "http://127.0.0.1:8806/static/genericparser/13/13.csar",
             "nsdModel": "",
             "nsdVersion": "2",
             "nsdInvariantId": None
         }
     }, {
         "csarId": "14",
         "packageInfo": {
             "csarName": "14.csar",
             "nsdProvider": "3",
             "nsdId": "3",
             "nsPackageId": "14",
             "downloadUrl":
             "http://127.0.0.1:8806/static/genericparser/14/14.csar",
             "nsdModel": "",
             "nsdVersion": "3",
             "nsdInvariantId": None
         }
     }]
     self.assertEqual(expect_data, resp.data)
    def test_delete_single_nsd_normal(self):
        user_defined_data = json.JSONEncoder().encode(self.user_defined_data)
        NSPackageModel(nsPackageId='21',
                       operationalState='DISABLED',
                       usageState='NOT_IN_USE',
                       userDefinedData=user_defined_data,
                       nsdModel='test').save()

        response = self.client.delete("/api/nsd/v1/ns_descriptors/21",
                                      format='json')
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(None, response.data)
    def test_nsd_content_partial_download_normal(self):
        with open('nsd_content.txt', 'wt') as fp:
            fp.writelines('test1')
            fp.writelines('test2')
        NSPackageModel(nsPackageId='23',
                       onboardingState='ONBOARDED',
                       localFilePath='nsd_content.txt').save()

        response = self.client.get("/api/nsd/v1/ns_descriptors/23/nsd_content",
                                   HTTP_RANGE='5-10',
                                   format='json')
        partial_file_content = ''
        for data in response.streaming_content:
            partial_file_content = '%s%s' % (partial_file_content, data)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual("b'test2'", partial_file_content)
        os.remove('nsd_content.txt')
    def test_query_single_nsd_normal(self):
        expected_reponse_data = copy.deepcopy(self.expected_nsd_info)
        expected_reponse_data['id'] = '22'

        user_defined_data = json.JSONEncoder().encode(self.user_defined_data)
        NSPackageModel(nsPackageId='22',
                       onboardingState='CREATED',
                       operationalState='DISABLED',
                       usageState='NOT_IN_USE',
                       userDefinedData=user_defined_data,
                       nsdModel=json.JSONEncoder().encode(
                           self.nsdModel)).save()

        response = self.client.get('/api/nsd/v1/ns_descriptors/22',
                                   format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(expected_reponse_data, response.data)
Пример #10
0
 def test_ns_pkg_distribute_when_nsd_already_exists(self, mock_parse_nsd,
                                                    mock_download_artifacts,
                                                    mock_call_req):
     mock_parse_nsd.return_value = json.JSONEncoder().encode(self.nsd_data)
     mock_download_artifacts.return_value = "/home/vcpe.csar"
     mock_call_req.return_value = [
         0,
         json.JSONEncoder().encode([{
             "uuid": "1",
             "toscaModelURL": "https://127.0.0.1:1234/sdc/v1/vcpe.csar",
             "distributionStatus": "DISTRIBUTED"
         }]), '200'
     ]
     NSPackageModel(nsPackageId="2", nsdId="VCPE_NS").save()
     resp = self.client.post("/api/parser/v1/nspackages", {"csarId": "1"},
                             format='json')
     self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
     self.assertEqual("failed", resp.data["status"])
     self.assertEqual("NSD(VCPE_NS) already exists.",
                      resp.data["statusDescription"])