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