neutron-tempest-plugin/neutron_tempest_plugin/api/base_routers.py
Jakub Libosvar 8370483edc api: Add HA router delete test
The test makes sure deleting router does not influence any HA network
segmentation details being wiped out.

Change-Id: Ib12986c25eda25970445169310c7c0334d6da49c
Related-bug: #1732543
2017-12-07 17:58:15 +00:00

57 lines
2.2 KiB
Python

# Copyright 2013 OpenStack Foundation
# 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 import exceptions
from neutron_tempest_plugin.api import base
class BaseRouterTest(base.BaseAdminNetworkTest):
# NOTE(salv-orlando): This class inherits from BaseAdminNetworkTest
# as some router operations, such as enabling or disabling SNAT
# require admin credentials by default
def _cleanup_router(self, router, client=None):
try:
self.delete_router(router, client)
self.routers.remove(router)
except exceptions.NotFound:
pass
def _create_router(self, name, admin_state_up=False,
external_network_id=None, enable_snat=None):
# associate a cleanup with created routers to avoid quota limits
router = self.create_router(name, admin_state_up,
external_network_id, enable_snat)
self.addCleanup(self._cleanup_router, router)
return router
def _create_admin_router(self, *args, **kwargs):
router = self.create_admin_router(*args, **kwargs)
self.addCleanup(
self._cleanup_router, router, self.os_admin.network_client)
return router
def _delete_router(self, router_id, network_client=None):
client = network_client or self.client
client.delete_router(router_id)
# Asserting that the router is not found in the list
# after deletion
list_body = self.client.list_routers()
routers_list = list()
for router in list_body['routers']:
routers_list.append(router['id'])
self.assertNotIn(router_id, routers_list)