Fully tested
This commit is contained in:
parent
3b905bd28e
commit
e9ecfccdb3
@ -65,7 +65,7 @@ class Admin:
|
|||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def authuser_udpate(self, Id, au):
|
def authuser_update(self, Id, au):
|
||||||
r = self.session.put(
|
r = self.session.put(
|
||||||
"http+unix://" + self.socket_path + "/api/auth/" + quote_plus(Id),
|
"http+unix://" + self.socket_path + "/api/auth/" + quote_plus(Id),
|
||||||
data=json.dumps({
|
data=json.dumps({
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
import json
|
||||||
|
from urllib.parse import quote
|
||||||
|
|
||||||
class AuthUser:
|
class AuthUser:
|
||||||
|
|
||||||
def __init__(self, _session, Id, Email, EmailVerification, Password, CreatedAt, LastLoggedIn, AllowCommercials):
|
def __init__(self, _session, Id, Email, EmailVerification, Password, CreatedAt, LastLoggedIn, AllowCommercials):
|
||||||
@ -14,9 +17,9 @@ class AuthUser:
|
|||||||
def Delete(self):
|
def Delete(self):
|
||||||
self._session.authuser_delete(self.Id)
|
self._session.authuser_delete(self.Id)
|
||||||
|
|
||||||
def ResetPassword(self, Id, NewPassword):
|
def ResetPassword(self, NewPassword):
|
||||||
r = self.session.post(
|
r = self._session.session.post(
|
||||||
"http+unix://" + self.socket_path + "/api/auth/" + quote_plus(Id) + "/reset_password",
|
"http+unix://" + self._session.socket_path + "/api/auth/" + quote(self.Id) + "/reset_password",
|
||||||
data=json.dumps({
|
data=json.dumps({
|
||||||
"password": NewPassword,
|
"password": NewPassword,
|
||||||
})
|
})
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
from urllib.parse import quote
|
||||||
|
|
||||||
from .error import HappyError
|
from .error import HappyError
|
||||||
from .domain import Domain
|
from .domain import Domain
|
||||||
@ -15,14 +16,13 @@ class Provider:
|
|||||||
self.args = kwargs
|
self.args = kwargs
|
||||||
|
|
||||||
def _dumps(self):
|
def _dumps(self):
|
||||||
d = {
|
return json.dumps({
|
||||||
"_srctype": self._srctype,
|
"_srctype": self._srctype,
|
||||||
"_id": self._id,
|
"_id": self._id,
|
||||||
"_ownerid": self._ownerid,
|
"_ownerid": self._ownerid,
|
||||||
"_comment": self._comment,
|
"_comment": self._comment,
|
||||||
}
|
"Provider": self.args,
|
||||||
d.update(self.kwargs)
|
})
|
||||||
return json.dumps(d)
|
|
||||||
|
|
||||||
def domain_add(self, dn):
|
def domain_add(self, dn):
|
||||||
r = self._session.session.post(
|
r = self._session.session.post(
|
||||||
@ -36,11 +36,11 @@ class Provider:
|
|||||||
if r.status_code != 200:
|
if r.status_code != 200:
|
||||||
raise HappyError(r.status_code, **r.json())
|
raise HappyError(r.status_code, **r.json())
|
||||||
|
|
||||||
return Domain(self, **r.json())
|
return Domain(self._session, **r.json())
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
r = self._session.session.delete(
|
r = self._session.session.delete(
|
||||||
self.baseurl + "/api/providers/" + quote(self._id),
|
self._session.baseurl + "/api/providers/" + quote(self._id),
|
||||||
)
|
)
|
||||||
|
|
||||||
if r.status_code > 300:
|
if r.status_code > 300:
|
||||||
@ -50,8 +50,8 @@ class Provider:
|
|||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
r = self._session.session.put(
|
r = self._session.session.put(
|
||||||
self.baseurl + "/api/providers/" + quote(self._id),
|
self._session.baseurl + "/api/providers/" + quote(self._id),
|
||||||
date=self._dumps(),
|
data=self._dumps(),
|
||||||
)
|
)
|
||||||
|
|
||||||
if r.status_code > 300:
|
if r.status_code > 300:
|
||||||
|
@ -6,6 +6,8 @@ from .error import HappyError
|
|||||||
class ServiceMeta:
|
class ServiceMeta:
|
||||||
|
|
||||||
def __init__(self, _session, _svctype, _domain, _ttl, _id=None, _ownerid=None, _comment="", _mycomment="", _aliases=[], _tmp_hint_nb=0):
|
def __init__(self, _session, _svctype, _domain, _ttl, _id=None, _ownerid=None, _comment="", _mycomment="", _aliases=[], _tmp_hint_nb=0):
|
||||||
|
self._session = _session
|
||||||
|
|
||||||
self._svctype = _svctype
|
self._svctype = _svctype
|
||||||
self._domain = _domain
|
self._domain = _domain
|
||||||
self._ttl = _ttl
|
self._ttl = _ttl
|
||||||
@ -42,22 +44,25 @@ class HService(ServiceMeta):
|
|||||||
return json.dumps(self._flat())
|
return json.dumps(self._flat())
|
||||||
|
|
||||||
def _flat(self):
|
def _flat(self):
|
||||||
return {
|
d = {
|
||||||
"_svctype": self._svctype,
|
"_svctype": self._svctype,
|
||||||
"_domain": self._domain,
|
"_domain": self._domain,
|
||||||
"_ttl": self._ttl,
|
"_ttl": self._ttl,
|
||||||
"_id": self._id,
|
|
||||||
"_ownerid": self._ownerid,
|
|
||||||
"_comment": self._comment,
|
"_comment": self._comment,
|
||||||
"_mycomment": self._mycomment,
|
"_mycomment": self._mycomment,
|
||||||
"_aliases": self._aliases,
|
"_aliases": self._aliases,
|
||||||
"_tmp_hint_nb": self._tmp_hint_nb,
|
"_tmp_hint_nb": self._tmp_hint_nb,
|
||||||
"Service": self.service,
|
"Service": self.service,
|
||||||
}
|
}
|
||||||
|
if self._id is not None:
|
||||||
|
d["_id"] = self._id
|
||||||
|
if self._ownerid is not None:
|
||||||
|
d["_ownerid"] = self._ownerid
|
||||||
|
return d
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
r = self._session.session.delete(
|
r = self._session.session.delete(
|
||||||
self.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self._zoneid) + "/" + quote(self._domain) + "/services/" + quote(self._id),
|
self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self._zoneid) + "/" + quote(self._domain) + "/services/" + quote(self._id),
|
||||||
)
|
)
|
||||||
|
|
||||||
if r.status_code > 300:
|
if r.status_code > 300:
|
||||||
|
@ -33,23 +33,20 @@ class ZoneMeta:
|
|||||||
|
|
||||||
class Zone(ZoneMeta):
|
class Zone(ZoneMeta):
|
||||||
|
|
||||||
def __init__(self, _session, _domainid, services, **kwargs):
|
def __init__(self, _session, _domainid, **kwargs):
|
||||||
|
self._domainid = _domainid
|
||||||
|
|
||||||
super(Zone, self).__init__(_session, **kwargs)
|
super(Zone, self).__init__(_session, **kwargs)
|
||||||
|
|
||||||
self._domainid = _domainid
|
|
||||||
self._load(services)
|
|
||||||
|
|
||||||
|
|
||||||
def _load(self, services, **kwargs):
|
def _load(self, services, **kwargs):
|
||||||
if "id" in kwargs:
|
super(Zone, self)._load(**kwargs)
|
||||||
super(Zone, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
self.services = {}
|
self.services = {}
|
||||||
if services is not None:
|
if services is not None:
|
||||||
for k in services:
|
for k in services:
|
||||||
self.services[k] = []
|
self.services[k] = []
|
||||||
for s in services[k]:
|
for s in services[k]:
|
||||||
self.services[k].append(HService(_session, self._domainid, self.id, **s))
|
self.services[k].append(HService(self._session, self._domainid, self.id, **s))
|
||||||
|
|
||||||
def _svc_dumps(self):
|
def _svc_dumps(self):
|
||||||
services = {}
|
services = {}
|
||||||
@ -62,9 +59,7 @@ class Zone(ZoneMeta):
|
|||||||
return services
|
return services
|
||||||
|
|
||||||
def _dumps(self):
|
def _dumps(self):
|
||||||
return json.dumps({
|
d = json.dumps({
|
||||||
"id": self.id,
|
|
||||||
"id_author": self.id_author,
|
|
||||||
"default_ttl": self.default_ttl,
|
"default_ttl": self.default_ttl,
|
||||||
"last_modified": self.last_modified,
|
"last_modified": self.last_modified,
|
||||||
"commit_message": self.commit_message,
|
"commit_message": self.commit_message,
|
||||||
@ -72,6 +67,11 @@ class Zone(ZoneMeta):
|
|||||||
"published": self.published,
|
"published": self.published,
|
||||||
"services": self._svc_dumps(),
|
"services": self._svc_dumps(),
|
||||||
})
|
})
|
||||||
|
if self.id is not None:
|
||||||
|
d["id"] = self.id
|
||||||
|
if self.id_author is not None:
|
||||||
|
d["id_author"] = self.id_author
|
||||||
|
return d
|
||||||
|
|
||||||
def add_zone_service(self, subdomain, svctype, svc):
|
def add_zone_service(self, subdomain, svctype, svc):
|
||||||
r = self._session.session.post(
|
r = self._session.session.post(
|
||||||
@ -97,11 +97,19 @@ class Zone(ZoneMeta):
|
|||||||
return r.json()
|
return r.json()
|
||||||
|
|
||||||
def apply_changes(self):
|
def apply_changes(self):
|
||||||
|
rdiff = self._session.session.post(
|
||||||
|
self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/diff_zones/%40/" + quote(self.id),
|
||||||
|
)
|
||||||
|
|
||||||
|
if rdiff.status_code > 300:
|
||||||
|
raise HappyError(rdiff.status_code, **rdiff.json())
|
||||||
|
|
||||||
r = self._session.session.post(
|
r = self._session.session.post(
|
||||||
self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self.id) + "/apply_changes",
|
self._session.baseurl + "/api/domains/" + quote(self._domainid) + "/zone/" + quote(self.id) + "/apply_changes",
|
||||||
|
data=rdiff.text
|
||||||
)
|
)
|
||||||
|
|
||||||
if r.status_code > 300:
|
if r.status_code > 300:
|
||||||
raise HappyError(r.status_code, **r.json())
|
raise HappyError(r.status_code, **r.json())
|
||||||
|
|
||||||
return r.json()
|
return ZoneMeta(self._session, **r.json())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user