def main(): subparsers = base_parser.add_subparsers( title='subcommands', dest='subcommand') base_parser.add_argument( '--incremental_backups', action='store_true', default=False) put_parser = subparsers.add_parser( 'put', help="put files on s3 from a manifest") manifest_parser = subparsers.add_parser( 'create-upload-manifest', help="put files on s3 from a manifest") # put arguments put_parser = add_s3_arguments(put_parser) put_parser.add_argument( '--bufsize', required=False, default=BUFFER_SIZE, type=int, help="Compress and upload buffer size") put_parser.add_argument( '--manifest', required=True, help="The manifest containing the files to put on s3") put_parser.add_argument( '--concurrency', required=False, default=DEFAULT_CONCURRENCY, type=int, help="Compress and upload concurrent processes") put_parser.add_argument( '--reduced-redundancy', required=False, default=DEFAULT_REDUCED_REDUNDANCY, action="store_true", help="Compress and upload concurrent processes") put_parser.add_argument( '--rate-limit', required=False, default=0, type=int, help="Limit the upload speed to S3 (by using 'pv'). Value expressed in kilobytes (*1024)") # create-upload-manifest arguments manifest_parser.add_argument('--snapshot_name', required=True, type=str) manifest_parser.add_argument('--conf_path', required=True, type=str) manifest_parser.add_argument('--manifest_path', required=True, type=str) manifest_parser.add_argument( '--snapshot_keyspaces', default='', required=False, type=str) manifest_parser.add_argument( '--snapshot_table', required=False, default='', type=str) manifest_parser.add_argument( '--exclude_tables', required=False, type=str) args = base_parser.parse_args() subcommand = args.subcommand if subcommand == 'create-upload-manifest': create_upload_manifest( args.snapshot_name, args.snapshot_keyspaces, args.snapshot_table, args.conf_path, args.manifest_path, args.exclude_tables, args.incremental_backups ) if subcommand == 'put': check_lzop() if args.rate_limit > 0: check_pv() put_from_manifest( args.s3_bucket_name, get_s3_connection_host(args.s3_bucket_region), args.s3_ssenc, args.s3_base_path, args.aws_access_key_id, args.aws_secret_access_key, args.manifest, args.bufsize, args.reduced_redundancy, args.rate_limit, args.concurrency, args.incremental_backups )
def main(): subparsers = base_parser.add_subparsers(title="subcommands", dest="subcommand") base_parser.add_argument("--incremental_backups", action="store_true", default=False) put_parser = subparsers.add_parser("put", help="put files on s3 from a manifest") manifest_parser = subparsers.add_parser("create-upload-manifest", help="put files on s3 from a manifest") # put arguments put_parser = add_s3_arguments(put_parser) put_parser.add_argument( "--bufsize", required=False, default=BUFFER_SIZE, type=int, help="Compress and upload buffer size" ) put_parser.add_argument("--manifest", required=True, help="The manifest containing the files to put on s3") put_parser.add_argument( "--concurrency", required=False, default=DEFAULT_CONCURRENCY, type=int, help="Compress and upload concurrent processes", ) put_parser.add_argument( "--reduced-redundancy", required=False, default=DEFAULT_REDUCED_REDUNDANCY, action="store_true", help="Compress and upload concurrent processes", ) put_parser.add_argument( "--rate-limit", required=False, default=0, type=int, help="Limit the upload speed to S3 (by using 'pv'). Value expressed in kilobytes (*1024)", ) # create-upload-manifest arguments manifest_parser.add_argument("--snapshot_name", required=True, type=str) manifest_parser.add_argument("--conf_path", required=True, type=str) manifest_parser.add_argument("--manifest_path", required=True, type=str) manifest_parser.add_argument("--snapshot_keyspaces", default="", required=False, type=str) manifest_parser.add_argument("--snapshot_table", required=False, default="", type=str) manifest_parser.add_argument("--exclude_tables", required=False, type=str) args = base_parser.parse_args() subcommand = args.subcommand if subcommand == "create-upload-manifest": create_upload_manifest( args.snapshot_name, args.snapshot_keyspaces, args.snapshot_table, args.conf_path, args.manifest_path, args.exclude_tables, args.incremental_backups, ) if subcommand == "put": check_lzop() if args.rate_limit > 0: check_pv() put_from_manifest( args.s3_bucket_name, get_s3_connection_host(args.s3_bucket_region), args.s3_ssenc, args.s3_base_path, args.aws_access_key_id, args.aws_secret_access_key, args.manifest, args.bufsize, args.reduced_redundancy, args.rate_limit, args.concurrency, args.incremental_backups, )