def main(): Helpers = helpers.Helpers() Cfn_helpers = cfn_helpers.CfnHelpers() Iam_helpers = iam_helpers.IamHelpers() session = boto3.session.Session() # deploy admin stack role stack = {} stack_name = 'aws-cfn-stack-sets-admin' stack['cfn_args'] = { 'StackName': stack_name, 'Capabilities': ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM'], 'TemplateBody': Helpers.file_to_string( 'templates/AWSCloudFormationStackSetAdministrationRole.yml') } # 'TemplateURL': 'https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AWSCloudFormationStackSetAdministrationRole.yml'} # stack['cfn_args']['Parameters'] = Cfn_helpers.dict_to_cfn_parameters({''}) if Iam_helpers.check_iam_role_exists( session, 'AWSCloudFormationStackSetAdministrationRoleQS', ) and not Cfn_helpers.cfn_check_stack_exists(session, stack_name): msg = 'Admin role already exists, but created outside of aws-cfn-stack-sets, free to move on' print(msg) return msg response = Cfn_helpers.create_update_stack(session, stack['cfn_args']) response = Cfn_helpers.stack_complete(session, stack['cfn_args']['StackName']) return
import boto3 import os from stack_set_helpers import helpers, cfn_helpers, org_helpers from botocore.exceptions import ClientError import botocore import uuid import boto3 import threading import time Helpers = helpers.Helpers() Cfn_helpers = cfn_helpers.CfnHelpers() Org_helpers = org_helpers.Organization_Helpers() def delete_stack_set(session, stack_set, accounts): cfn = session.client('cloudformation') stack_set_name = stack_set['StackSetName'] stack_set_response = cfn.describe_stack_set( StackSetName=stack_set_name ) instances_dict = dict(StackSetName=stack_set_name, # Accounts=accounts, # DeploymentTargets={'OrganizationalUnitIds': [ou_id]}, Regions=[session.region_name], RetainStacks=False, OperationId=str(uuid.uuid1())) if 'OrganizationalUnitIds' in stack_set_response['StackSet']: