up
This commit is contained in:
parent
8e24ffd81a
commit
4aa755fc12
1 changed files with 101 additions and 0 deletions
101
cloudnsru/__init__.py
Normal file
101
cloudnsru/__init__.py
Normal 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
|
Loading…
Add table
Reference in a new issue