def disable_legacy_certificate()

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)