Add test_ping_global_ip_from_vm_with_fip

We need such a test in order to be able to catch issues like [1].
The test creates network and server, then launches a VM with a FIP.
Then connects to the FIP and pings a global ip address.
The test requires global_ip_address variable in tempest.conf.
By default the value is not set and the test will be skipped.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1834433

Change-Id: Ibb3db814ed9b42f28ced8378368a3d5c2e43d7b3
This commit is contained in:
Roman Safronov 2020-05-13 16:38:15 +03:00
parent 30e13ba324
commit 367e118802
2 changed files with 21 additions and 0 deletions

View File

@ -60,6 +60,10 @@ NeutronPluginOptions = [
cfg.IntOpt('max_mtu', cfg.IntOpt('max_mtu',
default=1500, default=1500,
help='Max mtu value of default deployments".'), help='Max mtu value of default deployments".'),
cfg.StrOpt('global_ip_address',
default='',
help='An IP address in the Internet that can be used in '
'a connectivity test'),
cfg.StrOpt('q_agent', cfg.StrOpt('q_agent',
default=None, default=None,
choices=['None', 'linuxbridge', 'ovs', 'sriov'], choices=['None', 'linuxbridge', 'ovs', 'sriov'],

View File

@ -12,8 +12,11 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import testtools
from tempest.lib import decorators from tempest.lib import decorators
from neutron_tempest_plugin.common import ssh
from neutron_tempest_plugin import config from neutron_tempest_plugin import config
from neutron_tempest_plugin.scenario import base from neutron_tempest_plugin.scenario import base
@ -33,3 +36,17 @@ class NetworkBasicTest(base.BaseTempestTestCase):
self.check_connectivity(self.fip['floating_ip_address'], self.check_connectivity(self.fip['floating_ip_address'],
CONF.validation.image_ssh_user, CONF.validation.image_ssh_user,
self.keypair['private_key']) self.keypair['private_key'])
@testtools.skipUnless(
CONF.neutron_plugin_options.global_ip_address,
'Global IP address is not defined.')
@decorators.idempotent_id('49609189-3a0e-43c7-832e-a7e114aad1c9')
def test_ping_global_ip_from_vm_with_fip(self):
self.setup_network_and_server()
server_ssh_client = ssh.Client(self.fip['floating_ip_address'],
CONF.validation.image_ssh_user,
pkey=self.keypair['private_key'])
self.check_remote_connectivity(
server_ssh_client,
CONF.neutron_plugin_options.global_ip_address,
ping_count=1)