in provisioning_lambda/clients/iot.py [0:0]
def disable_legacy_certificate(self, thing_name):
try:
response = self.client.list_thing_principals(thingName=thing_name)
except self.client.exceptions.ResourceNotFoundException:
self.logger.debug('Thing %s does not exist.', thing_name)
else:
for principal in response['principals']:
policies = self.client.list_attached_policies(target=principal, recursive=False)['policies']
for policy in policies:
policy_name = policy['policyName']
self.client.detach_policy(policyName=policy_name, target=principal)
self.delete_policy_versions(policy_name)
self.client.delete_policy(policyName=policy_name)
cert_id = principal.split('/')[-1]
self.client.update_certificate(certificateId=cert_id, newStatus='INACTIVE')
self.client.detach_thing_principal(thingName=thing_name, principal=principal)