~ubuntu-branches/ubuntu/trusty/swift/trusty-updates

« back to all changes in this revision

Viewing changes to swift/account/server.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Soren Hansen, Chuck Short
  • Date: 2012-09-07 19:02:36 UTC
  • mfrom: (1.2.12)
  • Revision ID: package-import@ubuntu.com-20120907190236-fqrmbzm7v6zivs8d
Tags: 1.7.0-0ubuntu1
[ Soren Hansen ]
* Update debian/watch to account for symbolically named tarballs and
  use newer URL.
* Run unit tests at build time.
* Fix Launchpad URLs in debian/watch.

[ Chuck Short ]
* New upstream release
* debian/control: Add pubthon-moc as a build dep
* debian/rules: Dont fail if testsuite fails.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
    HTTPCreated, HTTPForbidden, HTTPInternalServerError, \
28
28
    HTTPMethodNotAllowed, HTTPNoContent, HTTPNotFound, \
29
29
    HTTPPreconditionFailed, HTTPConflict
30
 
import simplejson
31
30
 
32
31
import swift.common.db
33
32
from swift.common.db import AccountBroker
34
33
from swift.common.utils import get_logger, get_param, hash_path, public, \
35
34
    normalize_timestamp, split_path, storage_directory, TRUE_VALUES, \
36
 
    validate_device_partition
 
35
    validate_device_partition, json
37
36
from swift.common.constraints import ACCOUNT_LISTING_LIMIT, \
38
37
    check_mount, check_float, check_utf8, FORMAT2CONTENT_TYPE
39
38
from swift.common.db_replicator import ReplicatorRpc
266
265
        account_list = broker.list_containers_iter(limit, marker, end_marker,
267
266
                                                   prefix, delimiter)
268
267
        if out_content_type == 'application/json':
269
 
            json_pattern = ['"name":%s', '"count":%s', '"bytes":%s']
270
 
            json_pattern = '{' + ','.join(json_pattern) + '}'
271
 
            json_out = []
 
268
            data = []
272
269
            for (name, object_count, bytes_used, is_subdir) in account_list:
273
 
                name = simplejson.dumps(name)
274
270
                if is_subdir:
275
 
                    json_out.append('{"subdir":%s}' % name)
 
271
                    data.append({'subdir': name})
276
272
                else:
277
 
                    json_out.append(json_pattern %
278
 
                        (name, object_count, bytes_used))
279
 
            account_list = '[' + ','.join(json_out) + ']'
 
273
                    data.append({'name': name, 'count': object_count,
 
274
                                'bytes': bytes_used})
 
275
            account_list = json.dumps(data)
280
276
        elif out_content_type.endswith('/xml'):
281
277
            output_list = ['<?xml version="1.0" encoding="UTF-8"?>',
282
278
                           '<account name="%s">' % account]
321
317
            self.logger.increment('REPLICATE.errors')
322
318
            return HTTPInsufficientStorage(drive=drive, request=req)
323
319
        try:
324
 
            args = simplejson.load(req.environ['wsgi.input'])
 
320
            args = json.load(req.environ['wsgi.input'])
325
321
        except ValueError, err:
326
322
            self.logger.increment('REPLICATE.errors')
327
323
            return HTTPBadRequest(body=str(err), content_type='text/plain')