bug: add try except statements to get_data to fix bugs with getting data from graphql.
This commit is contained in:
@@ -562,57 +562,75 @@ class BOSMiner(BaseMiner):
|
|||||||
except TypeError or KeyError or ValueError:
|
except TypeError or KeyError or ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
boards = query_data["bosminer"]["info"]["workSolver"]["childSolvers"]
|
boards = None
|
||||||
offset = 6 if int(boards[0]["name"]) in [6, 7, 8] else int(boards[0]["name"])
|
if query_data.get("bosminer"):
|
||||||
for hb in boards:
|
if query_data["bosminer"].get("info"):
|
||||||
_id = int(hb["name"]) - offset
|
if query_data["bosminer"]["info"].get("workSolver"):
|
||||||
|
boards = query_data["bosminer"]["info"]["workSolver"].get("childSolvers")
|
||||||
|
if boards:
|
||||||
|
offset = 6 if int(boards[0]["name"]) in [6, 7, 8] else int(boards[0]["name"])
|
||||||
|
for hb in boards:
|
||||||
|
_id = int(hb["name"]) - offset
|
||||||
|
|
||||||
board = data.hashboards[_id]
|
board = data.hashboards[_id]
|
||||||
board.hashrate = round(hb["realHashrate"]["mhs1M"] / 1000000, 2)
|
board.hashrate = round(hb["realHashrate"]["mhs1M"] / 1000000, 2)
|
||||||
temps = hb["temperatures"]
|
temps = hb["temperatures"]
|
||||||
if len(temps) > 0:
|
if len(temps) > 0:
|
||||||
board.temp = round(hb["temperatures"][0]["degreesC"])
|
board.temp = round(hb["temperatures"][0]["degreesC"])
|
||||||
if len(temps) > 1:
|
if len(temps) > 1:
|
||||||
board.chip_temp = round(hb["temperatures"][1]["degreesC"])
|
board.chip_temp = round(hb["temperatures"][1]["degreesC"])
|
||||||
details = hb.get("hwDetails")
|
details = hb.get("hwDetails")
|
||||||
if details:
|
if details:
|
||||||
if chips := details["chips"]:
|
if chips := details["chips"]:
|
||||||
board.chips = chips
|
board.chips = chips
|
||||||
board.missing = False
|
board.missing = False
|
||||||
|
|
||||||
tuner = hb.get("tuner")
|
tuner = hb.get("tuner")
|
||||||
if tuner:
|
if tuner:
|
||||||
if msg := tuner.get("statusMessages"):
|
if msg := tuner.get("statusMessages"):
|
||||||
if len(msg) > 0:
|
if len(msg) > 0:
|
||||||
if hb["tuner"]["statusMessages"][0] not in [
|
if hb["tuner"]["statusMessages"][0] not in [
|
||||||
"Stable",
|
"Stable",
|
||||||
"Testing performance profile",
|
"Testing performance profile",
|
||||||
"Tuning individual chips"
|
"Tuning individual chips"
|
||||||
]:
|
]:
|
||||||
data.errors.append(
|
data.errors.append(
|
||||||
BraiinsOSError(f"Slot {_id} {hb['tuner']['statusMessages'][0]}")
|
BraiinsOSError(f"Slot {_id} {hb['tuner']['statusMessages'][0]}")
|
||||||
)
|
)
|
||||||
|
try:
|
||||||
|
data.wattage = query_data["bosminer"]["info"]["workSolver"]["power"]["approxConsumptionW"]
|
||||||
|
except TypeError or KeyError or ValueError:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
data.wattage_limit = query_data["bosminer"]["info"]["workSolver"]["power"]["limitW"]
|
||||||
|
except TypeError or KeyError or ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
data.wattage = query_data["bosminer"]["info"]["workSolver"]["power"]["approxConsumptionW"]
|
|
||||||
data.wattage_limit = query_data["bosminer"]["info"]["workSolver"]["power"]["limitW"]
|
|
||||||
|
|
||||||
for n in range(self.fan_count):
|
for n in range(self.fan_count):
|
||||||
setattr(data, f"fan_{n + 1}", query_data["bosminer"]["info"]["fans"][n]["rpm"])
|
try:
|
||||||
|
setattr(data, f"fan_{n + 1}", query_data["bosminer"]["info"]["fans"][n]["rpm"])
|
||||||
|
except TypeError or KeyError or ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
groups = query_data["bosminer"]["config"]["groups"]
|
groups = None
|
||||||
if len(groups) == 1:
|
if query_data.get("bosminer"):
|
||||||
data.pool_1_user = groups[0]["pools"][0]["user"]
|
if query_data["bosminer"].get("config"):
|
||||||
data.pool_1_url = groups[0]["pools"][0]["url"]
|
groups = query_data["bosminer"]["config"].get("groups")
|
||||||
data.pool_2_user = groups[0]["pools"][1]["user"]
|
if groups:
|
||||||
data.pool_2_url = groups[0]["pools"][1]["url"]
|
if len(groups) == 1:
|
||||||
data.quota = 0
|
data.pool_1_user = groups[0]["pools"][0]["user"]
|
||||||
else:
|
data.pool_1_url = groups[0]["pools"][0]["url"]
|
||||||
data.pool_1_user = groups[0]["pools"][0]["user"]
|
data.pool_2_user = groups[0]["pools"][1]["user"]
|
||||||
data.pool_1_url = groups[0]["pools"][0]["url"]
|
data.pool_2_url = groups[0]["pools"][1]["url"]
|
||||||
data.pool_2_user = groups[1]["pools"][0]["user"]
|
data.quota = 0
|
||||||
data.pool_2_url = groups[1]["pools"][0]["url"]
|
else:
|
||||||
if groups[0]["strategy"].get("quota"):
|
data.pool_1_user = groups[0]["pools"][0]["user"]
|
||||||
data.quota = groups[0]["strategy"]["quota"] + "/" + groups[1]["strategy"]["quota"]
|
data.pool_1_url = groups[0]["pools"][0]["url"]
|
||||||
|
data.pool_2_user = groups[1]["pools"][0]["user"]
|
||||||
|
data.pool_2_url = groups[1]["pools"][0]["url"]
|
||||||
|
if groups[0]["strategy"].get("quota"):
|
||||||
|
data.quota = groups[0]["strategy"]["quota"] + "/" + groups[1]["strategy"]["quota"]
|
||||||
|
|
||||||
data.fault_light = await self.check_light()
|
data.fault_light = await self.check_light()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user