Revision 1a49199e api/handlers.py

b/api/handlers.py
6 6
from django.conf import settings
7 7
from django.http import HttpResponse
8 8
from piston.handler import BaseHandler, AnonymousBaseHandler
9
from synnefo.api.faults import fault, noContent, accepted, created
9
from synnefo.api.faults import fault, noContent, accepted, created, notModified
10 10
from synnefo.api.helpers import instance_to_server, paginator
11 11
from synnefo.util.rapi import GanetiRapiClient, GanetiApiError, CertificateError
12 12
from synnefo.db.models import *
......
14 14
import random
15 15
import string
16 16
import logging
17
from datetime import datetime
17 18

  
18 19
log = logging.getLogger('synnefo.api.handlers')
19 20

  
......
109 110
                     'id': server.id, 
110 111
                     'imageRef': server.sourceimage.id,
111 112
                     'created': server.created, 
112
                     'updated': server.updated,  
113
                     'updated': server.updated,
113 114
                     'hostId': server.hostid, 
114 115
                     'progress': server.rsapi_state == 'ACTIVE' and 100 or 0, 
115 116
                     #'metadata': {'Server_Label': server.description },
......
129 130
    @paginator
130 131
    def read_all(self, request, detail=False):
131 132
        try:
132
            changes_since = request.GET.get("changes-since", "")
133
            changes_since = request.GET.get("changes_since", 0)
133 134
            if changes_since:
134
               changes_since = datetime.datetime.now() - datetime.timedelta(hours=1) #TODO:remove
135
               virtual_servers = VirtualMachine.objects.filter(updated__gte=changes_since)
135
                last_update = datetime.fromtimestamp(int(changes_since))
136
                virtual_servers = VirtualMachine.objects.filter(updated__gte=last_update)
137
                if not len(virtual_servers):
138
                    return notModified
136 139
            else:
137 140
                virtual_servers = VirtualMachine.objects.filter(deleted=False)
138 141
            #get all VM's for now, FIX it to take the user's VMs only yet. also don't get deleted VM's
......
146 149
                                         'id': server.id, 
147 150
                                         'description': server.description, 
148 151
                                         'created': server.created, 
149
                                         'updated': server.updated,  
152
                                         'updated': server.updated,
153
                                         'deleted': server.deleted,                     
150 154
                                         'imageRef': server.sourceimage.id, 
151 155
                                         'hostId': server.hostid, 
152 156
                                         'progress': server.rsapi_state == 'ACTIVE' and 100 or 0, 

Also available in: Unified diff