in source/lambda/iot-dr-layer/device_replication.py [0:0]
def delete_policy(c_iot, policy_name):
logger.info('policy_name: {}'.format(policy_name))
try:
response = c_iot.list_targets_for_policy(policyName=policy_name, pageSize=10)
targets = response['targets']
logger.debug('targets: {}'.format(targets))
if targets:
logger.info(
'policy_name: {}: targets attached, policy will not be deleted'.format(
policy_name
)
)
return
response = c_iot.list_policy_versions(policyName=policy_name)
logger.info('policy_name: {} versions: {}'.format(
policy_name, response['policyVersions']))
for version in response["policyVersions"]:
if not version['isDefaultVersion']:
logger.info(
'policy_name: {} deleting policy version: {}'.format(
policy_name, version['versionId']
)
)
c_iot.delete_policy_version(policyName=policy_name,
policyVersionId=version['versionId'])
logger.info('deleting policy: policy_name: {}'.format(policy_name))
c_iot.delete_policy(policyName=policy_name)
except c_iot.exceptions.ResourceNotFoundException:
logger.info('policy_name: {}: does not exist'.format(policy_name))
except Exception as e:
logger.error('delete_policy: {}'.format(e))
raise DeviceReplicationGeneralException(e)