Fix list and enumerate request return and iteration logic
Change-Id: I9c00c54c2e80a1dc75adf042a4e5f7c4dfdb4a10
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/lib/bmc_redfish.py b/lib/bmc_redfish.py
index 73fbf93..ae31d40 100644
--- a/lib/bmc_redfish.py
+++ b/lib/bmc_redfish.py
@@ -7,6 +7,7 @@
import redfish
import json
+from robot.libraries.BuiltIn import BuiltIn
class HTTPSBadRequestError(Exception):
@@ -140,12 +141,15 @@
resource_path URI resource relative path (e.g. "Systems/1").
"""
- self._rest_response_ = self._robj_.get('/redfish/v1/' + resource_path)
- if self._rest_response_.status != 200:
- return self._rest_response_
-
global resource_list
resource_list = []
+
+ self._rest_response_ = self._robj_.get('/redfish/v1/' + resource_path)
+
+ # Return empty list.
+ if self._rest_response_.status != 200:
+ return resource_list
+
self.walk_nested_dict(self._rest_response_.dict)
if not resource_list:
@@ -168,12 +172,15 @@
resource_path URI resource relative path (e.g. "Systems/1").
"""
- self._rest_response_ = self.list_request(resource_path)
- if self._rest_response_.status != 200:
- return self._rest_response_
+ url_list = self.list_request(resource_path)
resource_dict = {}
- for resource in json.loads(self._rest_response_):
+
+ # Return empty dict.
+ if not url_list:
+ return resource_dict
+
+ for resource in url_list:
self._rest_response_ = self._robj_.get(resource)
if self._rest_response_.status != 200:
continue