Remove dead server code in storage and add tests
Change-Id: I2dc707f285a0bb42f280a03670875a53db3e5333
This commit is contained in:
parent
45ffc1ab29
commit
cd2f0fb874
@ -61,15 +61,6 @@ class Backend(DriverPlugin):
|
|||||||
raise exceptions.NotImplemented(
|
raise exceptions.NotImplemented(
|
||||||
'TSIG is not supported by this backend')
|
'TSIG is not supported by this backend')
|
||||||
|
|
||||||
def create_server(self, context, server):
|
|
||||||
"""Create a Server"""
|
|
||||||
|
|
||||||
def update_server(self, context, server):
|
|
||||||
"""Update a Server"""
|
|
||||||
|
|
||||||
def delete_server(self, context, server):
|
|
||||||
"""Delete a Server"""
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def create_domain(self, context, domain):
|
def create_domain(self, context, domain):
|
||||||
"""Create a DNS domain"""
|
"""Create a DNS domain"""
|
||||||
@ -312,15 +303,6 @@ class PoolBackend(Backend):
|
|||||||
def delete_tsigkey(self, context, tsigkey):
|
def delete_tsigkey(self, context, tsigkey):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def create_server(self, context, server):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def update_server(self, context, server):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def delete_server(self, context, server):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def create_domain(self, context, domain):
|
def create_domain(self, context, domain):
|
||||||
"""
|
"""
|
||||||
|
@ -128,25 +128,6 @@ class MultiBackend(base.Backend):
|
|||||||
for record in self.central.find_records(
|
for record in self.central.find_records(
|
||||||
context, {'domain_id': full_domain['id']})]
|
context, {'domain_id': full_domain['id']})]
|
||||||
|
|
||||||
def create_server(self, context, server):
|
|
||||||
self.master.create_server(context, server)
|
|
||||||
try:
|
|
||||||
self.slave.create_server(context, server)
|
|
||||||
except Exception:
|
|
||||||
with excutils.save_and_reraise_exception():
|
|
||||||
self.master.delete_server(context, server)
|
|
||||||
|
|
||||||
def update_server(self, context, server):
|
|
||||||
self.master.update_server(context, server)
|
|
||||||
|
|
||||||
def delete_server(self, context, server):
|
|
||||||
self.slave.delete_server(context, server)
|
|
||||||
try:
|
|
||||||
self.master.delete_server(context, server)
|
|
||||||
except Exception:
|
|
||||||
with excutils.save_and_reraise_exception():
|
|
||||||
self.slave.create_server(context, server)
|
|
||||||
|
|
||||||
def create_recordset(self, context, domain, recordset):
|
def create_recordset(self, context, domain, recordset):
|
||||||
self.master.create_recordset(context, domain, recordset)
|
self.master.create_recordset(context, domain, recordset)
|
||||||
|
|
||||||
|
@ -46,14 +46,15 @@ class CentralAPI(object):
|
|||||||
4.1 - Add methods for server pools
|
4.1 - Add methods for server pools
|
||||||
4.2 - Add methods for pool manager integration
|
4.2 - Add methods for pool manager integration
|
||||||
4.3 - Added Zone Transfer Methods
|
4.3 - Added Zone Transfer Methods
|
||||||
|
5.0 - Remove dead server code
|
||||||
"""
|
"""
|
||||||
RPC_API_VERSION = '4.3'
|
RPC_API_VERSION = '5.0'
|
||||||
|
|
||||||
def __init__(self, topic=None):
|
def __init__(self, topic=None):
|
||||||
topic = topic if topic else cfg.CONF.central_topic
|
topic = topic if topic else cfg.CONF.central_topic
|
||||||
|
|
||||||
target = messaging.Target(topic=topic, version=self.RPC_API_VERSION)
|
target = messaging.Target(topic=topic, version=self.RPC_API_VERSION)
|
||||||
self.client = rpc.get_client(target, version_cap='4.3')
|
self.client = rpc.get_client(target, version_cap='5.0')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_instance(cls):
|
def get_instance(cls):
|
||||||
@ -99,35 +100,6 @@ class CentralAPI(object):
|
|||||||
|
|
||||||
return self.client.call(context, 'reset_quotas', tenant_id=tenant_id)
|
return self.client.call(context, 'reset_quotas', tenant_id=tenant_id)
|
||||||
|
|
||||||
# Server Methods
|
|
||||||
def create_server(self, context, server):
|
|
||||||
LOG.info(_LI("create_server: Calling central's create_server."))
|
|
||||||
|
|
||||||
return self.client.call(context, 'create_server', server=server)
|
|
||||||
|
|
||||||
def find_servers(self, context, criterion=None, marker=None, limit=None,
|
|
||||||
sort_key=None, sort_dir=None):
|
|
||||||
LOG.info(_LI("find_servers: Calling central's find_servers."))
|
|
||||||
|
|
||||||
return self.client.call(context, 'find_servers', criterion=criterion,
|
|
||||||
marker=marker, limit=limit, sort_key=sort_key,
|
|
||||||
sort_dir=sort_dir)
|
|
||||||
|
|
||||||
def get_server(self, context, server_id):
|
|
||||||
LOG.info(_LI("get_server: Calling central's get_server."))
|
|
||||||
|
|
||||||
return self.client.call(context, 'get_server', server_id=server_id)
|
|
||||||
|
|
||||||
def update_server(self, context, server):
|
|
||||||
LOG.info(_LI("update_server: Calling central's update_server."))
|
|
||||||
|
|
||||||
return self.client.call(context, 'update_server', server=server)
|
|
||||||
|
|
||||||
def delete_server(self, context, server_id):
|
|
||||||
LOG.info(_LI("delete_server: Calling central's delete_server."))
|
|
||||||
|
|
||||||
return self.client.call(context, 'delete_server', server_id=server_id)
|
|
||||||
|
|
||||||
# TSIG Key Methods
|
# TSIG Key Methods
|
||||||
def create_tsigkey(self, context, tsigkey):
|
def create_tsigkey(self, context, tsigkey):
|
||||||
LOG.info(_LI("create_tsigkey: Calling central's create_tsigkey."))
|
LOG.info(_LI("create_tsigkey: Calling central's create_tsigkey."))
|
||||||
@ -393,42 +365,35 @@ class CentralAPI(object):
|
|||||||
# Pool Server Methods
|
# Pool Server Methods
|
||||||
def create_pool(self, context, pool):
|
def create_pool(self, context, pool):
|
||||||
LOG.info(_LI("create_pool: Calling central's create_pool."))
|
LOG.info(_LI("create_pool: Calling central's create_pool."))
|
||||||
cctxt = self.client.prepare(version='4.1')
|
return self.client.call(context, 'create_pool', pool=pool)
|
||||||
return cctxt.call(context, 'create_pool', pool=pool)
|
|
||||||
|
|
||||||
def find_pools(self, context, criterion=None, marker=None, limit=None,
|
def find_pools(self, context, criterion=None, marker=None, limit=None,
|
||||||
sort_key=None, sort_dir=None):
|
sort_key=None, sort_dir=None):
|
||||||
LOG.info(_LI("find_pools: Calling central's find_pools."))
|
LOG.info(_LI("find_pools: Calling central's find_pools."))
|
||||||
cctxt = self.client.prepare(version='4.1')
|
return self.client.call(context, 'find_pools', criterion=criterion,
|
||||||
return cctxt.call(context, 'find_pools', criterion=criterion,
|
|
||||||
marker=marker, limit=limit, sort_key=sort_key,
|
marker=marker, limit=limit, sort_key=sort_key,
|
||||||
sort_dir=sort_dir)
|
sort_dir=sort_dir)
|
||||||
|
|
||||||
def find_pool(self, context, criterion=None):
|
def find_pool(self, context, criterion=None):
|
||||||
LOG.info(_LI("find_pool: Calling central's find_pool."))
|
LOG.info(_LI("find_pool: Calling central's find_pool."))
|
||||||
cctxt = self.client.prepare(version='4.1')
|
return self.client.call(context, 'find_pool', criterion=criterion)
|
||||||
return cctxt.call(context, 'find_pool', criterion=criterion)
|
|
||||||
|
|
||||||
def get_pool(self, context, pool_id):
|
def get_pool(self, context, pool_id):
|
||||||
LOG.info(_LI("get_pool: Calling central's get_pool."))
|
LOG.info(_LI("get_pool: Calling central's get_pool."))
|
||||||
cctxt = self.client.prepare(version='4.1')
|
return self.client.call(context, 'get_pool', pool_id=pool_id)
|
||||||
return cctxt.call(context, 'get_pool', pool_id=pool_id)
|
|
||||||
|
|
||||||
def update_pool(self, context, pool):
|
def update_pool(self, context, pool):
|
||||||
LOG.info(_LI("update_pool: Calling central's update_pool."))
|
LOG.info(_LI("update_pool: Calling central's update_pool."))
|
||||||
cctxt = self.client.prepare(version='4.1')
|
return self.client.call(context, 'update_pool', pool=pool)
|
||||||
return cctxt.call(context, 'update_pool', pool=pool)
|
|
||||||
|
|
||||||
def delete_pool(self, context, pool_id):
|
def delete_pool(self, context, pool_id):
|
||||||
LOG.info(_LI("delete_pool: Calling central's delete_pool."))
|
LOG.info(_LI("delete_pool: Calling central's delete_pool."))
|
||||||
cctxt = self.client.prepare(version='4.1')
|
return self.client.call(context, 'delete_pool', pool_id=pool_id)
|
||||||
return cctxt.call(context, 'delete_pool', pool_id=pool_id)
|
|
||||||
|
|
||||||
# Pool Manager Integration Methods
|
# Pool Manager Integration Methods
|
||||||
def update_status(self, context, domain_id, status, serial):
|
def update_status(self, context, domain_id, status, serial):
|
||||||
LOG.info(_LI("update_status: Calling central's update_status."))
|
LOG.info(_LI("update_status: Calling central's update_status."))
|
||||||
cctxt = self.client.prepare(version='4.2')
|
return self.client.call(context, 'update_status', domain_id=domain_id,
|
||||||
return cctxt.call(context, 'update_status', domain_id=domain_id,
|
|
||||||
status=status, serial=serial)
|
status=status, serial=serial)
|
||||||
|
|
||||||
# Zone Ownership Transfers
|
# Zone Ownership Transfers
|
||||||
@ -436,16 +401,14 @@ class CentralAPI(object):
|
|||||||
LOG.info(_LI("create_zone_transfer_request: \
|
LOG.info(_LI("create_zone_transfer_request: \
|
||||||
Calling central's create_zone_transfer_request."))
|
Calling central's create_zone_transfer_request."))
|
||||||
|
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'create_zone_transfer_request',
|
context, 'create_zone_transfer_request',
|
||||||
zone_transfer_request=zone_transfer_request)
|
zone_transfer_request=zone_transfer_request)
|
||||||
|
|
||||||
def get_zone_transfer_request(self, context, zone_transfer_request_id):
|
def get_zone_transfer_request(self, context, zone_transfer_request_id):
|
||||||
LOG.info(_LI("get_zone_transfer_request: \
|
LOG.info(_LI("get_zone_transfer_request: \
|
||||||
Calling central's get_zone_transfer_request."))
|
Calling central's get_zone_transfer_request."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context,
|
context,
|
||||||
'get_zone_transfer_request',
|
'get_zone_transfer_request',
|
||||||
zone_transfer_request_id=zone_transfer_request_id)
|
zone_transfer_request_id=zone_transfer_request_id)
|
||||||
@ -455,32 +418,28 @@ class CentralAPI(object):
|
|||||||
LOG.info(_LI("find_zone_transfer_requests: \
|
LOG.info(_LI("find_zone_transfer_requests: \
|
||||||
Calling central's find_zone_transfer_requests."))
|
Calling central's find_zone_transfer_requests."))
|
||||||
|
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'find_zone_transfer_requests', criterion=criterion,
|
context, 'find_zone_transfer_requests', criterion=criterion,
|
||||||
marker=marker, limit=limit, sort_key=sort_key, sort_dir=sort_dir)
|
marker=marker, limit=limit, sort_key=sort_key, sort_dir=sort_dir)
|
||||||
|
|
||||||
def find_zone_transfer_request(self, context, zone_transfer_request):
|
def find_zone_transfer_request(self, context, zone_transfer_request):
|
||||||
LOG.info(_LI("find_zone_transfer_request: \
|
LOG.info(_LI("find_zone_transfer_request: \
|
||||||
Calling central's find_zone_transfer_request."))
|
Calling central's find_zone_transfer_request."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'find_zone_transfer_request',
|
context, 'find_zone_transfer_request',
|
||||||
zone_transfer_request=zone_transfer_request)
|
zone_transfer_request=zone_transfer_request)
|
||||||
|
|
||||||
def update_zone_transfer_request(self, context, zone_transfer_request):
|
def update_zone_transfer_request(self, context, zone_transfer_request):
|
||||||
LOG.info(_LI("update_zone_transfer_request: \
|
LOG.info(_LI("update_zone_transfer_request: \
|
||||||
Calling central's update_zone_transfer_request."))
|
Calling central's update_zone_transfer_request."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'update_zone_transfer_request',
|
context, 'update_zone_transfer_request',
|
||||||
zone_transfer_request=zone_transfer_request)
|
zone_transfer_request=zone_transfer_request)
|
||||||
|
|
||||||
def delete_zone_transfer_request(self, context, zone_transfer_request_id):
|
def delete_zone_transfer_request(self, context, zone_transfer_request_id):
|
||||||
LOG.info(_LI("delete_zone_transfer_request: \
|
LOG.info(_LI("delete_zone_transfer_request: \
|
||||||
Calling central's delete_zone_transfer_request."))
|
Calling central's delete_zone_transfer_request."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context,
|
context,
|
||||||
'delete_zone_transfer_request',
|
'delete_zone_transfer_request',
|
||||||
zone_transfer_request_id=zone_transfer_request_id)
|
zone_transfer_request_id=zone_transfer_request_id)
|
||||||
@ -488,16 +447,14 @@ class CentralAPI(object):
|
|||||||
def create_zone_transfer_accept(self, context, zone_transfer_accept):
|
def create_zone_transfer_accept(self, context, zone_transfer_accept):
|
||||||
LOG.info(_LI("create_zone_transfer_accept: \
|
LOG.info(_LI("create_zone_transfer_accept: \
|
||||||
Calling central's create_zone_transfer_accept."))
|
Calling central's create_zone_transfer_accept."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'create_zone_transfer_accept',
|
context, 'create_zone_transfer_accept',
|
||||||
zone_transfer_accept=zone_transfer_accept)
|
zone_transfer_accept=zone_transfer_accept)
|
||||||
|
|
||||||
def get_zone_transfer_accept(self, context, zone_transfer_accept_id):
|
def get_zone_transfer_accept(self, context, zone_transfer_accept_id):
|
||||||
LOG.info(_LI("get_zone_transfer_accept: \
|
LOG.info(_LI("get_zone_transfer_accept: \
|
||||||
Calling central's get_zone_transfer_accept."))
|
Calling central's get_zone_transfer_accept."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context,
|
context,
|
||||||
'get_zone_transfer_accept',
|
'get_zone_transfer_accept',
|
||||||
zone_transfer_accept_id=zone_transfer_accept_id)
|
zone_transfer_accept_id=zone_transfer_accept_id)
|
||||||
@ -506,32 +463,28 @@ class CentralAPI(object):
|
|||||||
limit=None, sort_key=None, sort_dir=None):
|
limit=None, sort_key=None, sort_dir=None):
|
||||||
LOG.info(_LI("find_zone_transfer_accepts: \
|
LOG.info(_LI("find_zone_transfer_accepts: \
|
||||||
Calling central's find_zone_transfer_accepts."))
|
Calling central's find_zone_transfer_accepts."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'find_zone_transfer_accepts', criterion=criterion,
|
context, 'find_zone_transfer_accepts', criterion=criterion,
|
||||||
marker=marker, limit=limit, sort_key=sort_key, sort_dir=sort_dir)
|
marker=marker, limit=limit, sort_key=sort_key, sort_dir=sort_dir)
|
||||||
|
|
||||||
def find_zone_transfer_accept(self, context, zone_transfer_accept):
|
def find_zone_transfer_accept(self, context, zone_transfer_accept):
|
||||||
LOG.info(_LI("find_zone_transfer_accept: \
|
LOG.info(_LI("find_zone_transfer_accept: \
|
||||||
Calling central's find_zone_transfer_accept."))
|
Calling central's find_zone_transfer_accept."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'find_zone_transfer_accept',
|
context, 'find_zone_transfer_accept',
|
||||||
zone_transfer_accept=zone_transfer_accept)
|
zone_transfer_accept=zone_transfer_accept)
|
||||||
|
|
||||||
def update_zone_transfer_accept(self, context, zone_transfer_accept):
|
def update_zone_transfer_accept(self, context, zone_transfer_accept):
|
||||||
LOG.info(_LI("update_zone_transfer_accept: \
|
LOG.info(_LI("update_zone_transfer_accept: \
|
||||||
Calling central's update_zone_transfer_accept."))
|
Calling central's update_zone_transfer_accept."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context, 'update_zone_transfer_accept',
|
context, 'update_zone_transfer_accept',
|
||||||
zone_transfer_accept=zone_transfer_accept)
|
zone_transfer_accept=zone_transfer_accept)
|
||||||
|
|
||||||
def delete_zone_transfer_accept(self, context, zone_transfer_accept_id):
|
def delete_zone_transfer_accept(self, context, zone_transfer_accept_id):
|
||||||
LOG.info(_LI("delete_zone_transfer_accept: \
|
LOG.info(_LI("delete_zone_transfer_accept: \
|
||||||
Calling central's delete_zone_transfer_accept."))
|
Calling central's delete_zone_transfer_accept."))
|
||||||
cctxt = self.client.prepare(version='4.3')
|
return self.client.call(
|
||||||
return cctxt.call(
|
|
||||||
context,
|
context,
|
||||||
'delete_zone_transfer_accept',
|
'delete_zone_transfer_accept',
|
||||||
zone_transfer_accept_id=zone_transfer_accept_id)
|
zone_transfer_accept_id=zone_transfer_accept_id)
|
||||||
|
@ -185,7 +185,7 @@ def notification(notification_type):
|
|||||||
|
|
||||||
|
|
||||||
class Service(service.RPCService):
|
class Service(service.RPCService):
|
||||||
RPC_API_VERSION = '4.3'
|
RPC_API_VERSION = '5.0'
|
||||||
|
|
||||||
target = messaging.Target(version=RPC_API_VERSION)
|
target = messaging.Target(version=RPC_API_VERSION)
|
||||||
|
|
||||||
|
@ -838,16 +838,6 @@ class SQLAlchemyStorage(sqlalchemy_base.SQLAlchemy, storage_base.Storage):
|
|||||||
exceptions.ZoneTransferAcceptNotFound, criterion,
|
exceptions.ZoneTransferAcceptNotFound, criterion,
|
||||||
one, marker, limit, sort_key, sort_dir)
|
one, marker, limit, sort_key, sort_dir)
|
||||||
|
|
||||||
def _get_domain_name(self, context, domain_id, all_tenants=False):
|
|
||||||
|
|
||||||
if all_tenants:
|
|
||||||
ctxt = context.elevated()
|
|
||||||
ctxt.all_tenants = True
|
|
||||||
else:
|
|
||||||
ctxt = context
|
|
||||||
|
|
||||||
return self.get_domain(ctxt, domain_id).name
|
|
||||||
|
|
||||||
def create_zone_transfer_accept(self, context, zone_transfer_accept):
|
def create_zone_transfer_accept(self, context, zone_transfer_accept):
|
||||||
|
|
||||||
return self._create(
|
return self._create(
|
||||||
|
@ -163,7 +163,7 @@ class CentralServiceTestIPA(designate.tests.test_central.
|
|||||||
values['ttl'] = -100
|
values['ttl'] = -100
|
||||||
|
|
||||||
# Create a server
|
# Create a server
|
||||||
self.create_server()
|
self.create_nameserver()
|
||||||
|
|
||||||
# Create domain with negative TTL
|
# Create domain with negative TTL
|
||||||
with testtools.ExpectedException(impl_ipa.IPAInvalidData):
|
with testtools.ExpectedException(impl_ipa.IPAInvalidData):
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
import uuid
|
import uuid
|
||||||
import math
|
import math
|
||||||
|
|
||||||
|
import mock
|
||||||
import testtools
|
import testtools
|
||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
@ -483,6 +484,14 @@ class StorageTestCase(object):
|
|||||||
tenants = self.storage.count_tenants(context)
|
tenants = self.storage.count_tenants(context)
|
||||||
self.assertEqual(tenants, 2)
|
self.assertEqual(tenants, 2)
|
||||||
|
|
||||||
|
def test_count_tenants_none_result(self):
|
||||||
|
rp = mock.Mock()
|
||||||
|
rp.fetchone.return_value = None
|
||||||
|
with mock.patch.object(self.storage.session, 'execute',
|
||||||
|
return_value=rp):
|
||||||
|
tenants = self.storage.count_tenants(self.admin_context)
|
||||||
|
self.assertEqual(tenants, 0)
|
||||||
|
|
||||||
# Domain Tests
|
# Domain Tests
|
||||||
def test_create_domain(self):
|
def test_create_domain(self):
|
||||||
pool_id = cfg.CONF['service:central'].default_pool_id
|
pool_id = cfg.CONF['service:central'].default_pool_id
|
||||||
@ -713,6 +722,14 @@ class StorageTestCase(object):
|
|||||||
# well, did we get 1?
|
# well, did we get 1?
|
||||||
self.assertEqual(domains, 1)
|
self.assertEqual(domains, 1)
|
||||||
|
|
||||||
|
def test_count_domains_none_result(self):
|
||||||
|
rp = mock.Mock()
|
||||||
|
rp.fetchone.return_value = None
|
||||||
|
with mock.patch.object(self.storage.session, 'execute',
|
||||||
|
return_value=rp):
|
||||||
|
domains = self.storage.count_domains(self.admin_context)
|
||||||
|
self.assertEqual(domains, 0)
|
||||||
|
|
||||||
def test_create_recordset(self):
|
def test_create_recordset(self):
|
||||||
domain = self.create_domain()
|
domain = self.create_domain()
|
||||||
|
|
||||||
@ -969,6 +986,9 @@ class StorageTestCase(object):
|
|||||||
# Update the Object
|
# Update the Object
|
||||||
recordset.ttl = 1800
|
recordset.ttl = 1800
|
||||||
|
|
||||||
|
# Change records as well
|
||||||
|
recordset.records.append(objects.Record(data="10.0.0.1"))
|
||||||
|
|
||||||
# Perform the update
|
# Perform the update
|
||||||
recordset = self.storage.update_recordset(self.admin_context,
|
recordset = self.storage.update_recordset(self.admin_context,
|
||||||
recordset)
|
recordset)
|
||||||
@ -1116,6 +1136,14 @@ class StorageTestCase(object):
|
|||||||
recordsets = self.storage.count_recordsets(self.admin_context)
|
recordsets = self.storage.count_recordsets(self.admin_context)
|
||||||
self.assertEqual(recordsets, 3)
|
self.assertEqual(recordsets, 3)
|
||||||
|
|
||||||
|
def test_count_recordsets_none_result(self):
|
||||||
|
rp = mock.Mock()
|
||||||
|
rp.fetchone.return_value = None
|
||||||
|
with mock.patch.object(self.storage.session, 'execute',
|
||||||
|
return_value=rp):
|
||||||
|
recordsets = self.storage.count_recordsets(self.admin_context)
|
||||||
|
self.assertEqual(recordsets, 0)
|
||||||
|
|
||||||
def test_create_record(self):
|
def test_create_record(self):
|
||||||
domain = self.create_domain()
|
domain = self.create_domain()
|
||||||
recordset = self.create_recordset(domain, type='A')
|
recordset = self.create_recordset(domain, type='A')
|
||||||
@ -1393,12 +1421,27 @@ class StorageTestCase(object):
|
|||||||
records = self.storage.count_records(self.admin_context)
|
records = self.storage.count_records(self.admin_context)
|
||||||
self.assertEqual(records, 3)
|
self.assertEqual(records, 3)
|
||||||
|
|
||||||
|
def test_count_records_none_result(self):
|
||||||
|
rp = mock.Mock()
|
||||||
|
rp.fetchone.return_value = None
|
||||||
|
with mock.patch.object(self.storage.session, 'execute',
|
||||||
|
return_value=rp):
|
||||||
|
records = self.storage.count_records(self.admin_context)
|
||||||
|
self.assertEqual(records, 0)
|
||||||
|
|
||||||
def test_ping(self):
|
def test_ping(self):
|
||||||
pong = self.storage.ping(self.admin_context)
|
pong = self.storage.ping(self.admin_context)
|
||||||
|
|
||||||
self.assertEqual(pong['status'], True)
|
self.assertEqual(pong['status'], True)
|
||||||
self.assertIsNotNone(pong['rtt'])
|
self.assertIsNotNone(pong['rtt'])
|
||||||
|
|
||||||
|
def test_ping_fail(self):
|
||||||
|
with mock.patch.object(self.storage.engine, "execute",
|
||||||
|
side_effect=Exception):
|
||||||
|
result = self.storage.ping(self.admin_context)
|
||||||
|
self.assertEqual(False, result['status'])
|
||||||
|
self.assertIsNotNone(result['rtt'])
|
||||||
|
|
||||||
# TLD Tests
|
# TLD Tests
|
||||||
def test_create_tld(self):
|
def test_create_tld(self):
|
||||||
values = {
|
values = {
|
||||||
@ -1914,6 +1957,22 @@ class StorageTestCase(object):
|
|||||||
self.storage.get_zone_transfer_request(
|
self.storage.get_zone_transfer_request(
|
||||||
tenant_3_context, result.id)
|
tenant_3_context, result.id)
|
||||||
|
|
||||||
|
def test_find_zone_transfer_requests(self):
|
||||||
|
domain = self.create_domain()
|
||||||
|
|
||||||
|
values = {
|
||||||
|
'tenant_id': self.admin_context.tenant,
|
||||||
|
'domain_id': domain.id,
|
||||||
|
'key': 'qwertyuiop'
|
||||||
|
}
|
||||||
|
|
||||||
|
self.storage.create_zone_transfer_request(
|
||||||
|
self.admin_context, objects.ZoneTransferRequest(**values))
|
||||||
|
|
||||||
|
requests = self.storage.find_zone_transfer_requests(
|
||||||
|
self.admin_context, {"tenant_id": self.admin_context.tenant})
|
||||||
|
self.assertEqual(len(requests), 1)
|
||||||
|
|
||||||
def test_delete_zone_transfer_request(self):
|
def test_delete_zone_transfer_request(self):
|
||||||
domain = self.create_domain()
|
domain = self.create_domain()
|
||||||
zt_request = self.create_zone_transfer_request(domain)
|
zt_request = self.create_zone_transfer_request(domain)
|
||||||
@ -1964,6 +2023,40 @@ class StorageTestCase(object):
|
|||||||
self.assertEqual(result['tenant_id'], self.admin_context.tenant)
|
self.assertEqual(result['tenant_id'], self.admin_context.tenant)
|
||||||
self.assertIn('status', result)
|
self.assertIn('status', result)
|
||||||
|
|
||||||
|
def test_find_zone_transfer_accepts(self):
|
||||||
|
domain = self.create_domain()
|
||||||
|
zt_request = self.create_zone_transfer_request(domain)
|
||||||
|
values = {
|
||||||
|
'tenant_id': self.admin_context.tenant,
|
||||||
|
'zone_transfer_request_id': zt_request.id,
|
||||||
|
'domain_id': domain.id,
|
||||||
|
'key': zt_request.key
|
||||||
|
}
|
||||||
|
|
||||||
|
self.storage.create_zone_transfer_accept(
|
||||||
|
self.admin_context, objects.ZoneTransferAccept(**values))
|
||||||
|
|
||||||
|
accepts = self.storage.find_zone_transfer_accepts(
|
||||||
|
self.admin_context, {"tenant_id": self.admin_context.tenant})
|
||||||
|
self.assertEqual(len(accepts), 1)
|
||||||
|
|
||||||
|
def test_find_zone_transfer_accept(self):
|
||||||
|
domain = self.create_domain()
|
||||||
|
zt_request = self.create_zone_transfer_request(domain)
|
||||||
|
values = {
|
||||||
|
'tenant_id': self.admin_context.tenant,
|
||||||
|
'zone_transfer_request_id': zt_request.id,
|
||||||
|
'domain_id': domain.id,
|
||||||
|
'key': zt_request.key
|
||||||
|
}
|
||||||
|
|
||||||
|
result = self.storage.create_zone_transfer_accept(
|
||||||
|
self.admin_context, objects.ZoneTransferAccept(**values))
|
||||||
|
|
||||||
|
accept = self.storage.find_zone_transfer_accept(
|
||||||
|
self.admin_context, {"id": result.id})
|
||||||
|
self.assertEqual(accept.id, result.id)
|
||||||
|
|
||||||
def test_transfer_zone_ownership(self):
|
def test_transfer_zone_ownership(self):
|
||||||
tenant_1_context = self.get_context(tenant='1')
|
tenant_1_context = self.get_context(tenant='1')
|
||||||
tenant_2_context = self.get_context(tenant='2')
|
tenant_2_context = self.get_context(tenant='2')
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
|
import mock
|
||||||
|
|
||||||
from designate import storage
|
from designate import storage
|
||||||
from designate.tests import TestCase
|
from designate.tests import TestCase
|
||||||
@ -27,3 +28,11 @@ class SqlalchemyStorageTest(StorageTestCase, TestCase):
|
|||||||
super(SqlalchemyStorageTest, self).setUp()
|
super(SqlalchemyStorageTest, self).setUp()
|
||||||
|
|
||||||
self.storage = storage.get_storage('sqlalchemy')
|
self.storage = storage.get_storage('sqlalchemy')
|
||||||
|
|
||||||
|
def test_ping_negative(self):
|
||||||
|
with mock.patch.object(self.storage.engine, 'execute',
|
||||||
|
return_value=0):
|
||||||
|
pong = self.storage.ping(self.admin_context)
|
||||||
|
|
||||||
|
self.assertEqual(pong['status'], False)
|
||||||
|
self.assertIsNotNone(pong['rtt'])
|
||||||
|
@ -18,12 +18,6 @@
|
|||||||
"set_quota": "rule:admin",
|
"set_quota": "rule:admin",
|
||||||
"reset_quotas": "rule:admin",
|
"reset_quotas": "rule:admin",
|
||||||
|
|
||||||
"create_server": "rule:admin",
|
|
||||||
"find_servers": "rule:admin",
|
|
||||||
"get_server": "rule:admin",
|
|
||||||
"update_server": "rule:admin",
|
|
||||||
"delete_server": "rule:admin",
|
|
||||||
|
|
||||||
"create_tld": "rule:admin",
|
"create_tld": "rule:admin",
|
||||||
"find_tlds": "rule:admin",
|
"find_tlds": "rule:admin",
|
||||||
"get_tld": "rule:admin",
|
"get_tld": "rule:admin",
|
||||||
|
Loading…
Reference in New Issue
Block a user