import os
from huaweicloudsdkcdn.v2.cdn_client import CdnClient
from huaweicloudsdkcdn.v2.model.show_domain_location_stats_request import ShowDomainLocationStatsRequest
from huaweicloudsdkcdn.v2.model.show_domain_stats_request import ShowDomainStatsRequest
from huaweicloudsdkcdn.v2.model.show_top_url_request import ShowTopUrlRequest
from huaweicloudsdkcore.auth.credentials import GlobalCredentials
from huaweicloudsdkcore.exceptions.exceptions import ConnectionException
from huaweicloudsdkcore.exceptions.exceptions import RequestTimeoutException
from huaweicloudsdkcore.exceptions.exceptions import ServiceResponseException
class DomainStatistics:
def __init__(self):
pass
@staticmethod
def main(args):
ak = os.environ["HUAWEICLOUD_SDK_AK"]
sk = os.environ["HUAWEICLOUD_SDK_SK"]
iam_endpoint = "<iam endpoint>"
endpoint = "<endpoint>"
auth = GlobalCredentials(ak, sk) \
.with_iam_endpoint(iam_endpoint)
client = CdnClient.new_builder() \
.with_credentials(credentials=auth) \
.with_endpoint(endpoint) \
.build()
DomainStatistics.show_domain_location_stats(client)
DomainStatistics.show_domain_stats(client)
DomainStatistics.show_top_url(client)
@staticmethod
def show_domain_location_stats(client):
startTime = 1701849600000
endTime = 1701856800000
interval = 300
domainName = "<domain_name>"
action = "<action>"
statType = "<stat_type>"
country = "<country>"
province = "<province>"
isp = "<isp>"
groupBy = "<group_by>"
enterpriseProjectId = "<enterprise_project_id>"
request = ShowDomainLocationStatsRequest()
request.domain_name = domainName
request.action = action
request.start_time = startTime
request.end_time = endTime
request.stat_type = statType
request.interval = interval
request.country = country
request.province = province
request.isp = isp
request.group_by = groupBy
request.enterprise_project_id = enterpriseProjectId
try:
response = client.show_domain_location_stats(request)
result_code = response.status_code
if result_code == 200:
print("show domain location stats success")
print(response)
except ConnectionException:
print("show domain location stats ConnectionException")
except RequestTimeoutException:
print("show domain location stats RequestTimeoutException")
except ServiceResponseException as e:
print("show domain location stats ServiceResponseException")
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
@staticmethod
def show_domain_stats(client):
startTime = 1701849600000
endTime = 1701856800000
interval = 300
domainName = "<domain_name>"
action = "<action>"
statType = "<stat_type>"
groupBy = "<group_by>"
serviceArea = "<service_area>"
enterpriseProjectId = "<enterprise_project_id>"
request = ShowDomainStatsRequest()
request.domain_name = domainName
request.action = action
request.start_time = startTime
request.end_time = endTime
request.stat_type = statType
request.interval = interval
request.group_by = groupBy
request.service_area = serviceArea
request.enterprise_project_id = enterpriseProjectId
try:
response = client.show_domain_stats(request)
result_code = response.status_code
if result_code == 200:
print("show domain stats success")
print(response)
except ConnectionException:
print("show domain stats ConnectionException")
except RequestTimeoutException:
print("show domain stats RequestTimeoutException")
except ServiceResponseException as e:
print("show domain stats ServiceResponseException")
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
@staticmethod
def show_top_url(client):
startTime = 1701849600000
endTime = 1701856800000
domainName = "<domain_name>"
statType = "<stat_type>"
serviceArea = "<service_area>"
enterpriseProjectId = "<enterprise_project_id>"
request = ShowTopUrlRequest()
request.domain_name = domainName
request.start_time = startTime
request.end_time = endTime
request.stat_type = statType
request.service_area = serviceArea
request.enterprise_project_id = enterpriseProjectId
try:
response = client.show_top_url(request)
result_code = response.status_code
if result_code == 200:
print("show top url success")
print(response)
except ConnectionException:
print("show top url ConnectionException")
except RequestTimeoutException:
print("show top url RequestTimeoutException")
except ServiceResponseException as e:
print("show top url ServiceResponseException")
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
if __name__ == "__main__":
DomainStatistics().main(any)