view TrustStoreGalaxyImport.py @ 5:159d2159e745

Add list files.
author Catherine Wise <catherine.wise@csiro.au>
date Thu, 12 Dec 2013 16:17:43 +1100
parents 32d9b3343955
children b94a8f55b1da
line wrap: on
line source

import sys
import shutil
from py_ts import TrustStoreClient, ts_utils

def printNice(elem, f, depth):
    try:
        f.write('\t'*depth + elem.name + " (" + str(len(elem.fragments)) + " parts)\n")
    except AttributeError:
        f.write('\t'*depth + elem.name + "\n")
        for child in elem.children:
            printNice(child, f, depth+1)

if __name__ == '__main__':

    kms_url = sys.argv[1]
    ims_url = sys.argv[2]
    username = sys.argv[3]
    password = sys.argv[4]
    client_key = sys.argv[5]
    client_secret = sys.argv[6]
    storename = sys.argv[7]
    path = sys.argv[8]
    filename = ""
    outputFile = ""
    if len(sys.argv) > 10:
        filename = sys.argv[9]
        outputFile = sys.argv[10]
    else:
        outputFile = sys.argv[9]

    config = TrustStoreClient.Config(ims_url, kms_url, client_key, client_secret)
    ts = TrustStoreClient.TrustStoreClient(headless=True, config=config)
    try:
        ts.authenticate(username, password)
    except TrustStoreClient.TrustStoreClientAuthenticationException as e:
        print e
        sys.exit(5)
    ts.getPrivateKey('privkey.pem')
    listing = ts.listStores()
    found = False
    for store in listing:
        if store.friendly_name == storename:
            found = True
            root = ts.listDirectory(store)
            location = None
            if path != "/":
                location = ts_utils.ts_utils.dirAtPath(root, path)
                if not location:
                    print "Path not found"
                    sys.exit(3)
            else:
                location = root
            if filename and filename != "":
                downloadMe = ts_utils.ts_utils.recurseToChildNamed(location, filename)
                if downloadMe:
                    download = ts.getFile(store, downloadMe)
                    shutil.copy(download, outputFile)
                else:
                    print "File not found"
                    sys.exit(4)
            else:
                with open(outputFile, 'w+') as f:
                    try:
                        for child in root.children:
                            printNice(child, f, 0)
                    except AttributeError as e:
                        print e
                        print root
    if not found:
        print "Store not found"
        sys.exit(2)