Beispiel #1
0
def _main(client, ip):
    from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import *
    from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import *

    for rr, domain_name, type_ in config.RECORDS:
        req = DescribeDomainRecordsRequest()
        req.set_TypeKeyWord(type_)
        req.set_DomainName(domain_name)
        req.set_RRKeyWord(rr)
        records = json.loads(client.do_action_with_exception(req))['DomainRecords']['Record']

        if records:
            record = records[0]
            if record['Value'] == ip:
                logging.debug('%s.%s is already %s', rr, domain_name, ip)
            else:
                logging.info('Updating %s.%s from %s to %s',
                             rr, domain_name, record['Value'], ip)
                update = UpdateDomainRecordRequest()
                update.set_RecordId(record['RecordId'])
                update.set_RR(rr)
                update.set_Type(type_)
                update.set_Value(ip)
                client.do_action_with_exception(update)
        else:
            logging.warning('No such record %s.%s, skipping for now.',
                            rr, domain_name)
Beispiel #2
0
 def change_record(self, domain, record_id, sub_domain, value, record_type,
                   line):
     clt = client.AcsClient(self.SECRETID, self.SECRETKEY, 'cn-hangzhou')
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RR(sub_domain)
     request.set_RecordId(record_id)
     if line == "电信":
         line = "telecom"
     elif line == "联通":
         line = "unicom"
     elif line == "移动":
         line = "mobile"
     request.set_Line(line)
     request.set_Type(record_type)
     request.set_Value(value)
     request.set_accept_format(rc_format)
     result = clt.do_action(request).decode('utf-8')
     result = json.loads(result)
     #替换为标准格式
     # {
     #   "result":True,
     #   "message":{...}
     # }
     data = {}
     data["result"] = 'RecordId' in result
     data["message"] = result
     return data
Beispiel #3
0
def update_dns(HostName, RecordId, Type, IP):
    # 登录阿里客户端
    clt = client.AcsClient(access_key_id, access_Key_secret, RegionID)
    # 创建一个更新域名记录请求类实例
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    # 实例调用方法,接受json格式数据
    request.set_accept_format('json')
    # 添加记录ID号
    request.set_RecordId(RecordId)
    # 添加查询参数主机名,解析值
    request.set_RR(HostName)
    # 添加搜索字段类型
    request.set_Type(Type)
    # 添加搜索字段Time To Live(生存时间值,域名解析在DNS服务器中存留时间)
    request.set_TTL('600')
    # 添加搜索字段IP值
    request.set_Value(IP)
    # 客户端执行上述添加的操作
    try:
        result = clt.do_action_with_exception(request)
        results = json.loads(result)
        return results
    except ServerException as e:
        alidns.error(
            (e.get_error_code(), e.get_error_msg(), e.get_http_status()))
Beispiel #4
0
 def update_dns_record(self, dns_record, public_ip):
     """
     Update a dns record at dns provider side with a given dns record
     """
     DDNSUtils.info(
         'Updating value [{rec.value}] for [{rec.rr}.{rec.domainname}]'.
         format(rec=dns_record))
     acsClient = AcsClient(ak=self.access_key_id,
                           secret=self.access_Key_secret,
                           region_id='cn-hangzhou')
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RR(dns_record.rr)
     request.set_Type(dns_record.type)
     request.set_Value(dns_record.value)
     request.set_RecordId(dns_record.recordid)
     request.set_TTL(dns_record.ttl)
     request.set_accept_format('json')
     try:
         result = acsClient.do_action_with_exception(request)
         return result
     except Exception as exception:
         DDNSUtils.err(
             'Failed to update value [{rec.value}] for [{rec.rr}.{rec.domainname}]'
             .format(rec=dns_record))
         raise exception
Beispiel #5
0
 def change_record(self, domain, record_id, sub_domain, value, record_type,
                   line, ttl):
     clt = client.AcsClient(self.access_key_id, self.access_key_secret,
                            'cn-hangzhou')
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RR(sub_domain)
     request.set_RecordId(record_id)
     if line == "电信":
         line = "telecom"
     elif line == "联通":
         line = "unicom"
     elif line == "移动":
         line = "mobile"
     elif line == "境外":
         line = "oversea"
     elif line == "默认":
         line = "default"
     request.set_Line(line)
     request.set_Type(record_type)
     request.set_Value(value)
     request.set_TTL(ttl)
     request.set_accept_format(rc_format)
     result = clt.do_action(request).decode('utf-8')
     result = json.JSONDecoder().decode(result)
     return result
Beispiel #6
0
    def update_record(self, value):
        request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
        request.set_action_name("UpdateDomainRecord")
        request.set_RecordId(self.get_record_id())
        request.set_Type(self.record_type)
        request.set_RR(self.rr_keyword)
        request.set_Value(value)

        return self.client.do_action_with_exception(request)
Beispiel #7
0
def update_record(cip, old):
    req = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    req.set_RecordId(RID)
    req.set_RR(old['RR'])
    req.set_Type(old['Type'])
    req.set_Value(cip)
    resp = client.do_action_with_exception(req).decode('utf-8')
    print(resp)
    return True
Beispiel #8
0
def update_domain_record(record_id):
    req = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    req.set_RecordId(record_id)
    req.set_RR(subDomain)
    req.set_Type('A')
    req.set_Value(publicIp)
    print(json.dumps(req.get_query_params()))
    res = client.do_action_with_exception(req)
    print(res.decode())
Beispiel #9
0
 def UpdateRecord(self):
     ur_r = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     ur_r.set_RR(self.config['RR'].encode())
     ur_r.set_RecordId(self.config['RecordID'].encode())
     ur_r.set_Type('A')
     ur_r.set_Value(self.config['IP'].encode())
     ur_r.set_Line("default")
     ur_re = self.clt.do_action(ur_r)
     Log(ur_re)
Beispiel #10
0
def updateDomainRecord(ip,recordid):
    cl = client.AcsClient(AccessKeyId, AccessKeySecret, region_id)
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_RecordId(recordid)
    request.set_RR('www')
    request.set_Type('A')
    request.set_Value(ip)
    response = cl.do_action_with_exception(request)
    print response
Beispiel #11
0
def update_dns(dns_rr, dns_type, dns_value, dns_record_id, dns_ttl):
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_RR(dns_rr)  # 设置子域名信息
    request.set_Type(dns_type)  # 设置 DNS 类型
    request.set_Value(dns_value)  # 设置解析 IP
    request.set_RecordId(dns_record_id)  # 设置记录值
    request.set_TTL(dns_ttl)  # 设置 TTL 时间
    request.set_accept_format(rc_format)  # 设置返回格式
    return clt.do_action_with_exception(request)  # 发送请求内容
Beispiel #12
0
def EditDomainRecord(HostName, RecordId, Types, IP):
    UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    UpdateDomainRecord.set_accept_format('json')
    UpdateDomainRecord.set_RecordId(RecordId)
    UpdateDomainRecord.set_RR(HostName)
    UpdateDomainRecord.set_Type(Types)
    UpdateDomainRecord.set_TTL('600')
    UpdateDomainRecord.set_Value(IP)
    UpdateDomainRecordJson = json.loads(clt.do_action(UpdateDomainRecord))
    print UpdateDomainRecordJson
Beispiel #13
0
def ddns(ip):
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_RecordId(RECORD_ID)
    request.set_RR(RR)
    request.set_Type('A')
    request.set_Value(ip)
    request.set_accept_format('json')
    response = clt.do_action(request)
    printLog(response)
    return response
Beispiel #14
0
 def update_dns(RR, Type, Value, RecordId, TTL):
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RR(RR)
     request.set_Type(Type)
     request.set_Value(Value)
     request.set_RecordId(RecordId)
     request.set_TTL(TTL)
     request.set_accept_format('json')
     result = AcsClientString.get_instance().do_action(request)
     return result
Beispiel #15
0
 def update(self, record, host, record_ip):
     '''update record'''
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RecordId(record)
     request.set_RR(host)  # RR is the Host record
     request.set_Type('A')
     request.set_Value(record_ip)
     response = self._client.do_action_with_exception(request)
     logger.log(response)
     return response
Beispiel #16
0
 def Update(self, ip, record):
     udr = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     udr.set_accept_format('json')
     udr.set_RecordId(record['RecordId'])
     udr.set_RR(record['RR'])
     udr.set_Type(record['Type'])
     udr.set_Value(ip)
     response = self.client.do_action_with_exception(udr)
     UpdateDomainRecordJson = json.loads(response.decode('utf-8'))
     print(UpdateDomainRecordJson)
Beispiel #17
0
def update_record(acs_client, record_id, rr, current_ip, ttl):
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_RR(rr)
    request.set_Type('A')
    request.set_Value(current_ip)
    request.set_RecordId(record_id)
    request.set_TTL(ttl)
    request.set_accept_format('json')
    result = acs_client.do_action_with_exception(request)
    return result
Beispiel #18
0
 def update_record(self, domain, types, ip):
     if self._check_domain(domain=domain):
         update = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
         update.set_accept_format('json')
         update.add_query_param('RecordId',
                                self._check_domain(domain, types='update'))
         update.add_query_param('RR', self._domain_prefix(domain)['sub'])
         update.add_query_param('Type', types)
         update.add_query_param('Value', ip)
         rst_up = self.clt.do_action_with_exception(update)
         return rst_up
Beispiel #19
0
def update(id, RR, text):
    print_("update RR '%s' value is %s --  id is %s " % (RR, text, id))
    id_r = UpdateDomainRecordRequest.UpdateDomainRecordRequest()

    id_r.set_RecordId(id)
    id_r.set_RR(RR)
    id_r.set_Type('TXT')
    id_r.set_Value(text)

    id_re = c.do_action(id_r)
    print_(id_re)
Beispiel #20
0
def update_dns(dns_rr, dns_type, dns_value, dns_record_id, dns_ttl, dns_format):
    clt = client.AcsClient(access_key_id, access_key_secret, 'cn-hangzhou')
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_RR(dns_rr)
    request.set_Type(dns_type)
    request.set_Value(dns_value)
    request.set_RecordId(dns_record_id)
    request.set_TTL(dns_ttl)
    request.set_accept_format(dns_format)
    result = clt.do_action_with_exception(request)
    return result
 def set_dns_ip(self, domain, router):
     logger.info("current domain info is %s" % domain)
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RR(domain["RR"])
     request.set_Type(domain["Type"])
     request.set_Value(router)
     request.set_RecordId(domain["RecordId"])
     request.set_TTL(domain["TTL"])
     request.set_accept_format("json")
     result = self.client.do_action_with_exception(request)
     
     logger.info("aliyun updated. new seesion is %s" % result)
Beispiel #22
0
def update_dns(dns_rr, dns_type, dns_value, dns_record_id, dns_ttl,
               dns_format):
    clt = client.AcsClient(accessKeyId, accessKeySecret, aliyun_endpoint)
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_RR(dns_rr)
    request.set_Type(dns_type)
    request.set_Value(dns_value)
    request.set_RecordId(dns_record_id)
    request.set_TTL(dns_ttl)
    request.set_accept_format(dns_format)
    result = clt.do_action_with_exception(request)
    return result
Beispiel #23
0
 def update(self):
     clt = client.AcsClient(self.access_key_id, self.access_key_secret, 'cn-hangzhou')
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RR(self.prefix)
     request.set_Type(self.type)
     request.set_Value(self.ip)
     request.set_RecordId(self.record_id)
     request.set_TTL(self.ttl)
     request.set_accept_format('json')
     result = clt.do_action_with_exception(request)
     self.logger.debug('update_dns {}'.format(result))
     return(result)
Beispiel #24
0
def update_dns_records(RecordId, RR, Type, Value):
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    # 发起 API和参数 请求
    request.set_accept_format('json')
    request.set_RecordId(RecordId)
    request.set_RR(RR)
    request.set_Type(Type)
    request.set_Value(Value)
    # 并打印返回
    response = client.do_action_with_exception(request)
    f = open('./record.txt', 'a+')
    f.write("%s\n" % response)
    f.close()
Beispiel #25
0
 def update_dns(self, dns_rr, dns_value, dns_type, dns_record_id, dns_ttl):
     print('update_dns')
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RR(dns_rr)
     request.set_Type(dns_type)
     request.set_Value(dns_value)
     request.set_RecordId(dns_record_id)
     request.set_TTL(dns_ttl)
     request.set_accept_format(self.dns_format)
     result = self.do_action(request)
     self.records_cache_time = None
     print('{}.{} -> {}'.format(dns_rr, self.dns_domain, dns_value))
     return result
Beispiel #26
0
def update_rr(record_id, sd, ip):
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_RecordId(record_id)
    request.set_RR(sd)
    request.set_Type('A')
    request.set_Value(ip)
    request.set_TTL('600')
    try:
        client.do_action_with_exception(request)
        logger.info('Update:' + sd + ', IP:' + ip + ', accomplished[DONE]:')
    except Exception as e:
        # print(e)
        logger.info('Update sub domain failed[EXIT]:' + str(e))
        sys.exit(1)
Beispiel #27
0
def EditDomainRecord(HostName, RecordId, Types, IP):
    UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    UpdateDomainRecord.set_accept_format('json')
    UpdateDomainRecord.set_RecordId(RecordId)
    UpdateDomainRecord.set_RR(HostName)
    UpdateDomainRecord.set_Type(Types)
    UpdateDomainRecord.set_TTL('600')
    UpdateDomainRecord.set_Value(IP)
    try:
        UpdateDomainRecordJson = json.loads(
            clt.do_action_with_exception(UpdateDomainRecord))
        log_data['update'] = UpdateDomainRecordJson
    except Exception as e:
        log_data['update_error'] = str(e)
Beispiel #28
0
def update_record(bs, record_id, ip):
    ud = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    ud.set_accept_format('json')
    ud.set_RecordId(record_id)
    ud.set_RR('@')
    ud.set_Type('A')
    ud.set_TTL('600')
    ud.set_Value(ip)

    js = json.loads(bs.do_action_with_exception(ud).decode())
    #print(js)
    if js['RecordId'] == record_id:
        return True
    return False
Beispiel #29
0
 def modify_domain_record(self,
                          record_id,
                          value,
                          record_type='A',
                          rr='frp',
                          priority=1):
     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
     request.set_RecordId(record_id)
     request.set_Value(value)
     request.set_Type(record_type)
     request.set_RR(rr)
     request.set_Priority(priority)
     response = self.client.do_action_with_exception(request)
     return json.loads(response.decode('utf-8'))['RecordId']
Beispiel #30
0
def updateDomainRecord(client,value,rr,record_id):
    request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    request.set_accept_format('json')

    # request.set_Priority('1')
    request.set_TTL('600')
    request.set_Value(value) # 新的ip地址
    request.set_Type('A')
    request.set_RR(rr)
    request.set_RecordId(record_id)  # 更新记录需要指定 record_id ,该字段为记录的唯一标识,可以在获取方法的返回信息中得到该字段的值

    response = client.do_action_with_exception(request)
    response = str(response, encoding='utf-8')
    return response