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:
@@ -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
|
||||
|
||||
6
tests/fixtures/gcore-no-changes.json
vendored
6
tests/fixtures/gcore-no-changes.json
vendored
@@ -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": [{
|
||||
|
||||
4
tests/fixtures/gcore-records.json
vendored
4
tests/fixtures/gcore-records.json
vendored
@@ -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": [{
|
||||
|
||||
2
tests/fixtures/gcore-zone.json
vendored
2
tests/fixtures/gcore-zone.json
vendored
@@ -11,7 +11,7 @@
|
||||
"records": [
|
||||
{
|
||||
"id": 12419,
|
||||
"name": "unit.test.",
|
||||
"name": "unit.test",
|
||||
"type": "ns",
|
||||
"ttl": 300,
|
||||
"short_answers": [
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user