diff --git a/.gitignore b/.gitignore
index 48e10d7..83d53ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -145,3 +145,10 @@
 #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
 .idea/
 .DS_Store
+
+# SPT scecific
+*.html
+*.csv
+*.tgz
+*openrc
+*keystonerc*
diff --git a/fixtures/base.py b/fixtures/base.py
index ec422a3..83d0be6 100644
--- a/fixtures/base.py
+++ b/fixtures/base.py
@@ -38,6 +38,7 @@
         endpoint_type=os.environ["OS_ENDPOINT_TYPE"],
         cert=False,
         domain=os.environ['OS_PROJECT_DOMAIN_NAME'],
+        interface=os.environ["OS_ENDPOINT_TYPE"],
     )
 
 
@@ -136,6 +137,8 @@
         auth_url=os.environ['OS_AUTH_URL'],
         cert=False,
         domain=os.environ['OS_PROJECT_DOMAIN_NAME'],
+        endpoint_type=os.environ['OS_ENDPOINT_TYPE'],
+        interface=os.environ['OS_ENDPOINT_TYPE']
     )
 
 
diff --git a/requirements.txt b/requirements.txt
index e3ebea6..ce79ee5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,6 @@
 jinja2 # BSD License (BSD-3-Clause)
 kubernetes==26.1.*
+numpy==1.24.2
 pandas # BSD License (BSD-3-Clause)
 paramiko==2.7.2 # LGPLv2.1+
 pytest==7.4.4 # MIT
diff --git a/utils/__init__.py b/utils/__init__.py
index 155c03f..6d3f948 100644
--- a/utils/__init__.py
+++ b/utils/__init__.py
@@ -37,7 +37,10 @@
             project_name=os.environ['OS_PROJECT_NAME'],
             auth_url=os.environ['OS_AUTH_URL'],
             cert=False,
-            domain=os.environ['OS_PROJECT_DOMAIN_NAME']
+            domain=os.environ['OS_PROJECT_DOMAIN_NAME'],
+            endpoint_type=os.environ["OS_ENDPOINT_TYPE"],
+            interface=os.environ["OS_ENDPOINT_TYPE"],
+
         )
         os_actions = os_client.OSCliActions(openstack_clients)
         nova_computes = os_actions.list_nova_computes()
diff --git a/utils/os_client.py b/utils/os_client.py
index 7febc30..d00e662 100644
--- a/utils/os_client.py
+++ b/utils/os_client.py
@@ -34,6 +34,7 @@
 
     def __init__(self, username=None, password=None,
                  project_name=None, auth_url=None, endpoint_type="internalURL",
+                 interface=INTERFACE,
                  cert=False, domain="Default", **kwargs):
         self.traceback = ""
 
@@ -51,6 +52,7 @@
         self.endpoint_type = endpoint_type
         self.cert = cert
         self.domain = domain
+        self.interface = interface
         self.kwargs = kwargs
 
         # Lazy clients
@@ -101,7 +103,7 @@
     @classmethod
     def get_auth_client(cls, username=None, password=None,
                         project_name=None, auth_url=None, cert=None,
-                        domain='Default', **kwargs):
+                        domain='Default', os_interface=None, **kwargs):
         session = cls._get_auth_session(
             username=username,
             password=password,
@@ -109,8 +111,11 @@
             auth_url=auth_url,
             cert=cert,
             domain=domain)
+        endpoint_filter = {"interface": os_interface}
         keystone = keystone_client.Client(version=cls.KEYSTONECLIENT_VERSION,
-                                          session=session, **kwargs)
+                                          session=session, **kwargs,
+                                          interface=os_interface,
+                                          endpoint_filter=endpoint_filter)
         keystone.management_url = auth_url
         return keystone
 
@@ -172,7 +177,8 @@
         if self._auth is None:
             self._auth = self.get_auth_client(
                 self.username, self.password, self.project_name, self.auth_url,
-                self.cert, self.domain, endpoint_type=self.endpoint_type
+                self.cert, self.domain, endpoint_type=self.endpoint_type,
+                os_interface=self.interface
             )
         return self._auth
 
