def createProvisioningPolicy()

in iotHandler.py [0:0]


    def createProvisioningPolicy(self, policyName, provisioningTemplateName, payloadJsonFileName):
        try:
            version = None
            response = self.getPolicy(policyName)
            if response != 'ResourceNotFoundException':
                version = response['defaultVersionId']
              
            #open the json
            with open('assets/' + payloadJsonFileName) as f:
                policy = json.load(f)

            accountId = self.session.client('sts').get_caller_identity().get('Account')
            region = self.session.region_name
            
            policyF = json.dumps(policy).replace("$REGION", region).replace("$ACCOUNT", accountId).replace("$PROVTEMPLATE",provisioningTemplateName )
                        
            if version is not None:   
                #print(version) 
                self.client.delete_policy_version(
                    policyName=policyName,
                    policyVersionId=version
                )
                
                #update or create a new version but set this version as default as it refers to a new provisioning template
                create_policy_res = self.client.create_policy_version(
                    policyName=policyName,
                    policyDocument=policyF,
                    setAsDefault= True
                )
            else:
                #update or create a new version but set this version as default as it refers to a new provisioning template
                #print(json.dumps(policyF))
                create_policy_res = self.client.create_policy(
                    policyName=policyName,
                    policyDocument=policyF
                )
                
                
            return create_policy_res
        except ClientError as error:
            if error.response['Error']['Code'] == 'EntityAlreadyExists':
                return 'Policy already exists... hence exiting from here'
            else:
                return 'Unexpected error occurred... Role could not be created', error