Преглед изворни кода

Added support for wildcard dns (#249)

Nuwan Goonasekera пре 5 година
родитељ
комит
346076525d
2 измењених фајлова са 15 додато и 1 уклоњено
  1. 1 1
      cloudbridge/base/resources.py
  2. 14 0
      tests/test_dns_service.py

+ 1 - 1
cloudbridge/base/resources.py

@@ -934,7 +934,7 @@ class BaseDnsZone(BaseCloudResource, DnsZone):
 class BaseDnsRecord(BaseCloudResource, DnsRecord):
 
     CB_NAME_PATTERN = re.compile(
-        r"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9]"
+        r"^(?:\*\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9]"
         r"[a-z0-9-]{0,61}[a-z0-9]\.?$")
 
     def __init__(self, provider):

+ 14 - 0
tests/test_dns_service.py

@@ -66,6 +66,20 @@ class CloudDnsServiceTestCase(ProviderTestBase):
                            "cb-dnsrec", create_dns_rec,
                            cleanup_dns_rec, skip_name_check=True)
 
+    @helpers.skipIfNoService(['dns.host_zones'])
+    def test_create_wildcard_dns_record(self):
+        test_zone = None
+        zone_name = "cb-dnswild-{0}.com.".format(helpers.get_uuid())
+
+        with cb_helpers.cleanup_action(lambda: test_zone.delete()):
+            test_zone = self.provider.dns.host_zones.create(
+                zone_name, "admin@cloudve.org")
+            test_rec = None
+            with cb_helpers.cleanup_action(lambda: test_rec.delete()):
+                test_rec = test_zone.records.create(
+                    "*.cb-wildcard." + zone_name, DnsRecordType.A,
+                    data='10.1.1.1')
+
     @helpers.skipIfNoService(['dns.host_zones'])
     def test_dns_record_properties(self):
         test_zone = None