Add more public url tests for UIs

Related-PROD: PROD-23746

Change-Id: Ie680d0d934cf36f4147b9d9a079f53469d26eccc
diff --git a/test_set/cvp-sanity/fixtures/base.py b/test_set/cvp-sanity/fixtures/base.py
index 60b8f28..0b83260 100644
--- a/test_set/cvp-sanity/fixtures/base.py
+++ b/test_set/cvp-sanity/fixtures/base.py
@@ -16,6 +16,50 @@
 
 
 @pytest.fixture(scope='session')
+def ctl_nodes_pillar(local_salt_client):
+    '''Return controller node pillars (OS or k8s ctls).
+       This will help to identify nodes to use for UI curl tests.
+       If no platform is installed (no OS or k8s) we need to skip
+       the test (product team use case).
+    '''
+    salt_output = local_salt_client.cmd(
+        'keystone:server',
+        'test.ping',
+        expr_form='pillar')
+    if salt_output:
+        return "keystone:server"
+    else:
+        salt_output = local_salt_client.cmd(
+            'etcd:server',
+            'test.ping',
+            expr_form='pillar')
+        return "etcd:server" if salt_output else pytest.skip("Neither \
+            Openstack nor k8s is found. Skipping test")
+
+
+@pytest.fixture(scope='session')
+def check_openstack(local_salt_client):
+    salt_output = local_salt_client.cmd(
+        'keystone:server',
+        'test.ping',
+        expr_form='pillar')
+    if not salt_output:
+        pytest.skip("Openstack not found or keystone:server pillar \
+          are not found on this environment.")
+
+
+@pytest.fixture(scope='session')
+def check_drivetrain(local_salt_client):
+    salt_output = local_salt_client.cmd(
+        'I@jenkins:client and not I@salt:master',
+        'test.ping',
+        expr_form='compound')
+    if not salt_output:
+        pytest.skip("Drivetrain service or jenkins:client pillar \
+          are not found on this environment.")
+
+
+@pytest.fixture(scope='session')
 def check_prometheus(local_salt_client):
     salt_output = local_salt_client.cmd(
         'prometheus:server',