in aws_codeseeder/services/cfn.py [0:0]
def _create_changeset(stack_name: str, template_str: str, seedkit_tag: str, template_path: str = "") -> Tuple[str, str]:
now = datetime.utcnow().isoformat()
description = f"Created by AWS CodeSeeder CLI at {now} UTC"
changeset_name = CHANGESET_PREFIX + str(int(time.time()))
stack_exist, _ = does_stack_exist(stack_name=stack_name)
changeset_type = "UPDATE" if stack_exist else "CREATE"
kwargs = {
"ChangeSetName": changeset_name,
"StackName": stack_name,
"ChangeSetType": changeset_type,
"Capabilities": ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"],
"Description": description,
"Tags": ({"Key": "codeseeder-seedkit-name", "Value": seedkit_tag},),
}
if template_str:
kwargs.update({"TemplateBody": template_str})
elif template_path:
LOGGER.info(f"template_path={template_path}")
kwargs.update({"TemplateURL": template_path})
resp = boto3_client("cloudformation").create_change_set(**kwargs)
return str(resp["Id"]), changeset_type