Пример #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()
Пример #2
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
Пример #3
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()
Пример #4
0
    def _get_csar_path(self, vnf_package):
        csar_path = os.path.join(CONF.vnf_package.vnf_package_csar_path,
                                 vnf_package.id)

        if not os.path.isdir(csar_path):
            location = vnf_package.location_glance_store
            try:
                zip_path = glance_store.load_csar(vnf_package.id, location)
                csar_utils.extract_csar_zip_file(zip_path, csar_path)
            except (store_exceptions.GlanceStoreException) as e:
                exc_msg = encodeutils.exception_to_unicode(e)
                msg = (_("Exception raised from glance store can be "
                         "unrecoverable if it is not related to connection"
                         " error. Error: %s.") % exc_msg)
                raise exceptions.FailedToGetVnfArtifact(error=msg)
        return csar_path