Beispiel #1
0
    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')
Beispiel #3
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'])
Beispiel #5
0
 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'])
Beispiel #6
0
    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()
Beispiel #7
0
    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)
Beispiel #8
0
 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'])
Beispiel #9
0
 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)