Exemple #1
0
def post_account(api_ver, account):
    _validate_account(api_ver, account)
    remove_meta, update_meta = get_meta_to_remove_and_update(
        'x-account-meta-', 'x-remove-account-meta-'
    )
    update_account_meta(
        user_name=account, remove_list=remove_meta, update_dict=update_meta
    )
    bottle.response.status = 204
Exemple #2
0
def get_account(api_ver, account):
    _validate_account(api_ver, account)

    prefix = bottle.request.params.get('prefix', '')
    delimiter = bottle.request.params.get('delimiter')
    limit = bottle.request.params.get('limit', '')
    marker = bottle.request.params.get('marker', '')
    end_marker = bottle.request.params.get('end_marker', '')

    if delimiter and (len(delimiter) > 1 or ord(delimiter) > 254):
        raise bottle.HTTPError(412, 'Bad delimiter')

    try:
        limit = int(limit)
    except ValueError:
        limit = ACCOUNT_LISTING_LIMIT

    if limit > ACCOUNT_LISTING_LIMIT:
        raise bottle.HTTPError(
            412, 'Maximum limit is %d' % ACCOUNT_LISTING_LIMIT
        )

    account_data = get_account_data(
        user_name=account, prefix=prefix, delimiter=delimiter,
        limit=limit, start_marker=marker, end_marker=end_marker
    )

    bottle.response.set_header('x-timestamp', account_data['timestamp'])
    for key, value in account_data['meta'].iteritems():
        bottle.response.set_header(str(key), str(value))

    format_param = get_format_from_request()
    logger.debug('Accepted format: %s', format_param)

    serializer = get_serializer(format_param)
    bottle.response.content_type = serializer.content_type
    if not account_data['content']:
        bottle.response.status = 204
        return ''

    return serializer.serialize(account_data)
Exemple #3
0
def post_account(api_ver, account):
    _validate_account(api_ver, account)
    remove_meta, update_meta = get_meta_to_remove_and_update("x-account-meta-", "x-remove-account-meta-")
    update_account_meta(user_name=account, remove_list=remove_meta, update_dict=update_meta)
    bottle.response.status = 204