示例#1
0
def remove_group_type_access(context, group_type_id, project_id):
    """Remove access to group type for project_id."""
    if group_type_id is None:
        msg = _("group_type_id cannot be None")
        raise exception.InvalidGroupType(reason=msg)
    elevated = context if context.is_admin else context.elevated()
    if is_public_group_type(elevated, group_type_id):
        msg = _("Type access modification is not applicable to public group "
                "type.")
        raise exception.InvalidGroupType(reason=msg)
    return db.group_type_access_remove(elevated, group_type_id, project_id)
示例#2
0
def get_group_type_by_name(context, name):
    """Retrieves single group type by name."""
    if name is None:
        msg = _("name cannot be None")
        raise exception.InvalidGroupType(reason=msg)

    return db.group_type_get_by_name(context, name)
示例#3
0
def destroy(context, id):
    """Marks group types as deleted."""
    if id is None:
        msg = _("id cannot be None")
        raise exception.InvalidGroupType(reason=msg)
    else:
        elevated = context if context.is_admin else context.elevated()
        db.group_type_destroy(elevated, id)
示例#4
0
def get_group_type(ctxt, id, expected_fields=None):
    """Retrieves single group type by id."""
    if id is None:
        msg = _("id cannot be None")
        raise exception.InvalidGroupType(reason=msg)

    if ctxt is None:
        ctxt = context.get_admin_context()

    return db.group_type_get(ctxt, id, expected_fields=expected_fields)
示例#5
0
    def _check_type(self, group):
        if not vol_utils.is_group_a_replication_group_type(group):
            msg = _("Group %s is not a replication group type.") % group.id
            LOG.error(msg)
            raise exception.InvalidGroupType(reason=msg)

        for vol_type in group.volume_types:
            if not vol_utils.is_replicated_spec(vol_type.extra_specs):
                msg = _("Volume type %s does not have 'replication_enabled' "
                        "spec key set to '<is> True'.") % vol_type.id
                LOG.error(msg)
                raise exception.InvalidVolumeType(reason=msg)
示例#6
0
def destroy(context, id):
    """Marks group types as deleted."""
    if id is None:
        msg = _("id cannot be None")
        raise exception.InvalidGroupType(reason=msg)
    else:
        elevated = context if context.is_admin else context.elevated()
        try:
            db.group_type_destroy(elevated, id)
        except exception.GroupTypeInUse as e:
            msg = _('Target group type is still in use. %s') % e
            raise webob.exc.HTTPBadRequest(explanation=msg)
示例#7
0
def update(context, id, name, description, is_public=None):
    """Update group type by id."""
    if id is None:
        msg = _("id cannot be None")
        raise exception.InvalidGroupType(reason=msg)
    elevated = context if context.is_admin else context.elevated()
    try:
        db.group_type_update(
            elevated, id,
            dict(name=name, description=description, is_public=is_public))
    except db_exc.DBError:
        LOG.exception('DB error:')
        raise exception.GroupTypeUpdateFailed(id=id)