Merge pull request #162 from Ytemiloluwa/BOser

feat: Add _get_pools method to BOSer backend class.
This commit is contained in:
Brett Rowan
2024-07-30 15:32:02 -06:00
committed by GitHub

View File

@@ -721,6 +721,10 @@ BOSER_DATA_LOC = DataLocations(
"_get_uptime", "_get_uptime",
[RPCAPICommand("rpc_summary", "summary")], [RPCAPICommand("rpc_summary", "summary")],
), ),
str(DataOptions.POOLS): DataFunction(
"_get_pools",
[WebAPICommand("grpc_pool_groups", "get_pool_groups")]
)
} }
) )
@@ -1064,3 +1068,27 @@ class BOSer(BraiinsOSFirmware):
return int(rpc_summary["SUMMARY"][0]["Elapsed"]) return int(rpc_summary["SUMMARY"][0]["Elapsed"])
except LookupError: except LookupError:
pass pass
async def _get_pools(self, grpc_pool_groups: dict = None) -> List[PoolMetrics]:
if grpc_pool_groups is None:
try:
grpc_pool_groups = await self.web.get_pool_groups()
except APIError:
return []
pools_data = []
for group in grpc_pool_groups["poolGroups"]:
for idx, pool_info in enumerate(group["pools"]):
pool_data = PoolMetrics(
url=pool_info["url"],
user=pool_info["user"],
index=idx,
accepted=pool_info["stats"]["acceptedShares"],
rejected=pool_info["stats"]["rejectedShares"],
get_failures=pool_info["stats"]["stale_shares"],
remote_failures=0,
active=pool_info["active"],
alive=pool_info["alive"]
)
pools_data.append(pool_data)
return pools_data