Mercurial > repos > shellac > guppy_basecaller
diff env/bin/glacier @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/bin/glacier Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -#!/Users/pldms/Development/Projects/2020/david-matthews-galaxy/guppy_basecaller/env/bin/python3 -# -*- coding: utf-8 -*- -# Copyright (c) 2012 Miguel Olivares http://moliware.com/ -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, dis- -# tribute, sublicense, and/or sell copies of the Software, and to permit -# persons to whom the Software is furnished to do so, subject to the fol- -# lowing conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# -""" - glacier - ~~~~~~~ - - Amazon Glacier tool built on top of boto. Look at the usage method to see - how to use it. - - Author: Miguel Olivares <miguel@moliware.com> -""" -import sys - -from boto.glacier import connect_to_region -from getopt import getopt, GetoptError -from os.path import isfile, basename - - -COMMANDS = ('vaults', 'jobs', 'upload') - - -def usage(): - print(""" -glacier <command> [args] - - Commands - vaults - Operations with vaults - jobs - Operations with jobs - upload - Upload files to a vault. If the vault doesn't exits, it is - created - - Common args: - --access_key - Your AWS Access Key ID. If not supplied, boto will - use the value of the environment variable - AWS_ACCESS_KEY_ID - --secret_key - Your AWS Secret Access Key. If not supplied, boto - will use the value of the environment variable - AWS_SECRET_ACCESS_KEY - --region - AWS region to use. Possible values: us-east-1, us-west-1, - us-west-2, ap-northeast-1, eu-west-1. - Default: us-east-1 - - Vaults operations: - - List vaults: - glacier vaults - - Jobs operations: - - List jobs: - glacier jobs <vault name> - - Uploading files: - - glacier upload <vault name> <files> - - Examples : - glacier upload pics *.jpg - glacier upload pics a.jpg b.jpg -""") - sys.exit() - - -def connect(region, debug_level=0, access_key=None, secret_key=None): - """ Connect to a specific region """ - layer2 = connect_to_region(region, - aws_access_key_id=access_key, - aws_secret_access_key=secret_key, - debug=debug_level) - if layer2 is None: - print('Invalid region (%s)' % region) - sys.exit(1) - return layer2 - - -def list_vaults(region, access_key=None, secret_key=None): - layer2 = connect(region, access_key = access_key, secret_key = secret_key) - for vault in layer2.list_vaults(): - print(vault.arn) - - -def list_jobs(vault_name, region, access_key=None, secret_key=None): - layer2 = connect(region, access_key = access_key, secret_key = secret_key) - print(layer2.layer1.list_jobs(vault_name)) - - -def upload_files(vault_name, filenames, region, access_key=None, secret_key=None): - layer2 = connect(region, access_key = access_key, secret_key = secret_key) - layer2.create_vault(vault_name) - glacier_vault = layer2.get_vault(vault_name) - for filename in filenames: - if isfile(filename): - sys.stdout.write('Uploading %s to %s...' % (filename, vault_name)) - sys.stdout.flush() - archive_id = glacier_vault.upload_archive( - filename, - description = basename(filename)) - print(' done. Vault returned ArchiveID %s' % archive_id) - -def main(): - if len(sys.argv) < 2: - usage() - - command = sys.argv[1] - if command not in COMMANDS: - usage() - - argv = sys.argv[2:] - options = 'a:s:r:' - long_options = ['access_key=', 'secret_key=', 'region='] - try: - opts, args = getopt(argv, options, long_options) - except GetoptError as e: - usage() - - # Parse agument - access_key = secret_key = None - region = 'us-east-1' - for option, value in opts: - if option in ('-a', '--access_key'): - access_key = value - elif option in ('-s', '--secret_key'): - secret_key = value - elif option in ('-r', '--region'): - region = value - # handle each command - if command == 'vaults': - list_vaults(region, access_key, secret_key) - elif command == 'jobs': - if len(args) != 1: - usage() - list_jobs(args[0], region, access_key, secret_key) - elif command == 'upload': - if len(args) < 2: - usage() - upload_files(args[0], args[1:], region, access_key, secret_key) - - -if __name__ == '__main__': - main()