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