Example #1
0
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)
Example #2
0
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)