Revision b3fd98ae snf-cyclades-app/synnefo/api/networks.py
b/snf-cyclades-app/synnefo/api/networks.py | ||
---|---|---|
31 | 31 |
# interpreted as representing official policies, either expressed |
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 |
from logging import getLogger |
|
35 | 34 |
|
36 |
from django.conf.urls.defaults import patterns |
|
37 | 35 |
from django.conf import settings |
38 |
from django.db.models import Q
|
|
36 |
from django.conf.urls.defaults import patterns
|
|
39 | 37 |
from django.db import transaction |
38 |
from django.db.models import Q |
|
40 | 39 |
from django.http import HttpResponse |
41 | 40 |
from django.template.loader import render_to_string |
42 | 41 |
from django.utils import simplejson as json |
43 | 42 |
|
44 |
from snf_django.lib.api import faults |
|
43 |
from snf_django.lib import api |
|
44 |
from snf_django.lib.api import faults, utils |
|
45 | 45 |
from synnefo.api import util |
46 | 46 |
from synnefo.api.actions import network_actions |
47 |
from synnefo.api.common import method_not_allowed |
|
48 | 47 |
from synnefo import quotas |
49 | 48 |
from synnefo.db.models import Network |
50 | 49 |
from synnefo.db.pools import EmptyPool |
51 | 50 |
from synnefo.logic import backend |
52 | 51 |
|
53 | 52 |
|
54 |
log = getLogger('synnefo.api') |
|
53 |
from logging import getLogger |
|
54 |
log = getLogger(__name__) |
|
55 | 55 |
|
56 | 56 |
urlpatterns = patterns( |
57 | 57 |
'synnefo.api.networks', |
... | ... | |
68 | 68 |
elif request.method == 'POST': |
69 | 69 |
return create_network(request) |
70 | 70 |
else: |
71 |
return method_not_allowed(request) |
|
71 |
return api.method_not_allowed(request)
|
|
72 | 72 |
|
73 | 73 |
|
74 | 74 |
def network_demux(request, network_id): |
... | ... | |
79 | 79 |
elif request.method == 'DELETE': |
80 | 80 |
return delete_network(request, network_id) |
81 | 81 |
else: |
82 |
return method_not_allowed(request) |
|
82 |
return api.method_not_allowed(request)
|
|
83 | 83 |
|
84 | 84 |
|
85 | 85 |
def network_to_dict(network, user_id, detail=True): |
... | ... | |
91 | 91 |
d['gateway6'] = network.gateway6 |
92 | 92 |
d['dhcp'] = network.dhcp |
93 | 93 |
d['type'] = network.flavor |
94 |
d['updated'] = util.isoformat(network.updated) |
|
95 |
d['created'] = util.isoformat(network.created) |
|
94 |
d['updated'] = utils.isoformat(network.updated)
|
|
95 |
d['created'] = utils.isoformat(network.created)
|
|
96 | 96 |
d['status'] = network.state |
97 | 97 |
d['public'] = network.public |
98 | 98 |
|
... | ... | |
112 | 112 |
return HttpResponse(data, status=status) |
113 | 113 |
|
114 | 114 |
|
115 |
@util.api_method('GET')
|
|
115 |
@api.api_method(http_method='GET', user_required=True, logger=log)
|
|
116 | 116 |
def list_networks(request, detail=False): |
117 | 117 |
# Normal Response Codes: 200, 203 |
118 | 118 |
# Error Response Codes: computeFault (400, 500), |
... | ... | |
122 | 122 |
# overLimit (413) |
123 | 123 |
|
124 | 124 |
log.debug('list_networks detail=%s', detail) |
125 |
since = util.isoparse(request.GET.get('changes-since')) |
|
125 |
since = utils.isoparse(request.GET.get('changes-since'))
|
|
126 | 126 |
user_networks = Network.objects.filter(Q(userid=request.user_uniq) | |
127 | 127 |
Q(public=True)) |
128 | 128 |
|
... | ... | |
146 | 146 |
return HttpResponse(data, status=200) |
147 | 147 |
|
148 | 148 |
|
149 |
@util.api_method('POST')
|
|
149 |
@api.api_method(http_method='POST', user_required=True, logger=log)
|
|
150 | 150 |
@quotas.uses_commission |
151 | 151 |
@transaction.commit_manually |
152 | 152 |
def create_network(serials, request): |
... | ... | |
160 | 160 |
# overLimit (413) |
161 | 161 |
|
162 | 162 |
try: |
163 |
req = util.get_request_dict(request) |
|
163 |
req = utils.get_request_dict(request)
|
|
164 | 164 |
log.info('create_network %s', req) |
165 | 165 |
|
166 | 166 |
user_id = request.user_uniq |
... | ... | |
242 | 242 |
return response |
243 | 243 |
|
244 | 244 |
|
245 |
@util.api_method('GET')
|
|
245 |
@api.api_method(http_method='GET', user_required=True, logger=log)
|
|
246 | 246 |
def get_network_details(request, network_id): |
247 | 247 |
# Normal Response Codes: 200, 203 |
248 | 248 |
# Error Response Codes: computeFault (400, 500), |
... | ... | |
258 | 258 |
return render_network(request, netdict) |
259 | 259 |
|
260 | 260 |
|
261 |
@util.api_method('PUT')
|
|
261 |
@api.api_method(http_method='PUT', user_required=True, logger=log)
|
|
262 | 262 |
def update_network_name(request, network_id): |
263 | 263 |
# Normal Response Code: 204 |
264 | 264 |
# Error Response Codes: computeFault (400, 500), |
... | ... | |
270 | 270 |
# itemNotFound (404), |
271 | 271 |
# overLimit (413) |
272 | 272 |
|
273 |
req = util.get_request_dict(request) |
|
273 |
req = utils.get_request_dict(request)
|
|
274 | 274 |
log.info('update_network_name %s', network_id) |
275 | 275 |
|
276 | 276 |
try: |
... | ... | |
288 | 288 |
return HttpResponse(status=204) |
289 | 289 |
|
290 | 290 |
|
291 |
@util.api_method('DELETE')
|
|
291 |
@api.api_method(http_method='DELETE', user_required=True, logger=log)
|
|
292 | 292 |
@transaction.commit_on_success |
293 | 293 |
def delete_network(request, network_id): |
294 | 294 |
# Normal Response Code: 204 |
... | ... | |
317 | 317 |
return HttpResponse(status=204) |
318 | 318 |
|
319 | 319 |
|
320 |
@util.api_method('POST')
|
|
320 |
@api.api_method(http_method='POST', user_required=True, logger=log)
|
|
321 | 321 |
def network_action(request, network_id): |
322 |
req = util.get_request_dict(request) |
|
322 |
req = utils.get_request_dict(request)
|
|
323 | 323 |
log.debug('network_action %s %s', network_id, req) |
324 | 324 |
if len(req) != 1: |
325 | 325 |
raise faults.BadRequest('Malformed request.') |
Also available in: Unified diff