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")
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")
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, [])
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
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)
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)