diff --git a/octodns/provider/gcore.py b/octodns/provider/gcore.py index 041e19f..d5c7fa0 100644 --- a/octodns/provider/gcore.py +++ b/octodns/provider/gcore.py @@ -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 diff --git a/tests/fixtures/gcore-no-changes.json b/tests/fixtures/gcore-no-changes.json index a70fb82..e5ff8c9 100644 --- a/tests/fixtures/gcore-no-changes.json +++ b/tests/fixtures/gcore-no-changes.json @@ -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": [{ diff --git a/tests/fixtures/gcore-records.json b/tests/fixtures/gcore-records.json index 4d4685e..4086049 100644 --- a/tests/fixtures/gcore-records.json +++ b/tests/fixtures/gcore-records.json @@ -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": [{ diff --git a/tests/fixtures/gcore-zone.json b/tests/fixtures/gcore-zone.json index 7f70275..925af72 100644 --- a/tests/fixtures/gcore-zone.json +++ b/tests/fixtures/gcore-zone.json @@ -11,7 +11,7 @@ "records": [ { "id": 12419, - "name": "unit.test.", + "name": "unit.test", "type": "ns", "ttl": 300, "short_answers": [ diff --git a/tests/test_octodns_provider_gcore.py b/tests/test_octodns_provider_gcore.py index aa536f1..06e199e 100644 --- a/tests/test_octodns_provider_gcore.py +++ b/tests/test_octodns_provider_gcore.py @@ -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))