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
diff --git a/neutron_tempest_plugin/scenario/test_basic.py b/neutron_tempest_plugin/scenario/test_basic.py
index d825e15..38bc40b 100644
--- a/neutron_tempest_plugin/scenario/test_basic.py
+++ b/neutron_tempest_plugin/scenario/test_basic.py
@@ -12,8 +12,11 @@
 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 #    License for the specific language governing permissions and limitations
 #    under the License.
+import testtools
+
 from tempest.lib import decorators
 
+from neutron_tempest_plugin.common import ssh
 from neutron_tempest_plugin import config
 from neutron_tempest_plugin.scenario import base
 
@@ -33,3 +36,17 @@
         self.check_connectivity(self.fip['floating_ip_address'],
                                 CONF.validation.image_ssh_user,
                                 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)