MCPcopy Create free account
hub / github.com/ceph/ceph / get_members_endpoints

Method get_members_endpoints

src/ceph-node-proxy/ceph_node_proxy/redfish.py:149–185  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

147 return endpoint.split("/")[-1]
148
149 def get_members_endpoints(self) -> Dict[str, str]:
150 members: Dict[str, str] = {}
151 self.log.debug(
152 f"get_members_endpoints called on {self.url}, has_members={self.has_members}"
153 )
154
155 if self.has_members:
156 url_parts = self.url.split("/redfish/v1/")
157 if len(url_parts) > 1:
158 base_path = "/redfish/v1/" + url_parts[1].split("/")[0]
159 else:
160 base_path = None
161
162 for member in self.data["Members"]:
163 name = self.get_name(member["@odata.id"])
164 endpoint_url = member["@odata.id"]
165 self.log.debug(f"Found member: {name} -> {endpoint_url}")
166
167 if base_path and not endpoint_url.startswith(base_path):
168 self.log.warning(
169 f"Member endpoint {endpoint_url} does not match base path {base_path} "
170 f"from {self.url}. Skipping this member."
171 )
172 continue
173
174 members[name] = endpoint_url
175 else:
176 if self.data:
177 name = self.get_name(self.url)
178 members[name] = self.url
179 self.log.warning(
180 f"No Members array, using endpoint itself: {name} -> {self.url}"
181 )
182 else:
183 self.log.debug(f"Endpoint {self.url} has no data and no Members array")
184
185 return members
186
187 def get_members_data(self) -> Dict[str, Any]:
188 result: Dict[str, Any] = {}

Callers 3

get_members_dataMethod · 0.95
get_chassis_ledMethod · 0.80
set_chassis_ledMethod · 0.80

Calls 4

get_nameMethod · 0.95
debugMethod · 0.45
splitMethod · 0.45
warningMethod · 0.45

Tested by

no test coverage detected