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