Skip to content

Commit fcaf113

Browse files
author
Aaron Sierra
committed
dns: rackspace: Leverage common host naming code
Drop RackspaceDNSDriver._to_partial_record_name() and RackspaceDNSDriver._to_full_record_name() in favor of the common support provided by the Record and Zone classes.
1 parent 3a7c27f commit fcaf113

File tree

2 files changed

+3
-65
lines changed

2 files changed

+3
-65
lines changed

libcloud/dns/drivers/rackspace.py

Lines changed: 3 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ def create_record(self, name, zone, type, data, extra=None):
292292
# name is "bar.foo.com"
293293
extra = extra if extra else {}
294294

295-
name = self._to_full_record_name(domain=zone.domain, name=name)
295+
name = zone.hostname(name)
296296
data = {"name": name, "type": self.RECORD_TYPE_MAP[type], "data": data}
297297

298298
if "ttl" in extra:
@@ -314,8 +314,7 @@ def update_record(self, record, name=None, type=None, data=None, extra=None):
314314
# attribute must always be present.
315315
extra = extra if extra else {}
316316

317-
name = self._to_full_record_name(domain=record.zone.domain, name=record.name)
318-
payload = {"name": name}
317+
payload = {"name": record.hostname}
319318

320319
if data:
321320
payload["data"] = data
@@ -552,7 +551,6 @@ def _to_zone(self, data):
552551
def _to_record(self, data, zone):
553552
id = data["id"]
554553
fqdn = data["name"]
555-
name = self._to_partial_record_name(domain=zone.domain, name=fqdn)
556554
type = self._string_to_record_type(data["type"])
557555
record_data = data["data"]
558556
extra = {"fqdn": fqdn}
@@ -563,7 +561,7 @@ def _to_record(self, data, zone):
563561

564562
record = Record(
565563
id=str(id),
566-
name=name,
564+
name=fqdn,
567565
type=type,
568566
data=record_data,
569567
zone=zone,
@@ -586,42 +584,6 @@ def _to_ptr_record(self, data, link):
586584
record = RackspacePTRRecord(id=str(id), ip=ip, domain=domain, driver=self, extra=extra)
587585
return record
588586

589-
def _to_full_record_name(self, domain, name):
590-
"""
591-
Build a FQDN from a domain and record name.
592-
593-
:param domain: Domain name.
594-
:type domain: ``str``
595-
596-
:param name: Record name.
597-
:type name: ``str``
598-
"""
599-
if name:
600-
name = "{}.{}".format(name, domain)
601-
else:
602-
name = domain
603-
604-
return name
605-
606-
def _to_partial_record_name(self, domain, name):
607-
"""
608-
Remove domain portion from the record name.
609-
610-
:param domain: Domain name.
611-
:type domain: ``str``
612-
613-
:param name: Full record name (fqdn).
614-
:type name: ``str``
615-
"""
616-
if name == domain:
617-
# Map "root" record names to None to be consistent with other
618-
# drivers
619-
return None
620-
621-
# Strip domain portion
622-
name = name.replace(".%s" % (domain), "")
623-
return name
624-
625587
def _ex_connection_class_kwargs(self):
626588
kwargs = self.openstack_connection_kwargs()
627589
kwargs["region"] = self.region

libcloud/test/dns/test_rackspace.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -400,30 +400,6 @@ def test_delete_record_does_not_exist(self):
400400
else:
401401
self.fail("Exception was not thrown")
402402

403-
def test_to_full_record_name_name_provided(self):
404-
domain = "foo.bar"
405-
name = "test"
406-
self.assertEqual(self.driver._to_full_record_name(domain, name), "test.foo.bar")
407-
408-
def test_to_full_record_name_name_not_provided(self):
409-
domain = "foo.bar"
410-
name = None
411-
self.assertEqual(self.driver._to_full_record_name(domain, name), "foo.bar")
412-
413-
def test_to_partial_record_name(self):
414-
domain = "example.com"
415-
names = [
416-
"test.example.com",
417-
"foo.bar.example.com",
418-
"example.com.example.com",
419-
"example.com",
420-
]
421-
expected_values = ["test", "foo.bar", "example.com", None]
422-
423-
for name, expected_value in zip(names, expected_values):
424-
value = self.driver._to_partial_record_name(domain=domain, name=name)
425-
self.assertEqual(value, expected_value)
426-
427403
def test_ex_create_ptr_success(self):
428404
ip = "127.1.1.1"
429405
domain = "www.foo4.bar.com"

0 commit comments

Comments
 (0)