Revision bd40abfa snf-cyclades-app/synnefo/api/networks.py

b/snf-cyclades-app/synnefo/api/networks.py
41 41
from django.template.loader import render_to_string
42 42
from django.utils import simplejson as json
43 43

  
44
from snf_django.lib.api import faults
44 45
from synnefo.api import util
45 46
from synnefo.api.actions import network_actions
46 47
from synnefo.api.common import method_not_allowed
47
from synnefo.api.faults import (ServiceUnavailable, BadRequest, Forbidden,
48
                                NetworkInUse, OverLimit)
49 48
from synnefo import quotas
50 49
from synnefo.db.models import Network
51 50
from synnefo.db.pools import EmptyPool
......
169 168
            d = req['network']
170 169
            name = d['name']
171 170
        except KeyError:
172
            raise BadRequest("Malformed request")
171
            raise faults.BadRequest("Malformed request")
173 172

  
174 173
        # Get and validate flavor. Flavors are still exposed as 'type' in the
175 174
        # API.
176 175
        flavor = d.get("type", None)
177 176
        if flavor is None:
178
            raise BadRequest("Missing request parameter 'type'")
177
            raise faults.BadRequest("Missing request parameter 'type'")
179 178
        elif flavor not in Network.FLAVORS.keys():
180
            raise BadRequest("Invalid network type '%s'" % flavor)
179
            raise faults.BadRequest("Invalid network type '%s'" % flavor)
181 180
        elif flavor not in settings.API_ENABLED_NETWORK_FLAVORS:
182
            raise Forbidden("Can not create network of type '%s'" % flavor)
181
            raise faults.Forbidden("Can not create network of type '%s'" % flavor)
183 182

  
184 183
        public = d.get("public", False)
185 184
        if public:
186
            raise Forbidden("Can not create a public network.")
185
            raise faults.Forbidden("Can not create a public network.")
187 186

  
188 187
        dhcp = d.get('dhcp', True)
189 188

  
......
224 223
        except EmptyPool:
225 224
            log.error("Failed to allocate resources for network of type: %s",
226 225
                      flavor)
227
            raise ServiceUnavailable("Failed to allocate network resources")
226
            raise faults.ServiceUnavailable("Failed to allocate network resources")
228 227

  
229 228
        # Create BackendNetwork entries for each Backend
230 229
        network.create_backend_network()
......
277 276
    try:
278 277
        name = req['network']['name']
279 278
    except (TypeError, KeyError):
280
        raise BadRequest('Malformed request.')
279
        raise faults.BadRequest('Malformed request.')
281 280

  
282 281
    net = util.get_network(network_id, request.user_uniq)
283 282
    if net.public:
284
        raise Forbidden('Can not rename the public network.')
283
        raise faults.Forbidden('Can not rename the public network.')
285 284
    if net.deleted:
286 285
        raise Network.DeletedError
287 286
    net.name = name
......
303 302
    log.info('delete_network %s', network_id)
304 303
    net = util.get_network(network_id, request.user_uniq, for_update=True)
305 304
    if net.public:
306
        raise Forbidden('Can not delete the public network.')
305
        raise faults.Forbidden('Can not delete the public network.')
307 306

  
308 307
    if net.deleted:
309 308
        raise Network.DeletedError
310 309

  
311 310
    if net.machines.all():  # Nics attached on network
312
        raise NetworkInUse('Machines are connected to network.')
311
        raise faults.NetworkInUse('Machines are connected to network.')
313 312

  
314 313
    net.action = 'DESTROY'
315 314
    net.save()
......
323 322
    req = util.get_request_dict(request)
324 323
    log.debug('network_action %s %s', network_id, req)
325 324
    if len(req) != 1:
326
        raise BadRequest('Malformed request.')
325
        raise faults.BadRequest('Malformed request.')
327 326

  
328 327
    net = util.get_network(network_id, request.user_uniq)
329 328
    if net.public:
330
        raise Forbidden('Can not modify the public network.')
329
        raise faults.Forbidden('Can not modify the public network.')
331 330
    if net.deleted:
332 331
        raise Network.DeletedError
333 332

  
......
337 336
        assert isinstance(val, dict)
338 337
        return network_actions[key](request, net, req[key])
339 338
    except KeyError:
340
        raise BadRequest('Unknown action.')
339
        raise faults.BadRequest('Unknown action.')
341 340
    except AssertionError:
342
        raise BadRequest('Invalid argument.')
341
        raise faults.BadRequest('Invalid argument.')

Also available in: Unified diff