def opsmgr_import_stemcell(stack, stemcell): folder = "stemcells" print "Creating folder for", folder command = [ 'mkdir', '-p', folder ] opsmgr_exec(stack, command) product = pivnet.pivnet_select_product("Stemcells") release = pivnet.pivnet_select_release(product, stemcell["version"]) pivnet.pivnet_accept_eula(product, release) files = pivnet.pivnet_files(product, release) os_pattern = '-' + stemcell["os"] + '-' is_pattern = '-' + stemcell["infrastructure"] + '-' for file in files: download_filename = os.path.basename(file["aws_object_key"]) if not os_pattern in download_filename: continue if not is_pattern in download_filename: continue download_filename = folder + "/" + download_filename download_url = file["_links"]["download"]["href"] print "Downloading stemcell", download_filename command = [ 'wget', '-q', '-O', download_filename, '--post-data=""', '--header="Authorization: Token ' + config.get('pivotal-network', 'token') + '"', download_url ] opsmgr_exec(stack, command) print "Importing stemcell", download_filename username = config.get("stack-" + stack["StackName"], "opsmgr-username") password = config.get("stack-" + stack["StackName"], "opsmgr-password") command = [ 'curl', '-k', 'https://localhost/api/stemcells', '-F', 'stemcell[file]=@' + download_filename, '-X', 'POST', '-u', username + ':' + password ] opsmgr_exec(stack, command)
def opsmgr_import_product(stack, product, release): folder = product["slug"] print "Creating folder for product", folder command = [ 'mkdir', '-p', folder ] opsmgr_exec(stack, command) print "Removing older versions of product", folder command = [ 'rm', '-f', folder + '/*' ] opsmgr_exec(stack, command) files = pivnet.pivnet_files(product, release) for file in files: download_filename = os.path.basename(file["aws_object_key"]) if not download_filename.endswith(".pivotal"): continue download_filename = folder + "/" + download_filename download_url = file["_links"]["download"]["href"] print "Downloading file", download_filename command = [ 'wget', '-q', '-O', download_filename, '--post-data=""', '--header="Authorization: Token ' + config.get('pivotal-network', 'token') + '"', download_url ] opsmgr_exec(stack, command) print "Importing file", download_filename username = config.get("stack-" + stack["StackName"], "opsmgr-username") password = config.get("stack-" + stack["StackName"], "opsmgr-password") command = [ 'curl', '-k', 'https://localhost/api/products', '-F', 'product[file]=@' + download_filename, '-X', 'POST', '-u', username + ':' + password ] opsmgr_exec(stack, command) opsmgr_resolve_stemcell_criteria(stack, product)