Revision b14725eb snf-cyclades-app/synnefo/api/management/commands/network-create.py
b/snf-cyclades-app/synnefo/api/management/commands/network-create.py | ||
---|---|---|
36 | 36 |
from django.core.management.base import BaseCommand, CommandError |
37 | 37 |
|
38 | 38 |
from synnefo.db.models import Network, Backend |
39 |
from synnefo.api.util import network_link_from_type |
|
39 |
from synnefo.api.util import network_link_from_type, validate_network_size
|
|
40 | 40 |
from synnefo.logic.backend import create_network |
41 |
from synnefo import settings |
|
41 | 42 |
|
42 | 43 |
import ipaddr |
43 | 44 |
|
... | ... | |
47 | 48 |
|
48 | 49 |
|
49 | 50 |
class Command(BaseCommand): |
51 |
can_import_settings = True |
|
52 |
|
|
50 | 53 |
help = "Create a new network" |
51 | 54 |
|
52 | 55 |
option_list = BaseCommand.option_list + ( |
... | ... | |
154 | 157 |
create_network(network) |
155 | 158 |
|
156 | 159 |
|
157 |
|
|
158 | 160 |
def validate_network_info(options): |
159 | 161 |
subnet = options['subnet'] |
160 | 162 |
gateway = options['gateway'] |
... | ... | |
162 | 164 |
gateway6 = options['gateway6'] |
163 | 165 |
|
164 | 166 |
try: |
165 |
ipaddr.IPv4Network(subnet) |
|
167 |
net = ipaddr.IPv4Network(subnet) |
|
168 |
prefix = net.prefixlen |
|
169 |
if not validate_network_size(prefix): |
|
170 |
raise CommandError("Unsupport network mask %d." |
|
171 |
" Must be in range (%s,29] " |
|
172 |
% (prefix, settings.MAX_CIDR_BLOCK)) |
|
166 | 173 |
except ValueError: |
167 | 174 |
raise CommandError('Malformed subnet') |
168 | 175 |
try: |
Also available in: Unified diff