Revision adc46059 snf-cyclades-app/synnefo/api/util.py
b/snf-cyclades-app/synnefo/api/util.py | ||
---|---|---|
60 | 60 |
from synnefo.db.models import (Flavor, VirtualMachine, VirtualMachineMetadata, |
61 | 61 |
Network, BackendNetwork, NetworkInterface, |
62 | 62 |
BridgePoolTable, MacPrefixPoolTable) |
63 |
from synnefo.db.pools import EmptyPool |
|
63 | 64 |
|
64 | 65 |
from synnefo.lib.astakos import get_user |
65 | 66 |
from synnefo.plankton.backend import ImageBackend |
... | ... | |
217 | 218 |
return cidr_block <= 29 and cidr_block > MAX_CIDR_BLOCK |
218 | 219 |
|
219 | 220 |
|
221 |
def allocate_public_address(backend): |
|
222 |
"""Allocate a public IP for a vm.""" |
|
223 |
for network in backend_public_networks(backend): |
|
224 |
try: |
|
225 |
address = get_network_free_address(network) |
|
226 |
return (network, address) |
|
227 |
except EmptyPool: |
|
228 |
pass |
|
229 |
return (None, None) |
|
230 |
|
|
231 |
|
|
220 | 232 |
def backend_public_networks(backend): |
221 | 233 |
"""Return available public networks of the backend. |
222 | 234 |
|
Also available in: Unified diff