Esempio n. 1
0
def update(context, namespace_name, object_id, values, session):
    """Update an object, raise if ns not found/visible or duplicate result"""
    namespace_api.get(context, namespace_name, session)

    md_object = _get(context, object_id, session)
    metadef_utils.drop_protected_attrs(models.MetadefObject, values)
    # values['updated_at'] = timeutils.utcnow() - done by TS mixin
    try:
        md_object.update(values.copy())
        md_object.save(session=session)
    except db_exc.DBDuplicateEntry:
        msg = ("Invalid update. It would result in a duplicate"
               " metadata definition object with same name=%(name)s"
               " in namespace=%(namespace_name)s." % {
                   'name': md_object.name,
                   'namespace_name': namespace_name
               })
        LOG.debug(msg)
        emsg = (_("Invalid update. It would result in a duplicate"
                  " metadata definition object with the same name=%(name)s"
                  " in namespace=%(namespace_name)s.") % {
                      'name': md_object.name,
                      'namespace_name': namespace_name
                  })
        raise exc.MetadefDuplicateObject(emsg)

    return md_object.to_dict()
Esempio n. 2
0
def update(context, namespace_name, object_id, values, session):
    """Update an object, raise if ns not found/visible or duplicate result"""
    namespace_api.get(context, namespace_name, session)

    md_object = _get(context, object_id, session)
    metadef_utils.drop_protected_attrs(models.MetadefObject, values)
    # values['updated_at'] = timeutils.utcnow() - done by TS mixin
    try:
        md_object.update(values.copy())
        md_object.save(session=session)
    except db_exc.DBDuplicateEntry:
        msg = (
            "Invalid update. It would result in a duplicate"
            " metadata definition object with same name=%(name)s"
            " in namespace=%(namespace_name)s." % {"name": md_object.name, "namespace_name": namespace_name}
        )
        LOG.debug(msg)
        emsg = _(
            "Invalid update. It would result in a duplicate"
            " metadata definition object with the same name=%(name)s"
            " in namespace=%(namespace_name)s."
        ) % {"name": md_object.name, "namespace_name": namespace_name}
        raise exc.MetadefDuplicateObject(emsg)

    return md_object.as_dict()
Esempio n. 3
0
def update(context, namespace_name, property_id, values, session):
    """Update a property, raise if ns not found/visible or duplicate result"""

    namespace_api.get(context, namespace_name, session)
    property_rec = _get(context, property_id, session)
    metadef_utils.drop_protected_attrs(models.MetadefProperty, values)
    # values['updated_at'] = timeutils.utcnow() - done by TS mixin
    try:
        property_rec.update(values.copy())
        property_rec.save(session=session)
    except db_exc.DBDuplicateEntry:
        LOG.debug(
            "Invalid update. It would result in a duplicate"
            " metadata definition property with the same name=%(name)s"
            " in namespace=%(namespace_name)s.", {
                'name': property_rec.name,
                'namespace_name': namespace_name
            })
        emsg = (_("Invalid update. It would result in a duplicate"
                  " metadata definition property with the same name=%(name)s"
                  " in namespace=%(namespace_name)s.") % {
                      'name': property_rec.name,
                      'namespace_name': namespace_name
                  })
        raise exc.MetadefDuplicateProperty(emsg)

    return property_rec.to_dict()
Esempio n. 4
0
def update(context, namespace_name, property_id, values, session):
    """Update a property, raise if ns not found/visible or duplicate result"""

    namespace_api.get(context, namespace_name, session)
    property_rec = _get(context, property_id, session)
    metadef_utils.drop_protected_attrs(models.MetadefProperty, values)
    # values['updated_at'] = timeutils.utcnow() - done by TS mixin
    try:
        property_rec.update(values.copy())
        property_rec.save(session=session)
    except db_exc.DBDuplicateEntry:
        msg = ("Invalid update. It would result in a duplicate"
               " metadata definition property with the same name=%(name)s"
               " in namespace=%(namespace_name)s."
               % {'name': property_rec.name,
                  'namespace_name': namespace_name})
        LOG.debug(msg)
        emsg = (_("Invalid update. It would result in a duplicate"
                  " metadata definition property with the same name=%(name)s"
                  " in namespace=%(namespace_name)s.")
                % {'name': property_rec.name,
                   'namespace_name': namespace_name})
        raise exc.MetadefDuplicateProperty(emsg)

    return property_rec.as_dict()
Esempio n. 5
0
def delete(context, namespace_name, name, session):
    namespace_api.get(context, namespace_name, session)
    md_tag = _get_by_name(context, namespace_name, name, session)

    session.delete(md_tag)
    session.flush()

    return md_tag.to_dict()
Esempio n. 6
0
def delete(context, namespace_name, name, session):
    namespace_api.get(context, namespace_name, session)
    md_tag = _get_by_name(context, namespace_name, name, session)

    session.delete(md_tag)
    session.flush()

    return md_tag.to_dict()
Esempio n. 7
0
def delete(context, namespace_name, object_name, session):
    namespace_api.get(context, namespace_name, session)
    md_object = _get_by_name(context, namespace_name, object_name, session)

    session.delete(md_object)
    session.flush()

    return md_object.to_dict()
Esempio n. 8
0
def delete(context, namespace_name, object_name, session):
    namespace_api.get(context, namespace_name, session)
    md_object = _get_by_name(context, namespace_name, object_name, session)

    session.delete(md_object)
    session.flush()

    return md_object.to_dict()
def get_all_by_namespace(context, namespace_name, session):
    """List resource_type associations by namespace, raise if not found"""

    # namespace get raises an exception if not visible
    namespace = namespace_api.get(
        context, namespace_name, session)

    db_recs = (
        session.query(models.MetadefResourceType)
        .join(models.MetadefResourceType.associations)
        .filter_by(namespace_id=namespace['id'])
        .values(models.MetadefResourceType.name,
                models.MetadefNamespaceResourceType.properties_target,
                models.MetadefNamespaceResourceType.prefix,
                models.MetadefNamespaceResourceType.created_at,
                models.MetadefNamespaceResourceType.updated_at))

    model_dict_list = []
    for name, properties_target, prefix, created_at, updated_at in db_recs:
        model_dict_list.append(
            _set_model_dict
            (name, properties_target, prefix, created_at, updated_at)
        )

    return model_dict_list
Esempio n. 10
0
def get_all(context, namespace_name, session, filters=None, marker=None,
            limit=None, sort_key='created_at', sort_dir='desc'):
    """Get all tags that match zero or more filters.

    :param filters: dict of filter keys and values.
    :param marker: tag id after which to start page
    :param limit: maximum number of namespaces to return
    :param sort_key: namespace attribute by which results should be sorted
    :param sort_dir: direction in which results should be sorted (asc, desc)
    """

    namespace = namespace_api.get(context, namespace_name, session)
    query = (session.query(models.MetadefTag).filter_by(
        namespace_id=namespace['id']))

    marker_tag = None
    if marker is not None:
        marker_tag = _get(context, marker, session)

    sort_keys = ['created_at', 'id']
    sort_keys.insert(0, sort_key) if sort_key not in sort_keys else sort_keys

    query = paginate_query(query=query,
                           model=models.MetadefTag,
                           limit=limit,
                           sort_keys=sort_keys,
                           marker=marker_tag, sort_dir=sort_dir)
    metadef_tag = query.all()
    metadef_tag_list = []
    for tag in metadef_tag:
        metadef_tag_list.append(tag.to_dict())

    return metadef_tag_list
Esempio n. 11
0
def create(context, namespace_name, values, session):
    """Create an association, raise if already exists or ns not found."""

    namespace = namespace_api.get(
        context, namespace_name, session)

    # if the resource_type does not exist, create it
    resource_type_name = values['name']
    metadef_utils.drop_protected_attrs(
        models.MetadefNamespaceResourceType, values)
    try:
        resource_type = resource_type_api.get(
            context, resource_type_name, session)
    except exc.NotFound:
        resource_type = None
        LOG.debug("Creating resource-type %s" % resource_type_name)

    if resource_type is None:
        resource_type_dict = {'name': resource_type_name, 'protected': False}
        resource_type = resource_type_api.create(
            context, resource_type_dict, session)

    # Create the association record, set the field values
    ns_resource_type_dict = _to_db_dict(
        namespace['id'], resource_type['id'], values)
    new_rec = _create_association(context, namespace_name, resource_type_name,
                                  ns_resource_type_dict, session)

    return _to_model_dict(resource_type_name, new_rec)
Esempio n. 12
0
def get_all_by_namespace(context, namespace_name, session):
    """List resource_type associations by namespace, raise if not found"""

    # namespace get raises an exception if not visible
    namespace = namespace_api.get(
        context, namespace_name, session)

    db_recs = (
        session.query(models.MetadefResourceType)
        .join(models.MetadefResourceType.associations)
        .filter_by(namespace_id=namespace['id'])
        .values(models.MetadefResourceType.name,
                models.MetadefNamespaceResourceType.properties_target,
                models.MetadefNamespaceResourceType.prefix,
                models.MetadefNamespaceResourceType.created_at,
                models.MetadefNamespaceResourceType.updated_at))

    model_dict_list = []
    for name, properties_target, prefix, created_at, updated_at in db_recs:
        model_dict_list.append(
            _set_model_dict
            (name, properties_target, prefix, created_at, updated_at)
        )

    return model_dict_list
Esempio n. 13
0
def count(context, namespace_name, session):
    """Get the count of objects for a namespace, raise if ns not found"""
    namespace = namespace_api.get(context, namespace_name, session)

    query = session.query(func.count(models.MetadefObject.id))\
        .filter_by(namespace_id=namespace['id'])
    return query.scalar()
Esempio n. 14
0
def create_tags(context, namespace_name, tag_list, session):

    metadef_tags_list = []
    if tag_list:
        namespace = namespace_api.get(context, namespace_name, session)

        try:
            with session.begin():
                query = (session.query(models.MetadefTag).filter_by(
                    namespace_id=namespace['id']))
                query.delete(synchronize_session='fetch')

                for value in tag_list:
                    value.update({'namespace_id': namespace['id']})
                    metadef_utils.drop_protected_attrs(
                        models.MetadefTag, value)
                    metadef_tag = models.MetadefTag()
                    metadef_tag.update(value.copy())
                    metadef_tag.save(session=session)
                    metadef_tags_list.append(metadef_tag.to_dict())
        except db_exc.DBDuplicateEntry:
            msg = ("A metadata tag name=%(name)s"
                   " in namespace=%(namespace_name)s already exists."
                   % {'name': metadef_tag.name,
                      'namespace_name': namespace_name})
            LOG.debug(msg)
            raise exc.MetadefDuplicateTag(
                name=metadef_tag.name, namespace_name=namespace_name)

    return metadef_tags_list
Esempio n. 15
0
def create_tags(context, namespace_name, tag_list, session):

    metadef_tags_list = []
    if tag_list:
        namespace = namespace_api.get(context, namespace_name, session)

        try:
            with session.begin():
                query = (session.query(
                    models.MetadefTag).filter_by(namespace_id=namespace['id']))
                query.delete(synchronize_session='fetch')

                for value in tag_list:
                    value.update({'namespace_id': namespace['id']})
                    metadef_utils.drop_protected_attrs(models.MetadefTag,
                                                       value)
                    metadef_tag = models.MetadefTag()
                    metadef_tag.update(value.copy())
                    metadef_tag.save(session=session)
                    metadef_tags_list.append(metadef_tag.to_dict())
        except db_exc.DBDuplicateEntry:
            msg = ("A metadata tag name=%(name)s"
                   " in namespace=%(namespace_name)s already exists." % {
                       'name': metadef_tag.name,
                       'namespace_name': namespace_name
                   })
            LOG.debug(msg)
            raise exc.MetadefDuplicateTag(name=metadef_tag.name,
                                          namespace_name=namespace_name)

    return metadef_tags_list
Esempio n. 16
0
def count(context, namespace_name, session):
    """Get the count of objects for a namespace, raise if ns not found"""
    namespace = namespace_api.get(context, namespace_name, session)

    query = session.query(func.count(models.MetadefObject.id))\
        .filter_by(namespace_id=namespace['id'])
    return query.scalar()
Esempio n. 17
0
def create(context, namespace_name, values, session):
    """Create an association, raise if already exists or ns not found."""

    namespace = namespace_api.get(context, namespace_name, session)

    # if the resource_type does not exist, create it
    resource_type_name = values['name']
    metadef_utils.drop_protected_attrs(models.MetadefNamespaceResourceType,
                                       values)
    try:
        resource_type = resource_type_api.get(context, resource_type_name,
                                              session)
    except exc.NotFound:
        resource_type = None
        LOG.debug("Creating resource-type %s", resource_type_name)

    if resource_type is None:
        resource_type_dict = {'name': resource_type_name, 'protected': False}
        resource_type = resource_type_api.create(context, resource_type_dict,
                                                 session)

    # Create the association record, set the field values
    ns_resource_type_dict = _to_db_dict(namespace['id'], resource_type['id'],
                                        values)
    new_rec = _create_association(context, namespace_name, resource_type_name,
                                  ns_resource_type_dict, session)

    return _to_model_dict(resource_type_name, new_rec)
Esempio n. 18
0
def get_all(context, namespace_name, session, filters=None, marker=None,
            limit=None, sort_key='created_at', sort_dir='desc'):
    """Get all tags that match zero or more filters.

    :param filters: dict of filter keys and values.
    :param marker: tag id after which to start page
    :param limit: maximum number of namespaces to return
    :param sort_key: namespace attribute by which results should be sorted
    :param sort_dir: direction in which results should be sorted (asc, desc)
    """

    namespace = namespace_api.get(context, namespace_name, session)
    query = (session.query(models.MetadefTag).filter_by(
        namespace_id=namespace['id']))

    marker_tag = None
    if marker is not None:
        marker_tag = _get(context, marker, session)

    sort_keys = ['created_at', 'id']
    sort_keys.insert(0, sort_key) if sort_key not in sort_keys else sort_keys

    query = paginate_query(query=query,
                           model=models.MetadefTag,
                           limit=limit,
                           sort_keys=sort_keys,
                           marker=marker_tag, sort_dir=sort_dir)
    metadef_tag = query.all()
    metadef_tag_list = []
    for tag in metadef_tag:
        metadef_tag_list.append(tag.to_dict())

    return metadef_tag_list
Esempio n. 19
0
def get_all(context, namespace_name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    query = session.query(models.MetadefObject).filter_by(namespace_id=namespace["id"])
    md_objects = query.all()

    md_objects_list = []
    for obj in md_objects:
        md_objects_list.append(obj.as_dict())
    return md_objects_list
Esempio n. 20
0
def get_all(context, namespace_name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    query = session.query(
        models.MetadefProperty).filter_by(namespace_id=namespace['id'])
    properties = query.all()

    properties_list = []
    for prop in properties:
        properties_list.append(prop.to_dict())
    return properties_list
Esempio n. 21
0
def get_all(context, namespace_name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    query = session.query(models.MetadefProperty)\
        .filter_by(namespace_id=namespace['id'])
    properties = query.all()

    properties_list = []
    for prop in properties:
        properties_list.append(prop.as_dict())
    return properties_list
Esempio n. 22
0
def get_all(context, namespace_name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    query = session.query(models.MetadefObject)\
        .filter_by(namespace_id=namespace['id'])
    md_objects = query.all()

    md_objects_list = []
    for obj in md_objects:
        md_objects_list.append(obj.to_dict())
    return md_objects_list
Esempio n. 23
0
def get(context, namespace_name, resource_type_name, session):
    """Get a resource_type associations; raise if not found"""
    namespace = namespace_api.get(context, namespace_name, session)

    resource_type = resource_type_api.get(context, resource_type_name, session)

    found = _get(context, namespace_name, resource_type_name, namespace['id'],
                 resource_type['id'], session)

    return _to_model_dict(resource_type_name, found)
Esempio n. 24
0
def update(context, namespace_name, id, values, session):
    """Update an tag, raise if ns not found/visible or duplicate result"""
    namespace_api.get(context, namespace_name, session)

    metadata_tag = _get(context, id, session)
    metadef_utils.drop_protected_attrs(models.MetadefTag, values)
    # values['updated_at'] = timeutils.utcnow() - done by TS mixin
    try:
        metadata_tag.update(values.copy())
        metadata_tag.save(session=session)
    except db_exc.DBDuplicateEntry:
        LOG.debug("Invalid update. It would result in a duplicate"
                  " metadata tag with same name=%(name)s"
                  " in namespace=%(namespace_name)s.",
                  {'name': values['name'],
                   'namespace_name': namespace_name})
        raise exc.MetadefDuplicateTag(
            name=values['name'], namespace_name=namespace_name)

    return metadata_tag.to_dict()
Esempio n. 25
0
def delete(context, namespace_name, resource_type_name, session):
    """Delete an association or raise if not found"""

    namespace = namespace_api.get(context, namespace_name, session)

    resource_type = resource_type_api.get(context, resource_type_name, session)

    deleted = _delete(context, namespace_name, resource_type_name,
                      namespace['id'], resource_type['id'], session)

    return _to_model_dict(resource_type_name, deleted)
Esempio n. 26
0
def get(context, namespace_name, resource_type_name, session):
    """Get a resource_type associations; raise if not found"""
    namespace = namespace_api.get(
        context, namespace_name, session)

    resource_type = resource_type_api.get(
        context, resource_type_name, session)

    found = _get(context, namespace_name, resource_type_name,
                 namespace['id'], resource_type['id'], session)

    return _to_model_dict(resource_type_name, found)
Esempio n. 27
0
def _get_by_name(context, namespace_name, name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    try:
        query = (session.query(models.MetadefTag).filter_by(
            name=name, namespace_id=namespace['id']))
        metadef_tag = query.one()
    except sa_orm.exc.NoResultFound:
        LOG.debug("The metadata tag with name=%(name)s"
                  " was not found in namespace=%(namespace_name)s.",
                  {'name': name, 'namespace_name': namespace_name})
        raise exc.MetadefTagNotFound(name=name,
                                     namespace_name=namespace_name)
    return metadef_tag
Esempio n. 28
0
def delete(context, namespace_name, resource_type_name, session):
    """Delete an association or raise if not found"""

    namespace = namespace_api.get(
        context, namespace_name, session)

    resource_type = resource_type_api.get(
        context, resource_type_name, session)

    deleted = _delete(context, namespace_name, resource_type_name,
                      namespace['id'], resource_type['id'], session)

    return _to_model_dict(resource_type_name, deleted)
Esempio n. 29
0
File: tag.py Progetto: dlq84/glance
def _get_by_name(context, namespace_name, name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    try:
        query = session.query(models.MetadefTag).filter_by(name=name, namespace_id=namespace["id"])
        metadef_tag = query.one()
    except sa_orm.exc.NoResultFound:
        msg = "The metadata tag with name=%(name)s" " was not found in namespace=%(namespace_name)s." % {
            "name": name,
            "namespace_name": namespace_name,
        }
        LOG.debug(msg)
        raise exc.MetadefTagNotFound(name=name, namespace_name=namespace_name)
    return metadef_tag
Esempio n. 30
0
def _get_by_name(context, namespace_name, name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    try:
        query = session.query(models.MetadefObject)\
            .filter_by(name=name, namespace_id=namespace['id'])
        metadef_object = query.one()
    except sa_orm.exc.NoResultFound:
        msg = ("The metadata definition object with name=%(name)s"
               " was not found in namespace=%(namespace_name)s."
               % {'name': name, 'namespace_name': namespace_name})
        LOG.debug(msg)
        raise exc.MetadefObjectNotFound(object_name=name,
                                        namespace_name=namespace_name)

    return metadef_object
Esempio n. 31
0
def _get_by_name(context, namespace_name, name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    try:
        query = session.query(models.MetadefObject)\
            .filter_by(name=name, namespace_id=namespace['id'])
        metadef_object = query.one()
    except sa_orm.exc.NoResultFound:
        msg = ("The metadata definition object with name=%(name)s"
               " was not found in namespace=%(namespace_name)s."
               % {'name': name, 'namespace_name': namespace_name})
        LOG.debug(msg)
        raise exc.MetadefObjectNotFound(object_name=name,
                                        namespace_name=namespace_name)

    return metadef_object
Esempio n. 32
0
def _get_by_name(context, namespace_name, name, session):
    """get a property; raise if ns not found/visible or property not found"""

    namespace = namespace_api.get(context, namespace_name, session)
    try:
        query = session.query(models.MetadefProperty).filter_by(
            name=name, namespace_id=namespace['id'])
        property_rec = query.one()

    except sa_orm.exc.NoResultFound:
        LOG.debug("The metadata definition property with name=%(name)s"
                  " was not found in namespace=%(namespace_name)s.",
                  {'name': name, 'namespace_name': namespace_name})
        raise exc.MetadefPropertyNotFound(property_name=name,
                                          namespace_name=namespace_name)

    return property_rec
Esempio n. 33
0
def create(context, namespace_name, values, session):
    namespace = namespace_api.get(context, namespace_name, session)
    values.update({'namespace_id': namespace['id']})

    metadef_tag = models.MetadefTag()
    metadef_utils.drop_protected_attrs(models.MetadefTag, values)
    metadef_tag.update(values.copy())
    try:
        metadef_tag.save(session=session)
    except db_exc.DBDuplicateEntry:
        LOG.debug("A metadata tag name=%(name)s"
                  " in namespace=%(namespace_name)s already exists.",
                  {'name': metadef_tag.name,
                   'namespace_name': namespace_name})
        raise exc.MetadefDuplicateTag(
            name=metadef_tag.name, namespace_name=namespace_name)

    return metadef_tag.to_dict()
Esempio n. 34
0
def _get_by_name(context, namespace_name, name, session):
    """get a property; raise if ns not found/visible or property not found"""

    namespace = namespace_api.get(context, namespace_name, session)
    try:
        query = session.query(models.MetadefProperty)\
            .filter_by(name=name, namespace_id=namespace['id'])
        property_rec = query.one()

    except sa_orm.exc.NoResultFound:
        msg = ("The metadata definition property with name=%(name)s"
               " was not found in namespace=%(namespace_name)s."
               % {'name': name, 'namespace_name': namespace_name})
        LOG.debug(msg)
        raise exc.MetadefPropertyNotFound(property_name=name,
                                          namespace_name=namespace_name)

    return property_rec
Esempio n. 35
0
def create(context, namespace_name, values, session):
    namespace = namespace_api.get(context, namespace_name, session)
    values.update({'namespace_id': namespace['id']})

    md_object = models.MetadefObject()
    metadef_utils.drop_protected_attrs(models.MetadefObject, values)
    md_object.update(values.copy())
    try:
        md_object.save(session=session)
    except db_exc.DBDuplicateEntry:
        LOG.debug("A metadata definition object with name=%(name)s"
                  " in namespace=%(namespace_name)s already exists.",
                  {'name': md_object.name,
                   'namespace_name': namespace_name})
        raise exc.MetadefDuplicateObject(
            object_name=md_object.name, namespace_name=namespace_name)

    return md_object.to_dict()
Esempio n. 36
0
def create(context, namespace_name, values, session):
    namespace = namespace_api.get(context, namespace_name, session)
    values.update({'namespace_id': namespace['id']})

    md_object = models.MetadefObject()
    metadef_utils.drop_protected_attrs(models.MetadefObject, values)
    md_object.update(values.copy())
    try:
        md_object.save(session=session)
    except db_exc.DBDuplicateEntry:
        msg = ("A metadata definition object with name=%(name)s"
               " in namespace=%(namespace_name)s already exists."
               % {'name': md_object.name,
                  'namespace_name': namespace_name})
        LOG.debug(msg)
        raise exc.MetadefDuplicateObject(
            object_name=md_object.name, namespace_name=namespace_name)

    return md_object.to_dict()
Esempio n. 37
0
def create(context, namespace_name, values, session):
    namespace = namespace_api.get(context, namespace_name, session)
    values.update({'namespace_id': namespace['id']})

    property_rec = models.MetadefProperty()
    metadef_utils.drop_protected_attrs(models.MetadefProperty, values)
    property_rec.update(values.copy())

    try:
        property_rec.save(session=session)
    except db_exc.DBDuplicateEntry:
        LOG.debug("Can not create metadata definition property. A property"
                  " with name=%(name)s already exists in"
                  " namespace=%(namespace_name)s.",
                  {'name': property_rec.name,
                   'namespace_name': namespace_name})
        raise exc.MetadefDuplicateProperty(
            property_name=property_rec.name,
            namespace_name=namespace_name)

    return property_rec.to_dict()
Esempio n. 38
0
def create(context, namespace_name, values, session):
    namespace = namespace_api.get(context, namespace_name, session)
    values.update({'namespace_id': namespace['id']})

    property_rec = models.MetadefProperty()
    metadef_utils.drop_protected_attrs(models.MetadefProperty, values)
    property_rec.update(values.copy())

    try:
        property_rec.save(session=session)
    except db_exc.DBDuplicateEntry:
        msg = ("Can not create metadata definition property. A property"
               " with name=%(name)s already exists in"
               " namespace=%(namespace_name)s." % {
                   'name': property_rec.name,
                   'namespace_name': namespace_name
               })
        LOG.debug(msg)
        raise exc.MetadefDuplicateProperty(property_name=property_rec.name,
                                           namespace_name=namespace_name)

    return property_rec.to_dict()
Esempio n. 39
0
def delete_by_namespace_name(context, namespace_name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    return delete_namespace_content(context, namespace['id'], session)
Esempio n. 40
0
def delete_by_namespace_name(context, namespace_name, session):
    namespace = namespace_api.get(context, namespace_name, session)
    return delete_namespace_content(context, namespace['id'], session)