Exemplo n.º 1
0
def delete_volume(volume_name_or_id, **attrs):
    """
   Delete a volume, given its name or ID
   """
    caller_user = _check_authenticated(attrs)

    volume = Volume.Read(volume_name_or_id)
    if volume is None or volume.deleted:
        return {"result": True}

    if volume.owner_id != caller_user.owner_id and not caller_user.is_admin:
        raise Exception("Caller cannot delete volume")

    ret = Volume.Delete(volume.volume_id)
    if ret:
        # delete succeeded.

        # Blow away cert bundle, in deferred task
        storagetypes.deferred.defer(VolumeCertBundle.Delete, volume.volume_id)

        # Blow away the MSEntries, in a deferred task
        storagetypes.deferred.defer(MSEntry.DeleteAll, volume)

        # Blow away the Gateways, in a deferred task
        storagetypes.deferred.defer(Gateway.DeleteAll, volume)

    return {'result': ret}
Exemplo n.º 2
0
def delete_volume(volume_name_or_id):
    volume = Volume.Read(volume_name_or_id)
    if volume is None:
        return True

    ret = Volume.Delete(volume.volume_id)
    if ret:
        # delete succeeded.

        # Blow away the MSEntries, in a deferred task
        storagetypes.deferred.defer(MSEntry.DeleteAll, volume)

        # Blow away the Gateways, in a deferred task
        storagetypes.deferred.defer(Gateway.DeleteAll, volume)

    return ret