Merge "Optimize test_volume_swap_with_multiattach for server status wait"
diff --git a/HACKING.rst b/HACKING.rst
index 5b9c0f1..e767b25 100644
--- a/HACKING.rst
+++ b/HACKING.rst
@@ -349,18 +349,19 @@
 docstrings for the workflow in each test methods can be used instead. A good
 example of this would be::
 
-    class TestVolumeBootPattern(manager.ScenarioTest):
-        """
-        This test case attempts to reproduce the following steps:
+    class TestServerBasicOps(manager.ScenarioTest):
 
-         * Create in Cinder some bootable volume importing a Glance image
-         * Boot an instance from the bootable volume
-         * Write content to the volume
-         * Delete an instance and Boot a new instance from the volume
-         * Check written content in the instance
-         * Create a volume snapshot while the instance is running
-         * Boot an additional instance from the new snapshot based volume
-         * Check written content in the instance booted from snapshot
+        """The test suite for server basic operations
+
+        This smoke test case follows this basic set of operations:
+         * Create a keypair for use in launching an instance
+         * Create a security group to control network access in instance
+         * Add simple permissive rules to the security group
+         * Launch an instance
+         * Perform ssh to instance
+         * Verify metadata service
+         * Verify metadata on config_drive
+         * Terminate the instance
         """
 
 Test Identification with Idempotent ID
diff --git a/releasenotes/notes/tempest-default-run_validations-9640c41b6a4a9121.yaml b/releasenotes/notes/tempest-default-run_validations-9640c41b6a4a9121.yaml
new file mode 100644
index 0000000..8ff0b5c
--- /dev/null
+++ b/releasenotes/notes/tempest-default-run_validations-9640c41b6a4a9121.yaml
@@ -0,0 +1,10 @@
+---
+upgrade:
+  - |
+    ``CONF.validation.run_validation`` default enabled.
+    This option required to be set ``true`` in order to run api tests
+    stability when the guest cooperation required. For example when
+    the guest needs react on Volume/Interface detach.
+    The ssh test makes sure the VM is alive and ready
+    when the detach needs to happen.
+    The option was enabled on the gate for a long time.
diff --git a/tempest/api/volume/admin/test_backends_capabilities.py b/tempest/api/volume/admin/test_backends_capabilities.py
index 607fc43..affed6b 100644
--- a/tempest/api/volume/admin/test_backends_capabilities.py
+++ b/tempest/api/volume/admin/test_backends_capabilities.py
@@ -72,8 +72,8 @@
         ]
 
         # Returns a tuple of VOLUME_STATS values
-        expected_list = list(map(operator.itemgetter(*VOLUME_STATS),
-                             cinder_pools))
-        observed_list = list(map(operator.itemgetter(*VOLUME_STATS),
-                             capabilities))
+        expected_list = sorted(list(map(operator.itemgetter(*VOLUME_STATS),
+                                        cinder_pools)))
+        observed_list = sorted(list(map(operator.itemgetter(*VOLUME_STATS),
+                                        capabilities)))
         self.assertEqual(expected_list, observed_list)
diff --git a/tempest/api/volume/admin/test_group_snapshots.py b/tempest/api/volume/admin/test_group_snapshots.py
index 731a055..f695f51 100644
--- a/tempest/api/volume/admin/test_group_snapshots.py
+++ b/tempest/api/volume/admin/test_group_snapshots.py
@@ -215,6 +215,7 @@
     max_microversion = 'latest'
 
     @decorators.idempotent_id('3b42c9b9-c984-4444-816e-ca2e1ed30b40')
+    @decorators.skip_because(bug='1770179')
     def test_reset_group_snapshot_status(self):
         # Create volume type
         volume_type = self.create_volume_type()
diff --git a/tempest/config.py b/tempest/config.py
index e08ac4c..dbce504 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -672,9 +672,11 @@
 
 ValidationGroup = [
     cfg.BoolOpt('run_validation',
-                default=False,
+                default=True,
                 help='Enable ssh on created servers and creation of additional'
-                     ' validation resources to enable remote access'),
+                     ' validation resources to enable remote access.'
+                     ' In case the guest does not support ssh set it'
+                     ' to false'),
     cfg.BoolOpt('security_group',
                 default=True,
                 help='Enable/disable security groups.'),
diff --git a/tempest/scenario/test_network_advanced_server_ops.py b/tempest/scenario/test_network_advanced_server_ops.py
index 8827610..e94ce3d 100644
--- a/tempest/scenario/test_network_advanced_server_ops.py
+++ b/tempest/scenario/test_network_advanced_server_ops.py
@@ -230,6 +230,7 @@
 
         self.assertNotEqual(src_host, dst_host)
 
+    @decorators.skip_because(bug='1788403')
     @decorators.idempotent_id('25b188d7-0183-4b1e-a11d-15840c8e2fd6')
     @testtools.skipUnless(CONF.compute_feature_enabled.cold_migration,
                           'Cold migration is not available.')
diff --git a/tempest/tests/lib/services/volume/v3/test_hosts_client.py b/tempest/tests/lib/services/volume/v3/test_hosts_client.py
index 67ae4fd..09bc0b1 100644
--- a/tempest/tests/lib/services/volume/v3/test_hosts_client.py
+++ b/tempest/tests/lib/services/volume/v3/test_hosts_client.py
@@ -18,7 +18,7 @@
 from tempest.tests.lib.services import base
 
 
-class TestQuotasClient(base.BaseServiceTest):
+class TestHostsClient(base.BaseServiceTest):
     FAKE_LIST_HOSTS = {
         "hosts": [
             {
@@ -66,7 +66,7 @@
     }
 
     def setUp(self):
-        super(TestQuotasClient, self).setUp()
+        super(TestHostsClient, self).setUp()
         fake_auth = fake_auth_provider.FakeAuthProvider()
         self.client = hosts_client.HostsClient(fake_auth,
                                                'volume',