Revision d73d59e4 api/handlers.py
b/api/handlers.py | ||
---|---|---|
307 | 307 |
|
308 | 308 |
|
309 | 309 |
class ServerAddressHandler(BaseHandler): |
310 |
allowed_methods = ('GET', 'PUT', 'DELETE') |
|
310 |
"""Handler responsible for Server Addresses |
|
311 |
|
|
312 |
handles Reboot, Shutdown and Start actions. |
|
313 |
|
|
314 |
@HTTP methods: GET |
|
315 |
@Parameters: Id of server and networkID (eg public, private) |
|
316 |
@Responses: HTTP 200 if successfully call rapi, itemNotFound, serviceUnavailable otherwise |
|
317 |
|
|
318 |
""" |
|
319 |
allowed_methods = ('GET',) |
|
311 | 320 |
|
312 | 321 |
def read(self, request, id, networkID=None): |
313 | 322 |
"""List IP addresses for a server""" |
314 | 323 |
|
315 |
if networkID is None: |
|
316 |
pass |
|
317 |
return {} |
|
324 |
try: |
|
325 |
server = VirtualMachine.objects.get(id=id) |
|
326 |
address = {'public': { 'ip': {'addr': server.ipfour}, 'ip6': {'addr': server.ipsix}},'private': ''} |
|
327 |
except VirtualMachine.DoesNotExist: |
|
328 |
raise fault.itemNotFound |
|
329 |
except VirtualMachine.MultipleObjectsReturned: |
|
330 |
raise fault.serviceUnavailable |
|
331 |
except Exception, e: |
|
332 |
log.exception('Unexpected error: %s' % e) |
|
333 |
raise fault.serviceUnavailable |
|
318 | 334 |
|
319 |
def update(self, request, id, networkID=None): |
|
320 |
"""Share an IP address to another in the group""" |
|
321 |
return accepted |
|
335 |
if networkID == "public": |
|
336 |
address = {'public': { 'ip': {'addr': server.ipfour}, 'ip6': {'addr': server.ipsix}}} |
|
337 |
elif networkID == "private": |
|
338 |
address = {'private': ''} |
|
339 |
return { "addresses": address } |
|
322 | 340 |
|
323 |
def delete(self, request, id, networkID=None): |
|
324 |
"""Unshare an IP address""" |
|
325 |
return accepted |
|
326 | 341 |
|
327 | 342 |
|
328 | 343 |
class ServerActionHandler(BaseHandler): |
Also available in: Unified diff