This commit is contained in:
Vyacheslav Anzhiganov 2015-11-26 23:50:14 +03:00
parent 8e24ffd81a
commit 4aa755fc12

101
cloudnsru/__init__.py Normal file
View file

@ -0,0 +1,101 @@
import requests
"""
Author: Vyacheslav Anzhiganov
Email: vanzhiganov@ya.ru
Date: 2014-12-01
Version: 0.2
"""
class CloudnsClient:
def __init__(self, email, secret):
self.cloudns_api_url = 'http://api.cloudns.ru/api.php'
self.email = email
self.secret = secret
# todo: v2.0
def query(self, method, **kwargs):
data = {
"email": self.email,
"secret": self.secret
}
for arg in kwargs:
data[arg] = kwargs[arg]
return None
def request(self, data):
return requests.post(self.cloudns_api_url, data=data)
def domain_record_get_items(self, domain):
data = {
"email": self.email,
"secret": self.secret,
'method': "domain_record_get_items",
"domain": domain
}
return self.request(data)
def domain_record_delete(self, domain, record_id):
data = {
"email": self.email,
"secret": self.secret,
'method': "domain_record_delete",
"domain": domain,
"record_id": record_id
}
return self.request(data)
def domain_record_delete_by_host(self, domain, host, rtype):
data = {
"email": self.email,
"secret": self.secret,
'method': "domain_record_delete_by_host",
"domain": domain,
"host": host,
"type": rtype
}
return self.request(data)
def domain_record_add(self, domain, host, rtype, destination, priority=0):
data = {
"email": self.email,
"secret": self.secret,
'method': "domain_record_add",
"domain": domain,
"host": host,
"type": rtype,
"destination": destination,
"priority": priority,
}
return self.request(data)
# TODO: v2.0
class Zone(CloudnsClient):
def create(self, name):
return self.query('zone.create', name=name)
def ls(self):
return self.query('zone.ls')
def delete(self, name):
return self.query('zone.delete', name=name)
# TODO: v2.0
class Record(CloudnsClient):
def ls(self, name, type=None):
return self.query('record.ls', name=name, type=None)
def create(self, name, host, record_type, destination, priority=0):
return self.query(
'record.create',
name=name, host=host, record_type=record_type, destination=destination, priority=priority
)
def delete(self, name, host, record_type):
return None
def delete_by_id(self, name, record_id):
return None