Example #1
0
def join_request(cm_id, caller_id, group_id):
    """
    Sends request for acceptation in specified Groupfor caller. Adds caller
    to members  with 'waiting' state.

    @clmview_user
    @param_post{group_id,int} id of the Group, which caller wants to become member of
    """
    group = Group.get(group_id)
    user = User.get(caller_id)

    mem = UserGroup()
    mem.user = user
    mem.group = group
    mem.status = group_states['waiting']

    message.info(group.leader_id,
                 'group_request',
                 params={
                     'first_name': user.first,
                     'last_name': user.last,
                     'group_name': group.name,
                     'group_id': group.id
                 })
    try:
        mem.save()
    except:
        raise CLMException('group_request')
Example #2
0
def delete(cm_id, caller_id, group_id):
    """
    Method deletes specified Group.

    @clmview_user
    @param_post{group_id,int} id of the Group to delete
    """

    group = Group.get(group_id)

    resp = CM(cm_id).send_request("user/system_image/get_list/", caller_id=caller_id, group_id=[group_id], access=image_access['group'])
    if resp['status'] != 'ok':
        return resp['data']

    log.debug(caller_id, 'groups %s' % resp)

    user = User.get(caller_id)
    # set private all the system images that belong to the group
    for img in resp['data']:
        resp = CM(cm_id).sendRequest(cm_id, caller_id, "user/system_image/set_private/", system_image_id=img['image_id'], leader_groups=[g.group_id for g in user.own_groups])

        log.debug(caller_id, 'image set private %s' % resp['data'])
        if resp['status'] != 'ok':
            return resp['data']

    try:
        group.delete()
    except:
        raise CLMException('group_delete')
Example #3
0
def create(cm_id, caller_id, name, description):
    """
    Creates new Group of Users. Caller becomes its leader. He also becomes a
    member of that Group with @val{ok} state.

    @clmview_user
    @param_post{name,string}
    @param_post{description,string}
    """
    user = User.get(caller_id)

    # create group
    group = Group()
    group.leader = user
    group.name = name
    group.desc = description
    group.save()

    # create first membership
    mem = UserGroup()
    mem.user = user
    mem.group = group
    mem.status = group_states['ok']
    try:
        mem.save()
    except:
        raise CLMException('group_create')
Example #4
0
def get_by_id(cm_id, caller_id, group_id):
    """
    @clmview_user
    @param_post{group_id,int} id of the requested Group

    @response{dict} requested Group's details
    """

    return Group.get(group_id).dict
Example #5
0
def get_by_id(cm_id, caller_id, group_id):
    """
    @clmview_user
    @param_post{group_id,int} id of the requested Group

    @response{dict} requested Group's details
    """

    return Group.get(group_id).dict
Example #6
0
def create(cm_id, caller_id, name, description):
    """
    Creates new Group of Users. Caller becomes its leader. He also becomes a
    member of that Group with @val{ok} state.

    @clmview_user
    @param_post{name,string}
    @param_post{description,string}
    """
    user = User.get(caller_id)

    # create group
    group = Group()
    group.leader = user
    group.name = name
    group.desc = description
    group.save()

    # create first membership
    mem = UserGroup()
    mem.user = user
    mem.group = group
    mem.status = group_states['ok']
    try:
        mem.save()
    except:
        raise CLMException('group_create')
Example #7
0
def edit(cm_id, caller_id, group_id, name, description):
    """
    Method edits specified Group.

    @clmview_user
    @param_post{group_id,string} id of the group to edit
    @param_post{name,string} group's name
    @param_post{description,string} group's description
    """
    group = Group.get(group_id)
    group.name = name
    group.desc = description
    try:
        group.save()
    except:
        raise CLMException('group_edit')
Example #8
0
def edit(cm_id, caller_id, group_id, name, description):
    """
    Method edits specified Group.

    @clmview_user
    @param_post{group_id,string} id of the group to edit
    @param_post{name,string} group's name
    @param_post{description,string} group's description
    """
    group = Group.get(group_id)
    group.name = name
    group.desc = description
    try:
        group.save()
    except:
        raise CLMException('group_edit')
Example #9
0
def join_request(cm_id, caller_id, group_id):
    """
    Sends request for acceptation in specified Groupfor caller. Adds caller
    to members  with 'waiting' state.

    @clmview_user
    @param_post{group_id,int} id of the Group, which caller wants to become member of
    """
    group = Group.get(group_id)
    user = User.get(caller_id)

    mem = UserGroup()
    mem.user = user
    mem.group = group
    mem.status = group_states['waiting']

    message.info(group.leader_id, 'group_request', params={'first_name': user.first, 'last_name': user.last, 'group_name': group.name, 'group_id': group.id})
    try:
        mem.save()
    except:
        raise CLMException('group_request')
Example #10
0
def change_owner(cm_id, caller_id, user_id, group_id):
    """
    Function changes owner of the specified group. Only owner may be the caller,
    otherwise exception is thrown. @prm{user_id} becomes new Group's leader.

    @clmview_user
    @param_post{user_id,int} id of the new owner
    @param_post{group_id,int} id of the managed Group
    """
    # check that the caller is leader
    User.is_leader(caller_id, group_id)

    group = Group.get(group_id)
    new_leader = User.get(user_id)

    group.leader = new_leader

    try:
        group.save()
    except:
        raise CLMException('group_change_owner')
Example #11
0
def change_owner(cm_id, caller_id, user_id, group_id):
    """
    Function changes owner of the specified group. Only owner may be the caller,
    otherwise exception is thrown. @prm{user_id} becomes new Group's leader.

    @clmview_user
    @param_post{user_id,int} id of the new owner
    @param_post{group_id,int} id of the managed Group
    """
    # check that the caller is leader
    User.is_leader(caller_id, group_id)

    group = Group.get(group_id)
    new_leader = User.get(user_id)

    group.leader = new_leader

    try:
        group.save()
    except:
        raise CLMException('group_change_owner')
Example #12
0
def delete(cm_id, caller_id, group_id):
    """
    Method deletes specified Group.

    @clmview_user
    @param_post{group_id,int} id of the Group to delete
    """

    group = Group.get(group_id)

    resp = CM(cm_id).send_request("user/system_image/get_list/",
                                  caller_id=caller_id,
                                  group_id=[group_id],
                                  access=image_access['group'])
    if resp['status'] != 'ok':
        return resp['data']

    log.debug(caller_id, 'groups %s' % resp)

    user = User.get(caller_id)
    # set private all the system images that belong to the group
    for img in resp['data']:
        resp = CM(cm_id).sendRequest(
            cm_id,
            caller_id,
            "user/system_image/set_private/",
            system_image_id=img['image_id'],
            leader_groups=[g.group_id for g in user.own_groups])

        log.debug(caller_id, 'image set private %s' % resp['data'])
        if resp['status'] != 'ok':
            return resp['data']

    try:
        group.delete()
    except:
        raise CLMException('group_delete')