Example #1
0
def _destroy_vnf_resource(context, id):
    now = timeutils.utcnow()
    updated_values = {'deleted': True, 'deleted_at': now}

    api.model_query(context, models.VnfResource).\
        filter_by(id=id). \
        update(updated_values, synchronize_session=False)
Example #2
0
def _vnf_package_vnfd_delete(context, id):
    try:
        api.model_query(
            context,
            models.VnfPackageVnfd).filter_by(package_uuid=id).delete()
    except Exception:
        LOG.error("delete vnf_package_vnfd failed")
Example #3
0
def _vnf_lcm_op_occ_update(context, values):
    update = {
        'operation_state': values.operation_state,
        'state_entered_time': values.state_entered_time,
        'error_point': values.error_point,
        'updated_at': datetime.utcnow()
    }
    LOG.debug('values %s', values)
    if 'resource_changes' in values:
        if values.resource_changes:
            update.update({
                'resource_changes':
                jsonutils.dumps(values.resource_changes.to_dict())
            })
    if 'error' in values:
        if values.error:
            update.update({'error': jsonutils.dumps(values.error.to_dict())})
    if 'changed_info' in values:
        if values.changed_info:
            update.update({
                'changed_info':
                jsonutils.dumps(values.changed_info.to_dict())
            })
    api.model_query(context, models.VnfLcmOpOccs). \
        filter_by(id=values.id). \
        update(update, synchronize_session=False)
Example #4
0
def _vnfd_destroy(context, id):
    now = timeutils.utcnow()
    updated_values = {'deleted_at': now}
    try:
        api.model_query(context, vnfm_db.VNFD).\
            filter_by(id=id).\
            update(updated_values, synchronize_session=False)
    except Exception:
        LOG.info("destroy vnfdfailed")
Example #5
0
def _destroy_vnf_lcm_subscription(context, subscriptionId):
    now = timeutils.utcnow()
    updated_values = {'deleted': 1, 'deleted_at': now}
    try:
        api.model_query(context, models.VnfLcmSubscriptions). \
            filter_by(id=subscriptionId). \
            update(updated_values, synchronize_session=False)
    except Exception as e:
        raise e
Example #6
0
def _destroy_vnf_instance(context, uuid):
    now = timeutils.utcnow()
    updated_values = {'deleted': True, 'deleted_at': now}
    api.model_query(context, models.VnfInstantiatedInfo). \
        filter_by(vnf_instance_id=uuid). \
        update(updated_values, synchronize_session=False)

    api.model_query(context, models.VnfInstance).\
        filter_by(id=uuid). \
        update(updated_values, synchronize_session=False)
Example #7
0
def _vnf_package_list_by_filters(context, read_deleted=None, filters=None):
    query = api.model_query(context,
                            models.VnfPackage,
                            read_deleted=read_deleted,
                            project_only=True).options(joinedload('_metadata'))

    if filters:
        # Need to join VnfDeploymentFlavour, VnfSoftwareImage and
        # VnfSoftwareImageMetadata db table explicitly
        # only when filters contains one of the column matching
        # from VnfSoftwareImage or VnfSoftwareImageMetadata db table.
        filter_data = json.dumps(filters)
        if 'VnfSoftwareImageMetadata' in filter_data:
            query = query.join(models.VnfDeploymentFlavour).join(
                models.VnfSoftwareImage).join(models.VnfSoftwareImageMetadata)
        elif 'VnfSoftwareImage' in filter_data:
            query = query.join(models.VnfDeploymentFlavour).join(
                models.VnfSoftwareImage)

        if 'VnfPackageArtifactInfo' in filter_data:
            query = query.join(models.VnfPackageArtifactInfo)

        query = apply_filters(query, filters)

    return query.all()
Example #8
0
def _vnf_package_list(context, columns_to_join=None):
    query = api.model_query(context, models.VnfPackage, read_deleted="no",
                            project_only=True).options(joinedload('_metadata'))

    if columns_to_join:
        for column in columns_to_join:
            query = query.options(joinedload(column))

    return query.all()
Example #9
0
def _check_vnfd(context, id):
    try:
        vnfd = api.model_query(context, vnfm_db.VNFD).filter_by(id=id).first()
    except Exception:
        LOG.info("select vnfd failed")
    if vnfd:
        return "TRUE"
    else:
        return "FALSE"
Example #10
0
def _vnf_package_list_by_filters(context, read_deleted=None, **filters):
    query = api.model_query(context, models.VnfPackage,
                            read_deleted=read_deleted, project_only=True)
    for key, value in filters.items():
        filter_obj = getattr(models.VnfPackage, key)
        if key == 'deleted_at':
            query = query.filter(filter_obj >= value)
        else:
            query = query.filter(filter_obj == value)
    return query.all()
Example #11
0
def _vnf_instance_get(context, vnfd_id, columns_to_join=None):
    query = api.model_query(context,
                            models.VnfInstance,
                            read_deleted="no",
                            project_only=True).filter_by(vnfd_id=vnfd_id)

    if columns_to_join:
        for column in columns_to_join:
            query = query.options(joinedload(column))

    return query.first()
Example #12
0
def _vnf_instance_list(context, columns_to_join=None):
    query = api.model_query(context,
                            models.VnfInstance,
                            read_deleted="no",
                            project_only=True)

    if columns_to_join:
        for column in columns_to_join:
            query = query.options(joinedload(column))

    return query.all()
Example #13
0
def _get_vnfd_id(context, id):
    try:
        vnf_package_vnfd = \
            api.model_query(context, models.VnfPackageVnfd).\
            filter_by(package_uuid=id).first()
    except Exception:
        LOG.info("select vnfd_attribute failed")
    if vnf_package_vnfd:
        return vnf_package_vnfd.vnfd_id
    else:
        return None
Example #14
0
def _check_vnfd_attribute(context, id):
    try:
        vnfd_attribute = \
            api.model_query(context, vnfm_db.VNFDAttribute).\
            filter_by(vnfd_id=id).first()
    except Exception:
        LOG.info("select vnfd_attribute failed")
    if vnfd_attribute:
        return "TRUE"
    else:
        return "FALSE"
Example #15
0
def _vnf_package_vnfd_get_by_vnfdId(context, vnfdId):
    query = api.model_query(context,
                            models.VnfPackageVnfd,
                            read_deleted="no",
                            project_only=True).filter_by(vnfd_id=vnfdId)

    result = query.first()

    if not result:
        return None

    return result
Example #16
0
def _vnf_lcm_op_occs_get_by_id(context, vnf_lcm_op_occ_id):

    query = api.model_query(context, models.VnfLcmOpOccs,
                            read_deleted="no", project_only=True). \
        filter_by(id=vnf_lcm_op_occ_id)

    result = query.first()

    if not result:
        raise exceptions.NotFound(resource='table', name='vnf_lcm_op_occs')

    return result
Example #17
0
def _vnf_resource_get_by_id(context, id):

    query = api.model_query(context, models.VnfResource,
                            read_deleted="no", project_only=True). \
        filter_by(id=id)

    result = query.first()

    if not result:
        raise exceptions.VnfResourceNotFound(id=id)

    return result
Example #18
0
def _vnf_get(context, id, columns_to_join=None):
    vnf_data = api.model_query(context, vnfm_db.VNF).filter_by(
        id=id).filter_by(deleted_at='0001-01-01 00:00:00').first()
    if vnf_data:
        vnf_data = vnf_data.__dict__
        vnf_attribute_data = api.model_query(
            context,
            vnfm_db.VNFAttribute).filter_by(vnf_id=vnf_data.get('id')).first()
        vnf_data['vnf_attribute'] = vnf_attribute_data.__dict__
        vnfd_data = api.model_query(
            context,
            vnfm_db.VNFD).filter_by(id=vnf_data.get('vnfd_id')).first()
        vnf_data['vnfd'] = vnfd_data.__dict__
        vnfd_attribute_data = api.model_query(
            context, vnfm_db.VNFDAttribute).filter_by(
                vnfd_id=vnf_data.get('vnfd_id')).first()
        vnf_data['vnfd_attribute'] = vnfd_attribute_data.__dict__
    else:
        vnf_data = ""

    return vnf_data
def _vnf_sw_image_get_by_id(context, id):

    query = api.model_query(context,
                            models.VnfSoftwareImage,
                            read_deleted="no").filter_by(id=id).options(
                                joinedload('_metadata'))

    result = query.first()

    if not result:
        raise exceptions.VnfSoftwareImageNotFound(id=id)

    return result
Example #20
0
def _vnf_deployment_flavour_get_by_id(context, id, columns_to_join=None):

    query = api.model_query(context, models.VnfDeploymentFlavour,
                            read_deleted="no").filter_by(id=id)

    if columns_to_join:
        for column in columns_to_join:
            query = query.options(joinedload(column))

    result = query.first()

    if not result:
        raise exceptions.VnfDeploymentFlavourNotFound(id=id)

    return result
Example #21
0
def _get_vnf_package_vnfd(context, id, package_uuid=None, del_flg=None):
    if package_uuid and not del_flg:
        query = api.model_query(context, models.VnfPackageVnfd).filter_by(
            package_uuid=id).filter_by(deleted=0)
    elif package_uuid and del_flg:
        query = api.model_query(
            context, models.VnfPackageVnfd).filter_by(package_uuid=id)
    else:
        query = api.model_query(
            context,
            models.VnfPackageVnfd).filter_by(vnfd_id=id).filter_by(deleted=0)
    try:
        result = query.all()
        result_line = ""
        for line in result:
            result_line = line

    except Exception:
        LOG.error("select vnf_package_vnfd failed")

    if result_line:
        return result_line
    else:
        return None
Example #22
0
def _vnf_instance_get_by_id(context, vnf_instance_id, columns_to_join=None):

    query = api.model_query(context, models.VnfInstance,
                            read_deleted="no", project_only=True). \
        filter_by(id=vnf_instance_id)

    if columns_to_join:
        for column in columns_to_join:
            query = query.options(joinedload(column))

    result = query.first()

    if not result:
        raise exceptions.VnfInstanceNotFound(id=vnf_instance_id)

    return result
Example #23
0
def _vnf_package_get_by_id(context, package_uuid, columns_to_join=None):

    query = api.model_query(context, models.VnfPackage,
                            read_deleted="no", project_only=True). \
        filter_by(id=package_uuid).options(joinedload('_metadata'))

    if columns_to_join:
        for column in columns_to_join:
            query = query.options(joinedload(column))

    result = query.first()

    if not result:
        raise exceptions.VnfPackageNotFound(id=package_uuid)

    return result
Example #24
0
def _vnf_package_vnfd_get_by_id(context, vnfd_id):

    query = api.model_query(context, models.VnfPackageVnfd,
                            read_deleted="no", project_only=False). \
        filter_by(vnfd_id=vnfd_id).\
        join((models.VnfPackage, models.VnfPackage.id ==
            models.VnfPackageVnfd.package_uuid))

    if tacker.context.is_user_context(context):
        query = query.filter(models.VnfPackage.tenant_id == context.project_id)

    result = query.first()

    if not result:
        raise exceptions.VnfPackageVnfdNotFound(id=vnfd_id)

    return result
Example #25
0
def _instantiate_vnf_info_update(context, vnf_instance_id, values):
    vnf_info = api.model_query(context, models.VnfInstantiatedInfo). \
        filter_by(vnf_instance_id=vnf_instance_id).first()

    needs_create = False
    if vnf_info and vnf_info['deleted']:
        raise exceptions.VnfInstantiatedInfoNotFound(
            vnf_instance_id=vnf_instance_id)
    elif not vnf_info:
        values['vnf_instance_id'] = vnf_instance_id
        vnf_info = models.VnfInstantiatedInfo(**values)
        needs_create = True

    if needs_create:
        vnf_info.save(session=context.session)
    else:
        vnf_info.update(values)
        vnf_info.save(session=context.session)

    return vnf_info
Example #26
0
def _destroy_vnf_deployment_flavour(context, flavour_uuid):
    now = timeutils.utcnow()
    updated_values = {'deleted': True,
                      'deleted_at': now
                      }

    software_images_query = api.model_query(
        context, models.VnfSoftwareImage,
        (models.VnfSoftwareImage.id,)).filter_by(flavour_uuid=flavour_uuid)

    api.model_query(context, models.VnfSoftwareImageMetadata). \
        filter(models.VnfSoftwareImageMetadata.image_uuid.
        in_(software_images_query.subquery())).update(
        updated_values, synchronize_session=False)

    api.model_query(context, models.VnfSoftwareImage). \
        filter_by(flavour_uuid=flavour_uuid). \
        update(updated_values, synchronize_session=False)
    api.model_query(context, models.VnfDeploymentFlavour). \
        filter_by(id=flavour_uuid). \
        update(updated_values, synchronize_session=False)
Example #27
0
def _vnf_update(context, values):
    update = {'status': values.status, 'updated_at': values.updated_at}

    api.model_query(context, vnfm_db.VNF). \
        filter_by(id=values.id). \
        update(update, synchronize_session=False)
Example #28
0
def _vnfd_attribute_delete(context, id):
    try:
        api.model_query(context, vnfm_db.VNFDAttribute).\
            filter_by(vnfd_id=id).delete()
    except Exception:
        LOG.info("delete vnfd_attribute failed")
Example #29
0
def _update_vnf_instances(context, vnf_lcm_opoccs, body_data, vnfd_pkg_data,
                          vnfd_id):
    updated_values = {}
    updated_values['vnf_instance_name'] = body_data.get('vnf_instance_name')
    updated_values['vnf_instance_description'] = body_data.get(
        'vnf_instance_description')

    # get vnf_instances
    vnf_instance = _get_vnf_instance(context, vnfd_id)
    if body_data.get('metadata'):
        vnf_instance.vnf_metadata.update(body_data.get('metadata'))
        updated_values['vnf_metadata'] = vnf_instance.vnf_metadata

    if body_data.get('vim_connection_info'):
        merge_vim_connection_info = _merge_vim_connection_info(
            vnf_instance.vim_connection_info,
            body_data.get('vim_connection_info'))

        updated_values['vim_connection_info'] = merge_vim_connection_info

    if vnfd_pkg_data and len(vnfd_pkg_data) > 0:
        updated_values['vnfd_id'] = vnfd_pkg_data.get('vnfd_id')
        updated_values['vnf_provider'] = vnfd_pkg_data.get('vnf_provider')
        updated_values['vnf_product_name'] = vnfd_pkg_data.get(
            'vnf_product_name')
        updated_values['vnf_software_version'] = vnfd_pkg_data.get(
            'vnf_software_version')
        updated_values['vnf_pkg_id'] = vnfd_pkg_data.get('package_uuid')

    api.model_query(context, models.VnfInstance). \
        filter_by(id=vnf_lcm_opoccs.get('vnf_instance_id')). \
        update(updated_values, synchronize_session=False)

    vnf_now = timeutils.utcnow()
    if (body_data.get('vnfd_id') or body_data.get('vnf_pkg_id')):
        # update vnf
        if body_data.get('vnfd_id'):
            updated_values = {
                'vnfd_id': body_data.get('vnfd_id'),
                'updated_at': vnf_now
            }
        elif body_data.get('vnf_pkg_id'):
            updated_values = {
                'vnfd_id': vnfd_pkg_data.get('vnfd_id'),
                'updated_at': vnf_now
            }
        api.model_query(context, vnfm_db.VNF).\
            filter_by(id=vnf_lcm_opoccs.get('vnf_instance_id')). \
            update(updated_values, synchronize_session=False)

        # get vnf_packages
        id = vnfd_pkg_data.get('package_uuid')
        try:
            vnf_package = vnf_package_obj.VnfPackage.get_by_id(context, id)
        except exceptions.VnfPackageNotFound:
            raise exceptions.VnfPackageNotFound(id=id)

        if vnf_package.usage_state == 'NOT_IN_USE':
            # update vnf_packages
            now = timeutils.utcnow()
            updated_values = {'usage_state': 'IN_USE', 'updated_at': now}
            api.model_query(context, models.VnfPackage).\
                filter_by(id=id). \
                update(updated_values, synchronize_session=False)

        # get vnf_instances
        vnf_instance = _get_vnf_instance(context, vnfd_id)

        if not vnf_instance:
            # get vnf_package_vnfd
            vnfd_data = vnf_package_vnfd.VnfPackageVnfd.get_by_vnfdId(
                context, vnfd_id)

            # update vnf_packages
            now = timeutils.utcnow()
            updated_values = {'usage_state': 'NOT_IN_USE', 'updated_at': now}
            api.model_query(context, models.VnfPackage).\
                filter_by(id=vnfd_data.package_uuid). \
                update(updated_values, synchronize_session=False)

    return vnf_now
Example #30
0
def _destroy_vnf_notify(context, uuid):
    now = timeutils.utcnow()
    updated_values = {'deleted': True, 'deleted_at': now}
    api.model_query(context, models.VnfLcmOpOccs). \
        filter_by(id=uuid). \
        update(updated_values, synchronize_session=False)