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

Method get_members_data

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

Source from the content-addressed store, hash-verified

185 return members
186
187 def get_members_data(self) -> Dict[str, Any]:
188 result: Dict[str, Any] = {}
189 self.log.debug(
190 f"get_members_data called on {self.url}, has_members={self.has_members}"
191 )
192
193 if self.has_members:
194 self.log.debug(
195 f'Endpoint {self.url} has Members array: {self.data.get("Members", [])}'
196 )
197 members_endpoints = self.get_members_endpoints()
198
199 if not members_endpoints:
200 self.log.warning(
201 f"Endpoint {self.url} has Members array but no valid members after filtering. "
202 f"Using endpoint itself as singleton resource."
203 )
204 if self.data:
205 name = self.get_name(self.url)
206 result[name] = self.data
207 else:
208 for member, endpoint_url in members_endpoints.items():
209 self.log.debug(
210 f"Fetching data for member: {member} at {endpoint_url}"
211 )
212 result[member] = self.query(endpoint_url)
213 else:
214 self.log.debug(
215 f"Endpoint {self.url} has no Members array, returning own data"
216 )
217 if self.data:
218 name = self.get_name(self.url)
219 result[name] = self.data
220 else:
221 self.log.warning(f"Endpoint {self.url} has no members and empty data")
222
223 return result
224
225 @property
226 def has_members(self) -> bool:

Callers 4

_update_systemMethod · 0.80
_update_storageMethod · 0.80
_update_snMethod · 0.80
get_component_dataFunction · 0.80

Calls 7

get_members_endpointsMethod · 0.95
get_nameMethod · 0.95
queryMethod · 0.95
debugMethod · 0.45
getMethod · 0.45
warningMethod · 0.45
itemsMethod · 0.45

Tested by

no test coverage detected