Revision 0ace35e4

b/snf-cyclades-app/synnefo/api/floating_ips.py
228 228
    return HttpResponse(status=204)
229 229

  
230 230

  
231
def network_to_pool(network):
232
    pool = network.get_pool(with_lock=False)
233
    return {"name": str(network.id),
234
            "size": pool.pool_size,
235
            "free": pool.count_available()}
236

  
237

  
231 238
@api.api_method(http_method='GET', user_required=True, logger=log,
232 239
                serializations=["json"])
233 240
def list_floating_ip_pools(request):
234 241
    networks = Network.objects.filter(public=True, floating_ip_pool=True)
235 242
    networks = utils.filter_modified_since(request, objects=networks)
236
    pools = [{"name": str(net.id)} for net in networks]
243
    pools = map(network_to_pool, networks)
237 244
    request.serialization = "json"
238 245
    data = json.dumps({"floating_ip_pools": pools})
239 246
    request.serialization = "json"
b/snf-cyclades-app/synnefo/api/test/floating_ips.py
248 248
        self.assertEqual(json.loads(response.content)["floating_ip_pools"], [])
249 249

  
250 250
    def test_list_pools(self):
251
        net = FloatingIPPoolFactory()
251
        net = FloatingIPPoolFactory(subnet="192.168.0.0/30",
252
                                    gateway="192.168.0.1")
252 253
        NetworkFactory(public=True, deleted=True)
253 254
        NetworkFactory(public=False, deleted=False)
254 255
        NetworkFactory(public=True, deleted=False)
255 256
        response = self.get(POOLS_URL)
256 257
        self.assertSuccess(response)
257 258
        self.assertEqual(json.loads(response.content)["floating_ip_pools"],
258
                        [{"name": str(net.id)}])
259
                         [{"name": str(net.id), "size": 4, "free": 1}])
259 260

  
260 261

  
261 262
class FloatingIPActionsTest(BaseAPITest):

Also available in: Unified diff