Context manager for dealing with s3 errors in one place

    bid: bucket_id in form of account_name:bucket_name

def bucket_ops(bid, api=""):
    """Context manager for dealing with s3 errors in one place

    bid: bucket_id in form of account_name:bucket_name
    """
    try:
        yield 42
    except ClientError as e:
        code = e.response['Error']['Code']
        log.info(
            "bucket error bucket:%s error:%s",
            bid,
            e.response['Error']['Code'])
        if code == "NoSuchBucket":
            pass
        elif code == 'AccessDenied':
            connection.sadd('buckets-denied', bid)
        else:
            connection.hset(
                'buckets-unknown-errors',
                bid,
                "%s:%s" % (api, e.response['Error']['Code']))
    except Exception as e:
        connection.hset(
            'buckets-unknown-errors',
            bid,
            "%s:%s" % (api, str(e)))
        # Let the error queue catch it
        raise