Patch to add test that checks vGPU in instance
Related-prod: PRODX-37187
Change-Id: Ie8954eaf4aa7306f839092e010c107422d7f37f1
(cherry picked from commit fbfbdf1ca11cb7b0db9a6948a2a077f662bdd3d6)
diff --git a/tempest/api/compute/admin/test_create_server.py b/tempest/api/compute/admin/test_create_server.py
index 8bc999a..e24259f 100644
--- a/tempest/api/compute/admin/test_create_server.py
+++ b/tempest/api/compute/admin/test_create_server.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from re import search
+
import testtools
from tempest.api.compute import base
@@ -308,3 +310,42 @@
'Cold migration is not available.')
def test_cold_migration(self):
self._test_cold_migration()
+
+
+class ServersTestVGPU(base.BaseV2ComputeAdminTest):
+ """Test creating server with vGPU flavor"""
+
+ @classmethod
+ def setup_credentials(cls):
+ cls.prepare_instance_network()
+ super(ServersTestVGPU, cls).setup_credentials()
+
+ @classmethod
+ def setup_clients(cls):
+ super(ServersTestVGPU, cls).setup_clients()
+ cls.client = cls.servers_client
+
+ @testtools.skipUnless(CONF.compute_feature_enabled.vgpu_flavor_ref,
+ 'vGPU flavor is not available.')
+ @testtools.skipUnless(CONF.compute.image_full_ref,
+ 'Current test requires full OS to be used.')
+ @decorators.idempotent_id('5c06d62b-d9c9-4cef-8b56-ef003af03519')
+ def test_create_server_vgpu(self):
+ # create the server and wait for it to become ready
+ validation_resources = self.get_class_validation_resources(
+ self.os_primary)
+ server = self.create_test_server(
+ image_id=CONF.compute.image_full_ref,
+ validatable=True,
+ validation_resources=validation_resources,
+ flavor=CONF.compute_feature_enabled.vgpu_flavor_ref)
+ # check that vgpu_pci_name is in console log server
+ linux_client = remote_client.RemoteClient(
+ self.get_server_ip(server, validation_resources),
+ CONF.compute.image_full_username,
+ pkey=validation_resources['keypair']['private_key'],
+ server=server,
+ servers_client=self.client)
+ output = linux_client.exec_command('lspci')
+ self.assertTrue(search(
+ CONF.compute_feature_enabled.vgpu_lspci_pattern, output))
diff --git a/tempest/config.py b/tempest/config.py
index 01e65f9..db1d787 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -651,6 +651,13 @@
cfg.BoolOpt('barbican_integration_enabled',
default=False,
help='Does the test environment support Barbican integration'),
+ cfg.StrOpt('vgpu_flavor_ref',
+ default=None,
+ help="Valid flavor to be used for vGPU tests."),
+ cfg.StrOpt('vgpu_lspci_pattern',
+ default="NVIDIA",
+ help="Pattern to search in lspci output to enaure VGPU is"
+ " present on host.")
]