pulumi/tests/testdata/codegen/functions-pp/python/functions.py

50 lines
1.7 KiB
Python

import pulumi
import base64
import hashlib
import mimetypes
import os
import pulumi_aws as aws
def computeFilebase64sha256(path):
fileData = open(path).read().encode()
hashedData = hashlib.sha256(fileData.encode()).digest()
return base64.b64encode(hashedData).decode()
encoded = base64.b64encode("haha business".encode()).decode()
decoded = base64.b64decode(encoded.encode()).decode()
joined = "-".join([
encoded,
decoded,
"2",
])
# tests that we initialize "var, err" with ":=" first, then "=" subsequently (Go specific)
zone = aws.get_availability_zones()
zone2 = aws.get_availability_zones()
bucket = aws.s3.Bucket("bucket")
encoded2 = bucket.id.apply(lambda id: base64.b64encode(id.encode()).decode())
decoded2 = bucket.id.apply(lambda id: base64.b64decode(id.encode()).decode())
secret_value = pulumi.Output.secret("hello")
plain_value = pulumi.Output.unsecret(secret_value)
current_stack = pulumi.get_stack()
current_project = pulumi.get_project()
working_directory = os.getcwd()
file_mime_type = mimetypes.guess_type("./base64.txt")[0]
# using the filebase64 function
first = aws.s3.BucketObject("first",
bucket=bucket.id,
source=pulumi.StringAsset((lambda path: base64.b64encode(open(path).read().encode()).decode())("./base64.txt")),
content_type=file_mime_type,
tags={
"stack": current_stack,
"project": current_project,
"cwd": working_directory,
})
# using the filebase64sha256 function
second = aws.s3.BucketObject("second",
bucket=bucket.id,
source=pulumi.StringAsset(computeFilebase64sha256("./base64.txt")))
# using the sha1 function
third = aws.s3.BucketObject("third",
bucket=bucket.id,
source=pulumi.StringAsset(hashlib.sha1("content".encode()).hexdigest()))