Merge "Initial release of DNS search domain API test"
This commit is contained in:
commit
ad6679d630
@ -47,6 +47,13 @@ NetworkGroup = [
|
||||
default={},
|
||||
help="dict version of l2gw_switch:"
|
||||
"device_name:,interfaces:,segmentation_id:,"),
|
||||
cfg.StrOpt('dns_search_domain',
|
||||
default='vmware.com',
|
||||
help="a valid domain that contains host defined at"
|
||||
" attribute host_in_search_domain"),
|
||||
cfg.StrOpt('host_in_search_domain',
|
||||
default='mail',
|
||||
help="host exists in dns_search_domain"),
|
||||
]
|
||||
|
||||
nsxv_group = cfg.OptGroup(name='nsxv',
|
||||
|
128
vmware_nsx_tempest/tests/nsxv/api/test_dns_search_domain.py
Normal file
128
vmware_nsx_tempest/tests/nsxv/api/test_dns_search_domain.py
Normal file
@ -0,0 +1,128 @@
|
||||
# Copyright 2016 VMware Inc
|
||||
# All Rights Reserved
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from tempest_lib.common.utils import data_utils
|
||||
|
||||
from tempest import config
|
||||
from tempest import test
|
||||
|
||||
from vmware_nsx_tempest.tests.nsxv.api import base_provider as base
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
|
||||
class DnsSearchDomainTest(base.BaseAdminNetworkTest):
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(DnsSearchDomainTest, cls).resource_setup()
|
||||
cls.dns_search_domain = CONF.network.dns_search_domain
|
||||
network_name = data_utils.rand_name('dns-search')
|
||||
resp = cls.create_network(client=cls.networks_client,
|
||||
name=network_name)
|
||||
cls.tenant_network = resp.get('network', resp)
|
||||
# addCleanup() only available at instance, not at class
|
||||
resp = cls.create_subnet(cls.tenant_network,
|
||||
name=network_name,
|
||||
client=cls.subnets_client,
|
||||
dns_search_domain=cls.dns_search_domain)
|
||||
cls.tenant_subnet = resp.get('subnet', resp)
|
||||
|
||||
@classmethod
|
||||
def resource_cleanup(cls):
|
||||
# we need to cleanup resouces created at class methods
|
||||
cls._try_delete_resource(cls.networks_client.delete_network,
|
||||
cls.tenant_network['id'])
|
||||
super(DnsSearchDomainTest, cls).resource_cleanup()
|
||||
|
||||
def create_networks(self, network_name):
|
||||
resp = self.create_network(client=self.networks_client,
|
||||
name=network_name)
|
||||
network = resp.get('network', resp)
|
||||
self.addCleanup(self._try_delete_resource,
|
||||
self.networks_client.delete_network,
|
||||
network['id'])
|
||||
resp = self.create_subnet(network,
|
||||
name=network_name,
|
||||
client=self.subnets_client,
|
||||
dns_search_domain=self.dns_search_domain)
|
||||
subnet = resp.get('subnet', resp)
|
||||
return (network, subnet)
|
||||
|
||||
@test.idempotent_id('879d620c-535c-467f-9e62-f2bf3178b5b7')
|
||||
def test_dns_search_domain_crud_operations(self):
|
||||
"""perform CRUD operation on subnet with dns_search_domain."""
|
||||
network_name = data_utils.rand_name('crud-search-domain')
|
||||
network, subnet = self.create_networks(network_name)
|
||||
self.assertEqual('ACTIVE', network['status'])
|
||||
new_name = network_name + "-update"
|
||||
resp = self.update_subnet(
|
||||
subnet['id'], name=new_name,
|
||||
client=self.subnets_client,
|
||||
dns_search_domain=self.dns_search_domain)
|
||||
subnet = resp.get('subnet', resp)
|
||||
self.assertEqual(subnet['name'], new_name)
|
||||
self.assertEqual(subnet['dns_search_domain'],
|
||||
self.dns_search_domain)
|
||||
subnet_list = self.list_subnets(client=self.subnets_client,
|
||||
name=new_name)['subnets']
|
||||
self.assertEqual(1, len(subnet_list))
|
||||
self.delete_subnet(subnet['id'])
|
||||
subnet_list = self.list_subnets(client=self.subnets_client,
|
||||
name=new_name)['subnets']
|
||||
self.assertEqual(0, len(subnet_list))
|
||||
|
||||
@test.idempotent_id('40facdd9-40c0-48a1-bff1-57ba0ed0dc49')
|
||||
def test_list_search_domain(self):
|
||||
subnet_list = self.list_subnets(client=self.subnets_client,
|
||||
subnet_id=self.tenant_subnet['id'])
|
||||
self.assertEqual(1, len(subnet_list))
|
||||
|
||||
@test.idempotent_id('8d023934-b0c8-4588-b48b-17db047a4d8b')
|
||||
def test_show_search_domain(self):
|
||||
resp = self.show_subnet(self.tenant_subnet['id'],
|
||||
client=self.subnets_client)
|
||||
subnet = resp.get('subnet', resp)
|
||||
self.assertEqual(self.dns_search_domain,
|
||||
subnet['dns_search_domain'])
|
||||
|
||||
@test.idempotent_id('2b5990bf-d904-4e18-b197-93f3c061c260')
|
||||
def test_update_subnet_search_domain_field(self):
|
||||
"""attach 2nd subnet to network and update its dns_search_domain."""
|
||||
subnet_name = data_utils.rand_name('upd-search-domain')
|
||||
# 2nd subnet attached to a network, make sure to use different cidr
|
||||
resp = self.create_subnet(self.tenant_network,
|
||||
name=subnet_name,
|
||||
cidr_offset=1,
|
||||
client=self.subnets_client)
|
||||
subnet = resp.get('subnet', resp)
|
||||
self.assertNotIn('dns_search_domain', subnet)
|
||||
resp = self.update_subnet(
|
||||
subnet['id'],
|
||||
client=self.subnets_client,
|
||||
dns_search_domain=self.dns_search_domain)
|
||||
subnet = resp.get('subnet', resp)
|
||||
self.assertEqual(subnet['dns_search_domain'],
|
||||
self.dns_search_domain)
|
||||
# no method to remove dns_search_domain attribute
|
||||
# set to '' to clear search domain
|
||||
resp = self.update_subnet(
|
||||
subnet['id'],
|
||||
client=self.subnets_client,
|
||||
dns_search_domain='')
|
||||
subnet = resp.get('subnet', resp)
|
||||
self.assertEqual(subnet['dns_search_domain'], '')
|
||||
self.delete_subnet(subnet['id'],
|
||||
client=self.subnets_client)
|
Loading…
Reference in New Issue
Block a user