Example #1
0
def edit(caller_id, system_image_id, name, description, disk_controller, video_device, network_device, platform):
    """
    Sets Image's new attributes. Those should be get by src.cm.manager.image.get_by_id().

    @cmview_admin_cm
    @param_post{system_image_id,string} new Image name
    @param_post{name,string} new Image name
    @param_post{description,string} new Image description
    @param_post{disk_controller} new Image controller optional
    @param_post{video_device} new video device optional
    @param_post{network_device} new network device optional
    @param_post{platform} optional
    """

    image = SystemImage.admin_get(system_image_id)

    if image.state != image_states['ok']:
        raise CMException('image_edit')

    image.name = name
    image.description = description
    image.disk_controller = disk_controller
    image.video_device = video_device
    image.network_device = network_device
    image.platform = platform
    try:
        image.save()
    except:
        raise CMException('image_edit')
Example #2
0
def edit(caller_id, system_image_id, name, description, disk_controller,
         video_device, network_device, platform):
    """
    Sets Image's new attributes. Those should be get by src.cm.manager.image.get_by_id().

    @cmview_admin_cm
    @param_post{system_image_id,string} new Image name
    @param_post{name,string} new Image name
    @param_post{description,string} new Image description
    @param_post{disk_controller} new Image controller optional
    @param_post{video_device} new video device optional
    @param_post{network_device} new network device optional
    @param_post{platform} optional
    """

    image = SystemImage.admin_get(system_image_id)

    if image.state != image_states['ok']:
        raise CMException('image_edit')

    image.name = name
    image.description = description
    image.disk_controller = disk_controller
    image.video_device = video_device
    image.network_device = network_device
    image.platform = platform
    try:
        image.save()
    except:
        raise CMException('image_edit')
Example #3
0
def set_group(caller_id, system_image_id, group_id):
    """
    Method sets specified Image access type as group (belonging to specified Group).
    @cmview_admin_cm

    @parameter{group_id,int} id of the Group Image should belong to
    @parameter{image_id,int}
    @parameter{type,image_types} type of image, automatically set, type is in the URL requested

    @response{None}

    @raises{image_set_group,CMException} cannot set group access type
    """
    image = SystemImage.admin_get(system_image_id)
    image.access = image_access['group']

    # create new group-image object
    ig = SystemImageGroup()
    ig.image = image
    ig.group_id = group_id

    try:
        ig.save()
    except:
        raise CMException('image_set_group')
Example #4
0
def get_by_id(caller_id, system_image_id):
    """
    @cmview_admin_cm
    @param_post{system_image_id,int} id of the Image to get

    @response{dict} extended information about specified Image
    """
    return SystemImage.admin_get(system_image_id).dict
Example #5
0
def get_by_id(caller_id, system_image_id):
    """
    @cmview_admin_cm
    @param_post{system_image_id,int} id of the Image to get

    @response{dict} extended information about specified Image
    """
    return SystemImage.admin_get(system_image_id).dict
Example #6
0
def get_by_id(caller_id, system_image_id):
    """
    @cmview_admin_cm

    @parameter{image_id,int} id of the Image to get
    @parameter{type,image_types} type of image, automatically set, type is in the URL requested

    @response{dict} extended information about specified Image
    """
    return SystemImage.admin_get(system_image_id).dict
Example #7
0
def delete(caller_id, system_image_id_list):
    """
    Deletes given Image
    @cmview_admin_cm

    @parameter{system_image_id} id of the Image to delete
    @parameter{type,image_types} type of image, automatically set, type is in the URL requested
    """
    for system_image_id in system_image_id_list:
        image = SystemImage.admin_get(system_image_id)
        image.state = image_states['locked']
        image.save()
Example #8
0
def delete(caller_id, system_image_id_list):
    """
    Sets SystemImage state as 'locked'.

    @cmview_admin_cm
    @param_post{system_image_id_list,list(int)} list of the specified Images ids

    @todo Should delete SystemImage and set its state to @val{deleted}.
    """
    for system_image_id in system_image_id_list:
        image = SystemImage.admin_get(system_image_id)
        image.state = image_states['locked']
        image.save()
Example #9
0
def delete(caller_id, system_image_id_list):
    """
    Sets SystemImage state as 'locked'.

    @cmview_admin_cm
    @param_post{system_image_id_list,list(int)} list of the specified Images ids

    @todo Should delete SystemImage and set its state to @val{deleted}.
    """
    for system_image_id in system_image_id_list:
        image = SystemImage.admin_get(system_image_id)
        image.state = image_states['locked']
        image.save()
Example #10
0
def set_public(caller_id, system_image_id):
    """
    Makes SystemImage available in public pool.

    @cmview_admin_cm
    @param_post{system_image_id,int}
    """

    image = SystemImage.admin_get(system_image_id)
    image.access = image_access['public']
    # delete the existing group association
    try:
        image.systemimagegroup_set.all().delete()
        image.save()
    except:
        raise CMException('image_set_public')
Example #11
0
def set_public(caller_id, system_image_id):
    """
    Makes SystemImage available in public pool.

    @cmview_admin_cm
    @param_post{system_image_id,int}
    """

    image = SystemImage.admin_get(system_image_id)
    image.access = image_access['public']
    # delete the existing group association
    try:
        image.systemimagegroup_set.all().delete()
        image.save()
    except:
        raise CMException('image_set_public')
Example #12
0
def set_private(caller_id, system_image_id):
    """
    Removes SystemImage from public pool.

    @cmview_admin_cm
    @param_post{system_image_id,int}
    """

    image = SystemImage.admin_get(system_image_id)
    image.access = image_access['private']
    # delete the existing group association
    try:
        image.save()
        image.systemimagegroup_set.all().delete()
    except:
        log.exception(caller_id, 'image_set_private')
        raise CMException('image_set_private')
Example #13
0
def set_private(caller_id, system_image_id):
    """
    Removes SystemImage from public pool.

    @cmview_admin_cm
    @param_post{system_image_id,int}
    """

    image = SystemImage.admin_get(system_image_id)
    image.access = image_access['private']
    # delete the existing group association
    try:
        image.save()
        image.systemimagegroup_set.all().delete()
    except:
        log.exception(caller_id, 'image_set_private')
        raise CMException('image_set_private')
Example #14
0
def copy(caller_id, src_image_id, dest_user_id):
    """
    Copy selected image to user's images

    @cmview_admin_cm
    @param_post{src_image_id,int}
    @param_post{dest_user_id,int}
    """
    src_image = SystemImage.admin_get(src_image_id)
    dest_user = User.get(dest_user_id)
    dest_image = SystemImage.create(name=src_image.name, description=src_image.description, user=dest_user,
                                    platform=src_image.platform, disk_controller=src_image.disk_controller,
                                    network_device=src_image.network_device, video_device=src_image.video_device)

    try:
        dest_image.save()
    except Exception, e:
        log.error(caller_id, "Unable to commit: %s" % str(e))
        raise CMException('image_create')
Example #15
0
def set_public(caller_id, system_image_id):
    """
    Sets Image as private, only for system and cd image
    To succeed it requires caller to be:
    - either the owner of the image
    - or the leader of the group to which Image belongs

    @cmview_admin_cm

    @parameter{system_image_id,int}
    @parameter{leader_groups,list(int)} ids of the group where the caller is leader, requierd if Image's access type is group
    """

    image = SystemImage.admin_get(system_image_id)
    image.access = image_access['public']
    # delete the existing group association
    try:
        image.systemimagegroup_set.all().delete()
        image.save()
    except:
        raise CMException('image_set_public')
Example #16
0
def convert_to_storage_image(caller_id, system_image_id):
    """
    Changes type of the given Image.

    @cmview_admin_cm
    @param_post{system_image_id,int} ID of an Image to change type of

    @response{None}
    """
    image = SystemImage.admin_get(system_image_id)

    storage_image = StorageImage.create(name=image.name, description=image.description, user=image.user,
                                        disk_controller=image.disk_controller)
    storage_image.state = image_states['ok']
    storage_image.size = image.size

    try:
        storage_image.save()
        os.rename(image.path, storage_image.path)
        image.delete()
    except Exception:
        raise CMException('image_change_type')
Example #17
0
def copy(caller_id, src_image_id, dest_user_id):
    """
    Copy selected image to user's images

    @cmview_admin_cm
    @param_post{src_image_id,int}
    @param_post{dest_user_id,int}
    """
    src_image = SystemImage.admin_get(src_image_id)
    dest_user = User.get(dest_user_id)
    dest_image = SystemImage.create(name=src_image.name,
                                    description=src_image.description,
                                    user=dest_user,
                                    platform=src_image.platform,
                                    disk_controller=src_image.disk_controller,
                                    network_device=src_image.network_device,
                                    video_device=src_image.video_device)

    try:
        dest_image.save()
    except Exception, e:
        log.error(caller_id, "Unable to commit: %s" % str(e))
        raise CMException('image_create')
Example #18
0
def set_group(caller_id, system_image_id, group_id):
    """
    Method sets specified Image access type as group (belonging to specified Group).

    @cmview_admin_cm
    @param_post{system_image_id,int}
    @param_post{group_id,int} id of the Group Image should belong to

    @response{None}

    @raises{image_set_group,CMException} cannot set group access type
    """
    image = SystemImage.admin_get(system_image_id)
    image.access = image_access['group']

    # create new group-image object
    ig = SystemImageGroup()
    ig.image = image
    ig.group_id = group_id

    try:
        ig.save()
    except:
        raise CMException('image_set_group')
Example #19
0
def convert_to_storage_image(caller_id, system_image_id):
    """
    Changes type of the given Image.

    @cmview_admin_cm
    @param_post{system_image_id,int} ID of an Image to change type of

    @response{None}
    """
    image = SystemImage.admin_get(system_image_id)

    storage_image = StorageImage.create(name=image.name,
                                        description=image.description,
                                        user=image.user,
                                        disk_controller=image.disk_controller)
    storage_image.state = image_states['ok']
    storage_image.size = image.size

    try:
        storage_image.save()
        os.rename(image.path, storage_image.path)
        image.delete()
    except Exception:
        raise CMException('image_change_type')