1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

rrset names may include ending dot, may not since new API update

This commit is contained in:
Yaroshevich, Denis
2021-05-24 15:38:31 +03:00
parent 04d87fdf35
commit 6ac368c488
5 changed files with 13 additions and 21 deletions

View File

@@ -217,9 +217,7 @@ class GCoreProvider(BaseProvider):
_type = record["type"].upper()
if _type not in self.SUPPORTS:
continue
rr_name = record["name"].replace(zone.name, "")
if len(rr_name) > 0 and rr_name.endswith("."):
rr_name = rr_name[:-1]
rr_name = zone.hostname_from_fqdn(record["name"])
values[rr_name][_type] = record
before = len(zone.records)
@@ -256,27 +254,24 @@ class GCoreProvider(BaseProvider):
def _apply_create(self, change):
self.log.info("creating: %s", change)
new = change.new
rrset_name = self._build_rrset_name(new)
data = getattr(self, "_params_for_{}".format(new._type))(new)
self._client.record_create(
new.zone.name[:-1], rrset_name, new._type, data
new.zone.name[:-1], new.fqdn, new._type, data
)
def _apply_update(self, change):
self.log.info("updating: %s", change)
new = change.new
rrset_name = self._build_rrset_name(new)
data = getattr(self, "_params_for_{}".format(new._type))(new)
self._client.record_update(
new.zone.name[:-1], rrset_name, new._type, data
new.zone.name[:-1], new.fqdn, new._type, data
)
def _apply_delete(self, change):
self.log.info("deleting: %s", change)
existing = change.existing
rrset_name = self._build_rrset_name(existing)
self._client.record_delete(
existing.zone.name[:-1], rrset_name, existing._type
existing.zone.name[:-1], existing.fqdn, existing._type
)
def _apply(self, plan):
@@ -299,9 +294,3 @@ class GCoreProvider(BaseProvider):
for change in changes:
class_name = change.__class__.__name__
getattr(self, "_apply_{}".format(class_name.lower()))(change)
@staticmethod
def _build_rrset_name(record):
if len(record.name) > 0:
return "{}.{}".format(record.name, record.zone.name)
return record.zone.name

View File

@@ -1,6 +1,6 @@
{
"rrsets": [{
"name": "unit.tests.",
"name": "unit.tests",
"type": "A",
"ttl": 300,
"resource_records": [{
@@ -13,7 +13,7 @@
]
}]
}, {
"name": "aaaa.unit.tests.",
"name": "aaaa.unit.tests",
"type": "AAAA",
"ttl": 600,
"resource_records": [{
@@ -40,7 +40,7 @@
]
}]
}, {
"name": "unit.tests.",
"name": "unit.tests",
"type": "ns",
"ttl": 300,
"resource_records": [{

View File

@@ -1,6 +1,6 @@
{
"rrsets": [{
"name": "unit.tests.",
"name": "unit.tests",
"type": "A",
"ttl": 300,
"resource_records": [{
@@ -9,7 +9,7 @@
]
}]
}, {
"name": "unit.tests.",
"name": "unit.tests",
"type": "ns",
"ttl": 300,
"resource_records": [{

View File

@@ -11,7 +11,7 @@
"records": [
{
"id": 12419,
"name": "unit.test.",
"name": "unit.test",
"type": "ns",
"ttl": 300,
"short_answers": [

View File

@@ -117,6 +117,9 @@ class TestGCoreProvider(TestCase):
zone = Zone("unit.tests.", [])
provider.populate(zone)
self.assertEquals(4, len(zone.records))
self.assertEquals(
{"aaaa", "www", "www.sub", ""}, {r.name for r in zone.records}
)
changes = self.expected.changes(zone, provider)
self.assertEquals(0, len(changes))