예제 #1
0
 def test_add_ptr_records(self):
     clt = self.client
     mgr = clt._manager
     dvc = fakes.FakeDNSDevice()
     href = "%s/%s" % (example_uri, dvc.id)
     svc_name = "cloudServersOpenStack"
     rec = {"foo": "bar"}
     body = {
         "recordsList": {
             "records": [rec]
         },
         "link": {
             "content": "",
             "href": href,
             "rel": svc_name
         }
     }
     uri = "/rdns"
     mgr._get_ptr_details = Mock(return_value=(href, svc_name))
     mgr._async_call = Mock(return_value=({}, {"records": []}))
     clt.add_ptr_records(dvc, rec)
     mgr._async_call.assert_called_once_with(
         uri,
         body=body,
         error_class=exc.PTRRecordCreationFailed,
         method="POST")
예제 #2
0
 def test_resolve_device_type(self):
     clt = self.client
     mgr = clt._manager
     device = fakes.FakeDNSDevice()
     typ = mgr._resolve_device_type(device)
     self.assertEqual(typ, "loadbalancer")
     device = fakes.FakeLoadBalancer()
     typ = mgr._resolve_device_type(device)
     self.assertEqual(typ, "loadbalancer")
예제 #3
0
 def test_list_ptr_records_not_found(self):
     clt = self.client
     mgr = clt._manager
     dvc = fakes.FakeDNSDevice()
     href = "%s/%s" % (example_uri, dvc.id)
     svc_name = "cloudServersOpenStack"
     uri = "/rdns/%s?href=%s" % (svc_name, href)
     mgr._get_ptr_details = Mock(return_value=(href, svc_name))
     clt.method_get = Mock(side_effect=exc.NotFound(""))
     ret = clt.list_ptr_records(dvc)
     clt.method_get.assert_called_once_with(uri)
     self.assertEqual(ret, [])
예제 #4
0
 def test_get_ptr_details_lb(self):
     clt = self.client
     mgr = clt._manager
     dvc = fakes.FakeDNSDevice()
     dvc_type = "loadbalancer"
     sav = pyrax._get_service_endpoint
     pyrax._get_service_endpoint = Mock(return_value=example_uri)
     expected_href = "%s/loadbalancers/%s" % (example_uri, dvc.id)
     href, svc_name = mgr._get_ptr_details(dvc, dvc_type)
     self.assertEqual(svc_name, "cloudLoadBalancers")
     self.assertEqual(href, expected_href)
     pyrax._get_service_endpoint = sav
예제 #5
0
 def test_delete_ptr_records(self):
     clt = self.client
     mgr = clt._manager
     dvc = fakes.FakeDNSDevice()
     href = "%s/%s" % (example_uri, dvc.id)
     svc_name = "cloudServersOpenStack"
     ip_address = "0.0.0.0"
     uri = "/rdns/%s?href=%s&ip=%s" % (svc_name, href, ip_address)
     mgr._get_ptr_details = Mock(return_value=(href, svc_name))
     mgr._async_call = Mock(return_value=({}, {"records": []}))
     ret = clt.delete_ptr_records(dvc, ip_address=ip_address)
     mgr._async_call.assert_called_once_with(
         uri,
         error_class=exc.PTRRecordDeletionFailed,
         method="DELETE",
         has_response=False)
예제 #6
0
 def test_update_ptr_record(self):
     clt = self.client
     mgr = clt._manager
     dvc = fakes.FakeDNSDevice()
     href = "%s/%s" % (example_uri, dvc.id)
     svc_name = "cloudServersOpenStack"
     ptr_record = fakes.FakeDNSPTRRecord({"id": utils.random_unicode()})
     ttl = 9999
     data = "0.0.0.0"
     long_comment = "x" * 200
     trim_comment = long_comment[:160]
     nm = "example.com"
     rec = {
         "name": nm,
         "id": ptr_record.id,
         "type": "PTR",
         "data": data,
         "ttl": ttl,
         "comment": trim_comment
     }
     uri = "/rdns"
     body = {
         "recordsList": {
             "records": [rec]
         },
         "link": {
             "content": "",
             "href": href,
             "rel": svc_name
         }
     }
     mgr._get_ptr_details = Mock(return_value=(href, svc_name))
     mgr._async_call = Mock(return_value=({}, {"records": []}))
     clt.update_ptr_record(dvc,
                           ptr_record,
                           domain_name=nm,
                           data=data,
                           ttl=ttl,
                           comment=long_comment)
     mgr._async_call.assert_called_once_with(
         uri,
         body=body,
         error_class=exc.PTRRecordUpdateFailed,
         method="PUT",
         has_response=False)