Skip to content

Instantly share code, notes, and snippets.

@Miouge1
Created December 5, 2018 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Miouge1/b8ae19b71411655154e74e609b61f24e to your computer and use it in GitHub Desktop.
Save Miouge1/b8ae19b71411655154e74e609b61f24e to your computer and use it in GitHub Desktop.
Toggle S3 bucket versioning in RGW
import argparse
import os
import boto, boto.s3, boto.s3.connection
parser = argparse.ArgumentParser(description='Toggle S3 bucket versioning.')
parser.add_argument('--bucket', required=True, help='Name of the bucket')
parser.add_argument('--secure', default=os.environ.get('RGW_SECURE', '1'), type=bool, help='Secure connection')
parser.add_argument('--host', default=os.environ.get('RGW_HOST', None), help='RGW Host')
parser.add_argument('--port', default=os.environ.get('RGW_PORT', None), type=int, help='RGW port')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--on', dest='versioning', action='store_true', help='Turn on versioning')
group.add_argument('--off', dest='versioning', action='store_false', help='Turn off versioning')
group.add_argument('--get', action='store_true', help='Only print the current versioning status')
args = parser.parse_args()
conn = boto.connect_s3(aws_access_key_id=os.environ.get('RGW_ACCESS_KEY'), aws_secret_access_key=os.environ.get('RGW_SECRET_KEY'), host=args.host, port=args.port, is_secure=args.secure, calling_format=boto.s3.connection.OrdinaryCallingFormat())
bucket = conn.get_bucket(args.bucket)
if not args.get:
bucket.configure_versioning(args.versioning)
print(bucket.get_versioning_status())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment