调用阿里api-dts查询到期时间

#!/usr/bin/env python
#coding=utf-8
import json,datetime,time
from aliyunsdkcore.client import AcsClient
from aliyunsdkdts.request.v20200101.DescribeDtsJobsRequest import DescribeDtsJobsRequest
import prettytable as pt
client = AcsClient('xxxxxx', 'xxxx', 'cn-beijing')
def dts_endtime():
tb = pt.PrettyTable()
tb.field_names = ["序号", "实例ID", "到期时间", "备注"]
count = 0
request = DescribeDtsJobsRequest()
request.set_accept_format('json')
request.set_Region("cn-beijing")
request.set_JobType("SYNC")
expire_days = '100'
request.set_PageSize(20)
request.set_PageNumber(1)
response = client.do_action_with_exception(request)
Data = json.loads(str(response, encoding='utf-8'))
for i in Data['DtsJobList']:
if i['DtsJobName'] == 'xxxxs':
continue
dts_endtime_0 = (i['ExpireTime'])
dts_endtime_1 = "%Y-%m-%dT%H:%S:%MZ"
dts_endtime_2 = datetime.datetime.strptime(dts_endtime_0, dts_endtime_1)
dts_endtime_3 = dts_endtime_2 + datetime.timedelta(hours=8) - datetime.timedelta(seconds=1)
dts_endtime_4 = dts_endtime_3.strftime('%Y-%m-%d')
# 计算到期时间与现在时间之差
current_time = time.strftime("%Y-%m-%d", time.localtime())
current = time.mktime(time.strptime(current_time, '%Y-%m-%d'))
dts_endtime_5 = time.mktime(time.strptime(dts_endtime_4, '%Y-%m-%d'))
count_days = int((dts_endtime_5 - current) / (24 * 60 * 60))
# 距离到期时间小于20
if count_days <= int(expire_days):
count = count + 1
dts_remarks = i['DtsInstanceID'], i['DtsJobName']
tb.add_row([count, list(dts_remarks)[0],dts_endtime_3.strftime('%Y%m%d %H:%M'), list(dts_remarks)[1]])
print(tb)
return 'Dts 同步到期时间: \n%s ' % (tb)

dts_endtime()







posted @ 2021-07-21 14:08  NeilyoX  阅读(215)  评论(0)    收藏  举报