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