From 57fdaddd551a5ed91e19873b0132b942ed0842fc Mon Sep 17 00:00:00 2001 From: infinityofspace <30715462+infinityofspace@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:10:59 +0200 Subject: [PATCH] validate dns recrods prio for supported dns types --- pkb_client/client.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkb_client/client.py b/pkb_client/client.py index 096ebb2..64e65b3 100644 --- a/pkb_client/client.py +++ b/pkb_client/client.py @@ -6,7 +6,7 @@ import requests -from pkb_client.dns import DNSRecord, DNSRestoreMode, DNSRecordType +from pkb_client.dns import DNSRecord, DNSRestoreMode, DNSRecordType, DNS_RECORDS_WITH_PRIORITY from pkb_client.domain import DomainInfo from pkb_client.forwarding import URLForwarding, URLForwardingType from pkb_client.ssl_cert import SSLCertBundle @@ -103,6 +103,9 @@ def dns_create(self, if ttl > 86400 or ttl < self.default_ttl: raise ValueError(f"ttl must be between {self.default_ttl} and 86400") + if prio is not None and record_type not in DNS_RECORDS_WITH_PRIORITY: + raise ValueError(f"Priority can only be set for {DNS_RECORDS_WITH_PRIORITY}") + url = urljoin(self.api_endpoint, f"dns/create/{domain}") req_json = { **self._get_auth_request_json(), @@ -149,6 +152,9 @@ def dns_edit(self, if ttl > 86400 or ttl < self.default_ttl: raise ValueError(f"ttl must be between {self.default_ttl} and 86400") + if prio is not None and record_type not in DNS_RECORDS_WITH_PRIORITY: + raise ValueError(f"Priority can only be set for {DNS_RECORDS_WITH_PRIORITY}") + url = urljoin(self.api_endpoint, f"dns/edit/{domain}/{record_id}") req_json = { **self._get_auth_request_json(), @@ -191,6 +197,9 @@ def dns_edit_all(self, if ttl > 86400 or ttl < self.default_ttl: raise ValueError(f"ttl must be between {self.default_ttl} and 86400") + if prio is not None and record_type not in DNS_RECORDS_WITH_PRIORITY: + raise ValueError(f"Priority can only be set for {DNS_RECORDS_WITH_PRIORITY}") + url = urljoin(self.api_endpoint, f"dns/editByNameType/{domain}/{record_type}/{subdomain}") req_json = { **self._get_auth_request_json(),