Beispiel #1
0
    def get(self):
        request, data, vm = self.request, self.data, self.vm

        # Prepare filter dict
        snap_filter = {'vm': vm}
        filter_disk_id(vm, snap_filter, data)
        filter_snap_type(snap_filter, data)
        filter_snap_define(snap_filter, data)

        # TODO: check indexes
        snapqs = Snapshot.objects.select_related('vm', 'define').filter(**snap_filter).order_by(*self.order_by)

        if self.full or self.extended:
            if snapqs:
                res = SnapshotSerializer(request, snapqs, many=True).data
            else:
                res = []
        else:
            res = list(snapqs.values_list('name', flat=True))

        return SuccessTaskResponse(request, res, vm=vm)
Beispiel #2
0
def filter_backup_define(query_filter, data):
    """Validate backup definition and update dictionary used for queryset filtering"""
    return filter_snap_define(query_filter, data)