Browse Source

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

pull/681/head
Yaroshevich, Denis 5 years ago
parent
commit
6ac368c488
5 changed files with 13 additions and 21 deletions
  1. +4
    -15
      octodns/provider/gcore.py
  2. +3
    -3
      tests/fixtures/gcore-no-changes.json
  3. +2
    -2
      tests/fixtures/gcore-records.json
  4. +1
    -1
      tests/fixtures/gcore-zone.json
  5. +3
    -0
      tests/test_octodns_provider_gcore.py

+ 4
- 15
octodns/provider/gcore.py 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

+ 3
- 3
tests/fixtures/gcore-no-changes.json 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": [{


+ 2
- 2
tests/fixtures/gcore-records.json 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": [{


+ 1
- 1
tests/fixtures/gcore-zone.json View File

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


+ 3
- 0
tests/test_octodns_provider_gcore.py 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))


Loading…
Cancel
Save