update view query

This commit is contained in:
Ivan Schaller 2023-11-09 14:17:36 +01:00
parent cdd0b00cd1
commit 3cb883abd6
1 changed files with 10 additions and 13 deletions

View File

@ -65,7 +65,6 @@ class NetBoxDNSSource(octodns.provider.base.BaseProvider):
_api: pynetbox.core.api.Api
# log: logging.Logger
_nb_view: pynb_resp.Record | None | False
_ttl: int
def __init__(
@ -84,27 +83,25 @@ class NetBoxDNSSource(octodns.provider.base.BaseProvider):
)
super(NetBoxDNSSource, self).__init__(id)
self._api = pynetbox.core.api.Api(url, token)
self._nb_view = self._get_view(view) if view else view
self._nb_view = {} if view is False else self._get_view(view)
self._ttl = ttl
self.replace_duplicates = replace_duplicates
def _get_view(self, view: str) -> pynb_resp.Record:
nb_view = self._api.plugins.netbox_dns.views.get(name=view)
def _get_view(self, view: str | None) -> dict[str, int | str]:
if view is None:
return {"view": "null"}
nb_view: pynb_resp.Record = self._api.plugins.netbox_dns.views.get(name=view)
if nb_view is None:
raise ValueError(f"dns view: '{view}' has not been found")
self.log.debug(f"found {self._nb_view.name} {self._nb_view.id}")
self.log.debug(f"found {nb_view.name} {nb_view.id}")
return nb_view
return {"view_id": nb_view.id}
def _get_nb_zone(self, name: str, view: pynb_resp.Record | None) -> pynb_resp.Record:
def _get_nb_zone(self, name: str, view: dict[str, str | int]) -> pynb_resp.Record:
"""Given a zone name and a view name, look it up in NetBox.
Raises: pynetbox.RequestError if declared view is not existant"""
query_params = {name: name[:-1]}
if view:
query_params.update({"view_id": view.id})
if view is None:
query_params.update({"view_id": "null"})
query_params = {name: name[:-1], **view}
nb_zone = self._api.plugins.netbox_dns.zones.get(**query_params)
return nb_zone