def upload_vnf_package_from_uri(self, context, vnf_package, address_information, user_name=None, password=None): body = {"address_information": address_information} (location, size, checksum, multihash, loc_meta) = glance_store.store_csar(context, vnf_package.id, body) vnf_package.onboarding_state = ( fields.PackageOnboardingStateType.PROCESSING) vnf_package.algorithm = CONF.vnf_package.hashing_algorithm vnf_package.hash = multihash vnf_package.location_glance_store = location vnf_package.save() zip_path = glance_store.load_csar(vnf_package.id, location) vnf_data, flavours = csar_utils.load_csar_data(context.elevated(), vnf_package.id, zip_path) self._onboard_vnf_package(context, vnf_package, vnf_data, flavours) vnf_package.onboarding_state = ( fields.PackageOnboardingStateType.ONBOARDED) vnf_package.operational_state = ( fields.PackageOperationalStateType.ENABLED) vnf_package.save()
def test_load_csar_data_without_policies(self, mock_extract_csar_zip_file): file_path = self._get_csar_file_path("csar_without_policies.zip") vnf_data, flavours = csar_utils.load_csar_data(self.context, constants.UUID, file_path) self.assertIsNone(flavours[0].get('instantiation_levels')) self.assertEqual(vnf_data['descriptor_version'], '1.0')
def __load_csar(cls, context, vnf_package): location = vnf_package.location_glance_store zip_path = glance_store.load_csar(vnf_package.id, location) vnf_data, flavours = csar_utils.load_csar_data(context.elevated(), vnf_package.id, zip_path) return vnf_data, flavours
def test_load_csar_data(self, mock_extract_csar_zip_file): file_path = self._get_csar_file_path("sample_vnf_package_csar.zip") vnf_data, flavours = csar_utils.load_csar_data(self.context, constants.UUID, file_path) self.assertEqual(vnf_data['descriptor_version'], '1.0') self.assertEqual(vnf_data['vnfm_info'], ['Tacker']) self.assertEqual(flavours[0]['flavour_id'], 'simple') self.assertIsNotNone(flavours[0]['sw_images'])
def test_load_csar_data(self, mock_extract_csar_zip_file): file_path, _ = utils.create_csar_with_unique_vnfd_id( './tacker/tests/etc/samples/etsi/nfv/vnfpkgm1') self.addCleanup(os.remove, file_path) vnf_data, flavours = csar_utils.load_csar_data( self.context, constants.UUID, file_path) self.assertEqual(vnf_data['descriptor_version'], '1.0') self.assertEqual(vnf_data['vnfm_info'], ['Tacker']) self.assertEqual(flavours[0]['flavour_id'], 'simple') self.assertIsNotNone(flavours[0]['sw_images'])
def upload_vnf_package_content(self, context, vnf_package): location = vnf_package.location_glance_store zip_path = glance_store.load_csar(vnf_package.id, location) vnf_data, flavours = csar_utils.load_csar_data(context.elevated(), vnf_package.id, zip_path) self._onboard_vnf_package(context, vnf_package, vnf_data, flavours) vnf_package.onboarding_state = ( fields.PackageOnboardingStateType.ONBOARDED) vnf_package.operational_state = ( fields.PackageOperationalStateType.ENABLED) vnf_package.save()
def test_load_csar_data_with_artifacts_short_notation( self, mock_extract_csar_zip_file): file_path = "./tacker/tests/etc/samples/etsi/nfv/" \ "csar_with_short_notation_for_artifacts" zip_name, uniqueid = utils.create_csar_with_unique_vnfd_id(file_path) vnf_data, flavours, vnf_artifacts = csar_utils.load_csar_data( self.context, constants.UUID, zip_name) self.assertEqual(vnf_data['descriptor_version'], '1.0') self.assertEqual(vnf_data['vnfm_info'], ['Tacker']) self.assertEqual(flavours[0]['flavour_id'], 'simple') self.assertIsNotNone(flavours[0]['sw_images']) os.remove(zip_name)
def test_load_csar_data_meta_in_manifest_with_vnf_artifact( self, mock_extract_csar_zip_file): file_path = utils.create_csar_with_unique_artifact( './tacker/tests/etc/samples/etsi/nfv/' 'sample_vnf_package_csar_meta_in_manifest') self.addCleanup(os.remove, file_path) vnf_data, flavours, vnf_artifacts = csar_utils.load_csar_data( self.context, constants.UUID, file_path) self.assertEqual(vnf_data['descriptor_version'], '1.0') self.assertEqual(vnf_data['vnfm_info'], ['Tacker']) self.assertEqual(flavours[0]['flavour_id'], 'simple') self.assertIsNotNone(flavours[0]['sw_images']) self.assertIsNotNone(vnf_artifacts) self.assertIsNotNone(vnf_artifacts[0]['Source']) self.assertIsNotNone(vnf_artifacts[0]['Hash'])
def test_load_csar_data_with_unit_conversion(self, mock_extract_csar_zip_file): file_path, _ = utils.create_csar_with_unique_vnfd_id( './tacker/tests/etc/samples/etsi/nfv/sample_vnfpkg_tosca_vnfd') self.addCleanup(os.remove, file_path) vnf_data, flavours, vnf_artifact = csar_utils.load_csar_data( self.context, constants.UUID, file_path) self.assertEqual(vnf_data['descriptor_version'], '1.0') self.assertEqual(vnf_data['vnfm_info'], ['Tacker']) self.assertEqual(flavours[0]['flavour_id'], 'simple') self.assertIsNotNone(flavours[0]['sw_images']) # 'size', 'min_disk' and 'min_ram' values from sample VNFD will # be converted to Bytes self.assertEqual(flavours[0]['sw_images'][0]['min_disk'], 1000000000) self.assertEqual(flavours[0]['sw_images'][0]['size'], 1879048192) self.assertEqual(flavours[0]['sw_images'][1]['min_disk'], 2000000000) self.assertEqual(flavours[0]['sw_images'][1]['size'], 2000000000) self.assertEqual(flavours[0]['sw_images'][1]['min_ram'], 8590458880)