Revision 2cc9d3a5 api/handlers.py
b/api/handlers.py | ||
---|---|---|
8 | 8 |
from synnefo.api.faults import fault, noContent, accepted, created |
9 | 9 |
from synnefo.api.helpers import instance_to_server, paginator |
10 | 10 |
from synnefo.util.rapi import GanetiRapiClient, GanetiApiError |
11 |
from synnefo.vocabs import MOCK_SERVERS, MOCK_IMAGES |
|
12 |
from synnefo.db.models import VirtualMachine, User, id_from_instance_name |
|
11 |
from synnefo.db.models import VirtualMachine, Image, User, id_from_instance_name |
|
13 | 12 |
from util.rapi import GanetiRapiClient |
14 | 13 |
|
15 | 14 |
|
... | ... | |
63 | 62 |
|
64 | 63 |
def read_one(self, request, id): |
65 | 64 |
if not rapi: # No ganeti backend. Return mock objects |
66 |
return { "server": MOCK_SERVERS[0] } |
|
65 |
servers = VirtualMachine.objects.filter(owner=User.objects.all()[0]) |
|
66 |
return { "server": servers[0] } |
|
67 | 67 |
try: |
68 | 68 |
instance = rapi.GetInstance(id) |
69 | 69 |
return { "server": instance_to_server(instance) } |
... | ... | |
74 | 74 |
def read_all(self, request, detail=False): |
75 | 75 |
if not rapi: # No ganeti backend. Return mock objects |
76 | 76 |
if detail: |
77 |
return { "servers": MOCK_SERVERS } #TODO: remove once the mock objects are removed |
|
78 | 77 |
virtual_servers = VirtualMachine.objects.filter(owner=User.objects.all()[0]) |
79 | 78 |
#get the first user, since we don't have any user data yet |
80 | 79 |
virtual_servers_list = [{'status': server.state, 'flavorId': server.flavor, \ |
... | ... | |
87 | 86 |
#pass some fake data regarding ip, since we don't have any such data |
88 | 87 |
return { "servers": virtual_servers_list } |
89 | 88 |
else: |
90 |
return { "servers": [ { "id": s['id'], "name": s['name'] } for s in MOCK_SERVERS ] } |
|
89 |
virtual_servers = VirtualMachine.objects.filter(owner=User.objects.all()[0]) |
|
90 |
return { "servers": [ { "id": s.id, "name": s.name } for s in virtual_servers ] } |
|
91 | 91 |
|
92 | 92 |
if not detail: |
93 | 93 |
instances = rapi.GetInstances(bulk=False) |
... | ... | |
239 | 239 |
Faults: cloudServersFault, serviceUnavailable, unauthorized, |
240 | 240 |
badRequest, itemNotFound |
241 | 241 |
""" |
242 |
images = Image.objects.all() |
|
242 | 243 |
if not rapi: # No ganeti backend. Return mock objects |
243 | 244 |
if id == "detail": |
244 |
return { "images": MOCK_IMAGES }
|
|
245 |
return { "images": images }
|
|
245 | 246 |
elif id is None: |
246 |
return { "images": [ { "id": s['id'], "name": s['name'] } for s in MOCK_IMAGES ] }
|
|
247 |
return { "images": [ { "id": s.id, "name": s.name } for s in images ] }
|
|
247 | 248 |
else: |
248 |
return { "image": MOCK_IMAGES[0] }
|
|
249 |
return { "image": images[0] }
|
|
249 | 250 |
if id is None: |
250 | 251 |
return {} |
251 | 252 |
elif id == "detail": |
Also available in: Unified diff