test_dns_service.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from cloudbridge.base import helpers as cb_helpers
  2. from cloudbridge.interfaces.resources import DnsRecord
  3. from cloudbridge.interfaces.resources import DnsRecordType
  4. from cloudbridge.interfaces.resources import DnsZone
  5. from tests import helpers
  6. from tests.helpers import ProviderTestBase
  7. from tests.helpers import standard_interface_tests as sit
  8. class CloudDnsServiceTestCase(ProviderTestBase):
  9. _multiprocess_can_split_ = True
  10. @helpers.skipIfNoService(['dns.host_zones'])
  11. def test_crud_dns_zones(self):
  12. def create_dns_zone(name):
  13. if name:
  14. name = name + ".com."
  15. return self.provider.dns.host_zones.create(name)
  16. def cleanup_dns_zone(dns_zone):
  17. if dns_zone:
  18. dns_zone.delete()
  19. sit.check_crud(self, self.provider.dns.host_zones, DnsZone,
  20. "cb-crudzone", create_dns_zone, cleanup_dns_zone,
  21. skip_name_check=True)
  22. @helpers.skipIfNoService(['dns.host_zones'])
  23. def test_crud_dns_record(self):
  24. test_zone = None
  25. zone_name = "cb-dnsrec-{0}.com.".format(helpers.get_uuid())
  26. def create_dns_rec(name):
  27. if name:
  28. name = name + "." + zone_name
  29. else:
  30. name = zone_name
  31. return test_zone.records.create(
  32. name, DnsRecordType.A, data='10.1.1.1')
  33. def cleanup_dns_rec(dns_rec):
  34. if dns_rec:
  35. dns_rec.delete()
  36. with cb_helpers.cleanup_action(lambda: test_zone.delete()):
  37. test_zone = self.provider.dns.host_zones.create(zone_name)
  38. sit.check_crud(self, test_zone.records, DnsRecord,
  39. "cb-dnsrec", create_dns_rec,
  40. cleanup_dns_rec, skip_name_check=True)
  41. @helpers.skipIfNoService(['dns.host_zones'])
  42. def test_dns_record_properties(self):
  43. test_zone = None
  44. zone_name = "cb-recprop-{0}.com.".format(helpers.get_uuid())
  45. with cb_helpers.cleanup_action(lambda: test_zone.delete()):
  46. test_zone = self.provider.dns.host_zones.create(zone_name)
  47. test_rec = None
  48. with cb_helpers.cleanup_action(lambda: test_rec.delete()):
  49. zone_name = "subdomain." + zone_name
  50. test_rec = test_zone.records.create(
  51. zone_name, DnsRecordType.CNAME, data='hello.com.', ttl=500)
  52. self.assertEqual(test_rec.zone_id, test_zone.id)
  53. self.assertEqual(test_rec.type, DnsRecordType.CNAME)
  54. self.assertEqual(test_rec.data, 'hello.com.')
  55. self.assertEqual(test_rec.ttl, 500)