Support WindRiver openstack in library

Issue: TEST-64
Change-Id: I87795d6d03a1a60df689e3d16486129dc32cf69b
Signed-off-by: Jerry Flood <jf9860@att.com>
diff --git a/eteutils/OpenstackLibrary.py b/eteutils/OpenstackLibrary.py
index 58324d9..99aba87 100644
--- a/eteutils/OpenstackLibrary.py
+++ b/eteutils/OpenstackLibrary.py
@@ -4,10 +4,10 @@
 
 class OpenstackLibrary:
     """OpenstackLibrary manages the connection state and service catalog of an openstack instance."""
-    
+
     ROBOT_LIBRARY_SCOPE = 'Global'
-    
-    
+
+
     def __init__(self):
         self._cache = robot.utils.ConnectionCache('No connections created')
         self.builtin = BuiltIn()
@@ -16,7 +16,7 @@
         """Save Openstack Auth takes in an openstack auth response and saves it to allow easy retrival of token and service catalog"""
         self.builtin.log('Creating connection: %s' % alias, 'DEBUG')
         self._cache.register(response, alias=alias)
-        
+
     def get_openstack_token(self, alias):
         """Get Openstack auth token from the current alias"""
         response = self._cache.switch(alias)
@@ -25,7 +25,7 @@
         else:
             jsonResponse = response;
         return  jsonResponse['access']['token']['id']
-    
+
     def get_openstack_catalog(self, alias):
         """Get Openstack service catalog from the current alias"""
         response = self._cache.switch(alias)
@@ -34,7 +34,7 @@
         else:
             jsonResponse = response;
         return  jsonResponse['access']['serviceCatalog']
-    
+
     def get_current_openstack_tenant(self, alias):
         """Get Openstack tenant from the current alias"""
         response = self._cache.switch(alias)
@@ -43,12 +43,12 @@
         else:
             jsonResponse = response;
         return  jsonResponse['access']['token']['tenant']
-    
+
     def get_current_openstack_tenant_id(self, alias):
         """Get Openstack tenant id from the current alias"""
         tenant = self.get_current_openstack_tenant(alias);
         return  tenant['id']
-    
+
     def get_openstack_regions(self, alias):
         """Get all Openstack regions from the current alias"""
         response = self._cache.switch(alias)
@@ -64,7 +64,7 @@
                     if endpoint['region'] not in regions:
                         regions.append(endpoint['region'])
         return regions;
-    
+
     def get_openstack_service_url(self, alias, servicetype, region =  None, tenant_id = None):
         """Get Openstack service catalog from the current alias"""
         response = self._cache.switch(alias)
@@ -79,17 +79,20 @@
                 # filter out non matching regions if provided
                 listOfEndpoints[:] = [x for x in listOfEndpoints if self.__determine_match(x['region'], region)];
                 # filter out non matching tenants if provided
-                listOfEndpoints[:] = [y for y in listOfEndpoints if self.__determine_match(y['tenantId'], tenant_id)];
+                # Only provide tenant id when authorizing without qualifying with tenant id
+                # WindRiver does not return the tenantId on the endpoint in this case.
+                if tenant_id is not None:
+                	listOfEndpoints[:] = [y for y in listOfEndpoints if self.__determine_match(y['tenantId'], tenant_id)];
                 if len(listOfEndpoints) > 0:
                     endPoint = listOfEndpoints[0]['publicURL'];
         if endPoint == None:
             self.builtin.should_not_be_empty("", "Service Endpoint Url should not be empty")
         return endPoint;
-        
+
     def __determine_match(self, listItem, item):
         if item is None:
             return True;
         elif listItem == item:
             return True;
         else:
-            return False;    
\ No newline at end of file
+            return False;
\ No newline at end of file