from catalog.packages.biz.vnf_package import VnfPackage, VnfPkgUploadThread
from catalog.packages.const import PKG_STATUS
from catalog.packages.tests.const import vnfd_data
+from catalog.pub.config import config
from catalog.pub.config.config import CATALOG_ROOT_PATH
from catalog.pub.database.models import VnfPackageModel
from catalog.pub.utils import toscaparser
"operationalState": "DISABLED",
"usageState": "NOT_IN_USE",
"userDefinedData": {"a": "A"},
- "_links": None
+ "_links": {'self': {'href': config.MSB_BASE_URL + '/api/vnfpkgm/v1/vnf_packages/222'},
+ 'vnfd': {
+ 'href': config.MSB_BASE_URL + '/api/vnfpkgm/v1/vnf_packages/222/vnfd'},
+ 'packageContent': {
+ 'href': config.MSB_BASE_URL + '/api/vnfpkgm/v1/vnf_packages/222/package_content'}
+ }
}
self.assertEqual(response.data, expect_data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
"operationalState": "DISABLED",
"usageState": "NOT_IN_USE",
"userDefinedData": {"a": "A"},
- "_links": None
+ "_links": {
+ "self": {
+ "href": config.MSB_BASE_URL + "/api/vnfpkgm/v1/vnf_packages/111"
+ },
+ "vnfd": {
+ "href": config.MSB_BASE_URL + "/api/vnfpkgm/v1/vnf_packages/111/vnfd"
+ },
+ "packageContent": {
+ "href": config.MSB_BASE_URL + "/api/vnfpkgm/v1/vnf_packages/111/package_content"
+ }
+ }
},
{
"id": "222",
"operationalState": "DISABLED",
"usageState": "NOT_IN_USE",
"userDefinedData": {"a": "A"},
- "_links": None
+ "_links": {'self': {'href': config.MSB_BASE_URL + '/api/vnfpkgm/v1/vnf_packages/222'},
+ 'vnfd': {'href': config.MSB_BASE_URL + '/api/vnfpkgm/v1/vnf_packages/222/vnfd'},
+ 'packageContent': {
+ 'href': config.MSB_BASE_URL + '/api/vnfpkgm/v1/vnf_packages/222/package_content'}}
}
]
self.assertEqual(response.data, expect_data)
self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)
response = self.client.get(VNF_BASE_URL + "/222/artifacts/image1")
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
+
+ def test_upload_vnf_pkg_with_artifacts(self):
+ data = {'file': open(os.path.join(CATALOG_ROOT_PATH, "vgw.csar"), "rb")}
+ VnfPackageModel.objects.create(
+ vnfPackageId="222",
+ onboardingState="CREATED"
+ )
+ response = self.client.put("%s/222/package_content" % VNF_BASE_URL, data=data)
+ vnf_pkg = VnfPackageModel.objects.filter(vnfPackageId="222")
+ self.assertEqual(PKG_STATUS.ONBOARDED, vnf_pkg[0].onboardingState)
+ self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)
+ response = self.client.get("%s/222" % VNF_BASE_URL)
+ print(response.data)
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
+ expact_response_data = {
+ "id": "222",
+ "vnfdId": "b1bb0ce7-2222-4fa7-95ed-4840d70a1177",
+ "vnfProductName": "vcpe_vgw",
+ "vnfSoftwareVersion": "1.0",
+ "vnfdVersion": "1.0",
+ "softwareImages": None,
+ "additionalArtifacts": [
+ {
+ "artifactPath": "MainServiceTemplate.yaml",
+ "checksum": {
+ "algorithm": "Null",
+ "hash": "Null"
+ }
+ }
+ ],
+ "onboardingState": "ONBOARDED",
+ "operationalState": "ENABLED",
+ "usageState": "NOT_IN_USE",
+ "_links": {
+ "self": {
+ "href": config.MSB_BASE_URL + "/api/vnfpkgm/v1/vnf_packages/222"
+ },
+ "vnfd": {
+ "href": config.MSB_BASE_URL + "/api/vnfpkgm/v1/vnf_packages/222/vnfd"
+ },
+ "packageContent": {
+ "href": config.MSB_BASE_URL + "/api/vnfpkgm/v1/vnf_packages/222/package_content"
+ }
+ }
+ }
+ self.assertEqual(response.data, expact_response_data)