| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | #!/usr/bin/env python3# -*- coding: utf-8 -*-from abc import ABCMeta,abstractmethodimport boto3from Ansjer.config import AWS_IOT_SES_ACCESS_CHINA_REGION, AWS_IOT_SES_ACCESS_CHINA_ID, AWS_IOT_SES_ACCESS_CHINA_SECRET, \    AWS_IOT_SES_ACCESS_FOREIGN_REGION_AMERICA, AWS_IOT_SES_ACCESS_FOREIGN_ID, AWS_IOT_SES_ACCESS_FOREIGN_SECRET, \    AWS_IOT_SES_ACCESS_FOREIGN_REGION_EUROPE, AWS_IOT_SES_ACCESS_FOREIGN_REGION_ASIAclass IOTObject(metaclass=ABCMeta):    @abstractmethod    def create_provisioning_claim(self, templateName):        passclass ChinaIOTClient(IOTObject):    def __init__(self):        self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_CHINA_REGION,                                   aws_access_key_id=AWS_IOT_SES_ACCESS_CHINA_ID,                                   aws_secret_access_key=AWS_IOT_SES_ACCESS_CHINA_SECRET)    def create_provisioning_claim(self, templateName):        result = self.client.create_provisioning_claim(templateName=templateName)        res = {            'certificateId': result['certificateId'],            'certificatePem': result['certificatePem'],            'publicKey': result['keyPair']['PublicKey'],            'privateKey': result['keyPair']['PrivateKey'],            'endpoint': 'a250bbr0p9u7as-ats.iot.cn-northwest-1.amazonaws.com.cn'        }        return resclass AmericaIOTClient(IOTObject):    def __init__(self):        self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_FOREIGN_REGION_AMERICA,                                   aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,                                   aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)    def create_provisioning_claim(self, templateName):        result = self.client.create_provisioning_claim(templateName=templateName)        res = {            'certificateId': result['certificateId'],            'certificatePem': result['certificatePem'],            'publicKey': result['keyPair']['PublicKey'],            'privateKey': result['keyPair']['PrivateKey'],            'endpoint': 'a2rqy12o004ad8-ats.iot.us-east-1.amazonaws.com'        }        return resclass AsiaIOTClient(IOTObject):    def __init__(self):        self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_FOREIGN_REGION_ASIA,                                   aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,                                   aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)    def create_provisioning_claim(self, templateName):        result = self.client.create_provisioning_claim(templateName=templateName)        res = {            'certificateId': result['certificateId'],            'certificatePem': result['certificatePem'],            'publicKey': result['keyPair']['PublicKey'],            'privateKey': result['keyPair']['PrivateKey'],            'endpoint': 'a2rqy12o004ad8-ats.iot.ap-southeast-1.amazonaws.com'        }        return resclass EuropeIOTClient(IOTObject):    def __init__(self):        self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_FOREIGN_REGION_EUROPE,                                   aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,                                   aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)    def create_provisioning_claim(self, templateName):        result = self.client.create_provisioning_claim(templateName=templateName)        res = {            'certificateId': result['certificateId'],            'certificatePem': result['certificatePem'],            'publicKey': result['keyPair']['PublicKey'],            'privateKey': result['keyPair']['PrivateKey'],            'endpoint': 'a2rqy12o004ad8-ats.iot.eu-west-1.amazonaws.com'        }        return res
 |