Revision 78fa9134 snf-cyclades-app/synnefo/plankton/views.py

b/snf-cyclades-app/synnefo/plankton/views.py
42 42

  
43 43
from snf_django.lib import api
44 44
from snf_django.lib.api import faults
45
from synnefo.lib.text import uenc
45 46
from synnefo.plankton.utils import image_backend
46
from synnefo.plankton.backend import split_url
47
from synnefo.util.text import uenc
47
from synnefo.plankton.backend import split_url, InvalidLocation
48

  
48 49

  
49 50
FILTERS = ('name', 'container_format', 'disk_format', 'status', 'size_min',
50 51
           'size_max')
......
139 140
    params = _get_image_headers(request)
140 141
    log.debug('add_image %s', params)
141 142

  
142
    assert 'name' in params
143
    assert set(params.keys()).issubset(set(ADD_FIELDS))
143
    if not set(params.keys()).issubset(set(ADD_FIELDS)):
144
        raise faults.BadRequest("Invalid parameters")
144 145

  
145 146
    name = params.pop('name')
146

  
147
    if len(uenc(name)) < 1:
147
    if name is None:
148
        raise faults.BadRequest("Image 'name' parameter is required")
149
    elif len(uenc(name)) == 0:
148 150
        raise faults.BadRequest("Invalid image name")
149

  
150 151
    location = params.pop('location', None)
152
    if location is None:
153
        raise faults.BadRequest("'location' parameter is required")
154

  
151 155
    try:
152 156
        split_url(location)
153
    except AssertionError:
157
    except InvalidLocation:
154 158
        raise faults.BadRequest("Invalid location '%s'" % location)
155 159

  
156 160
    if location:
......
284 288
    params.setdefault('sort_key', 'created_at')
285 289
    params.setdefault('sort_dir', 'desc')
286 290

  
287
    assert params['sort_key'] in SORT_KEY_OPTIONS
288
    assert params['sort_dir'] in SORT_DIR_OPTIONS
291
    if not params['sort_key'] in SORT_KEY_OPTIONS:
292
        raise faults.BadRequest("Invalid 'sort_key'")
293
    if not params['sort_dir'] in SORT_DIR_OPTIONS:
294
        raise faults.BadRequest("Invalid 'sort_dir'")
289 295

  
290 296
    if 'size_max' in filters:
291 297
        try:
......
367 373
    meta = _get_image_headers(request)
368 374
    log.debug('update_image %s', meta)
369 375

  
370
    assert set(meta.keys()).issubset(set(UPDATE_FIELDS))
376
    if not set(meta.keys()).issubset(set(UPDATE_FIELDS)):
377
        raise faults.BadRequest("Invalid metadata")
371 378

  
372 379
    with image_backend(request.user_uniq) as backend:
373 380
        image = backend.update_metadata(image_id, meta)

Also available in: Unified diff