mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-14 06:55:08 +02:00
getter and setter added for dnssecdata; dnssecdata added to cache
This commit is contained in:
parent
24ecb6be50
commit
6df2a65a90
2 changed files with 47 additions and 3 deletions
|
@ -47,6 +47,7 @@ try:
|
||||||
from .client import CLIENT, commands
|
from .client import CLIENT, commands
|
||||||
from .errors import RegistryError, ErrorCode
|
from .errors import RegistryError, ErrorCode
|
||||||
from epplib.models import common
|
from epplib.models import common
|
||||||
|
from epplib.responses import extensions
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -54,6 +55,7 @@ __all__ = [
|
||||||
"CLIENT",
|
"CLIENT",
|
||||||
"commands",
|
"commands",
|
||||||
"common",
|
"common",
|
||||||
|
"extensions",
|
||||||
"ErrorCode",
|
"ErrorCode",
|
||||||
"RegistryError",
|
"RegistryError",
|
||||||
]
|
]
|
||||||
|
|
|
@ -10,6 +10,7 @@ from epplibwrapper import (
|
||||||
CLIENT as registry,
|
CLIENT as registry,
|
||||||
commands,
|
commands,
|
||||||
common as epp,
|
common as epp,
|
||||||
|
extensions,
|
||||||
RegistryError,
|
RegistryError,
|
||||||
ErrorCode,
|
ErrorCode,
|
||||||
)
|
)
|
||||||
|
@ -279,6 +280,36 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
logger.error("Error _create_host, code was %s error was %s" % (e.code, e))
|
logger.error("Error _create_host, code was %s error was %s" % (e.code, e))
|
||||||
return e.code
|
return e.code
|
||||||
|
|
||||||
|
@Cache
|
||||||
|
def dnssecdata(self) -> extensions.DNSSECExtension:
|
||||||
|
return self._get_property("dnssecdata")
|
||||||
|
|
||||||
|
@dnssecdata.setter
|
||||||
|
def dnssecdata(
|
||||||
|
self,
|
||||||
|
_dnssecdata: extensions.DNSSECExtension
|
||||||
|
):
|
||||||
|
updateParams = {
|
||||||
|
"maxSigLife": _dnssecdata.maxSigLife,
|
||||||
|
"dsData": _dnssecdata.dsData,
|
||||||
|
"keyData": _dnssecdata.keyData,
|
||||||
|
"remAllDsKeyData": True,
|
||||||
|
}
|
||||||
|
request = commands.UpdateDomain(
|
||||||
|
name=self.name
|
||||||
|
)
|
||||||
|
extension = commands.UpdateDomainDNSSECExtension(**updateParams)
|
||||||
|
request.add_extension(extension)
|
||||||
|
|
||||||
|
try:
|
||||||
|
registry.send(request, cleaned=True)
|
||||||
|
except RegistryError as e:
|
||||||
|
logger.error(
|
||||||
|
"Error adding DNSSEC, code was %s error was %s"
|
||||||
|
% (e.code, e)
|
||||||
|
)
|
||||||
|
raise e
|
||||||
|
|
||||||
@nameservers.setter # type: ignore
|
@nameservers.setter # type: ignore
|
||||||
def nameservers(self, hosts: list[tuple[str]]):
|
def nameservers(self, hosts: list[tuple[str]]):
|
||||||
"""host should be a tuple of type str, str,... where the elements are
|
"""host should be a tuple of type str, str,... where the elements are
|
||||||
|
@ -725,9 +756,9 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
try:
|
try:
|
||||||
logger.info("Getting domain info from epp")
|
logger.info("Getting domain info from epp")
|
||||||
req = commands.InfoDomain(name=self.name)
|
req = commands.InfoDomain(name=self.name)
|
||||||
domainInfo = registry.send(req, cleaned=True).res_data[0]
|
domainInfoResponse = registry.send(req, cleaned=True)
|
||||||
exitEarly = True
|
exitEarly = True
|
||||||
return domainInfo
|
return domainInfoResponse
|
||||||
except RegistryError as e:
|
except RegistryError as e:
|
||||||
count += 1
|
count += 1
|
||||||
|
|
||||||
|
@ -952,7 +983,8 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
"""Contact registry for info about a domain."""
|
"""Contact registry for info about a domain."""
|
||||||
try:
|
try:
|
||||||
# get info from registry
|
# get info from registry
|
||||||
data = self._get_or_create_domain()
|
dataResponse = self._get_or_create_domain()
|
||||||
|
data = dataResponse.res_data[0]
|
||||||
# extract properties from response
|
# extract properties from response
|
||||||
# (Ellipsis is used to mean "null")
|
# (Ellipsis is used to mean "null")
|
||||||
cache = {
|
cache = {
|
||||||
|
@ -974,6 +1006,16 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
# statuses can just be a list no need to keep the epp object
|
# statuses can just be a list no need to keep the epp object
|
||||||
if "statuses" in cleaned.keys():
|
if "statuses" in cleaned.keys():
|
||||||
cleaned["statuses"] = [status.state for status in cleaned["statuses"]]
|
cleaned["statuses"] = [status.state for status in cleaned["statuses"]]
|
||||||
|
|
||||||
|
# get extensions info, if there is any
|
||||||
|
# DNSSECExtension is one possible extension, make sure to handle
|
||||||
|
# only DNSSECExtension and not other type extensions
|
||||||
|
extensions = dataResponse.extensions
|
||||||
|
cleaned["dnssecdata"] = None
|
||||||
|
for extension in extensions:
|
||||||
|
if isinstance(extension,extensions.DNSSECExtension):
|
||||||
|
cleaned["dnssecdata"] = extension
|
||||||
|
|
||||||
# get contact info, if there are any
|
# get contact info, if there are any
|
||||||
if (
|
if (
|
||||||
# fetch_contacts and
|
# fetch_contacts and
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue