added online timer for testing
This commit is contained in:
@@ -196,8 +196,8 @@ async def restart_miners_backend(ips: list):
|
|||||||
progress_bar_len += 1
|
progress_bar_len += 1
|
||||||
asyncio.create_task(update_prog_bar(progress_bar_len))
|
asyncio.create_task(update_prog_bar(progress_bar_len))
|
||||||
|
|
||||||
reboot_miners_generator = reboot_generator(all_miners)
|
restart_backend_gen = restart_backend_generator(all_miners)
|
||||||
async for _rebooter in reboot_miners_generator:
|
async for _rebooter in restart_backend_gen:
|
||||||
progress_bar_len += 1
|
progress_bar_len += 1
|
||||||
asyncio.create_task(update_prog_bar(progress_bar_len))
|
asyncio.create_task(update_prog_bar(progress_bar_len))
|
||||||
await update_ui_with_data("status", "")
|
await update_ui_with_data("status", "")
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ from ipaddress import ip_address
|
|||||||
import asyncio
|
import asyncio
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
|
import datetime
|
||||||
|
|
||||||
from network import ping_miner
|
from network import ping_miner
|
||||||
from miners.miner_factory import MinerFactory
|
from miners.miner_factory import MinerFactory
|
||||||
@@ -22,6 +23,7 @@ class TestbenchMiner:
|
|||||||
self.host = host
|
self.host = host
|
||||||
self.state = START
|
self.state = START
|
||||||
self.latest_version = None
|
self.latest_version = None
|
||||||
|
self.start_time = None
|
||||||
|
|
||||||
async def get_bos_version(self):
|
async def get_bos_version(self):
|
||||||
miner = await MinerFactory().get_miner(self.host)
|
miner = await MinerFactory().get_miner(self.host)
|
||||||
@@ -32,10 +34,20 @@ class TestbenchMiner:
|
|||||||
version = version_base[-2]
|
version = version_base[-2]
|
||||||
return version
|
return version
|
||||||
|
|
||||||
|
def get_online_time(self):
|
||||||
|
online_time = "0:00:00"
|
||||||
|
if self.start_time:
|
||||||
|
online_time = str(datetime.datetime.now() - self.start_time)
|
||||||
|
return online_time
|
||||||
|
|
||||||
async def add_to_output(self, message):
|
async def add_to_output(self, message):
|
||||||
await ConnectionManager().broadcast_json(
|
data = {
|
||||||
{"IP": str(self.host), "text": str(message).replace("\r", "") + "\n"}
|
"IP": str(self.host),
|
||||||
)
|
"text": str(message).replace("\r", "") + "\n",
|
||||||
|
"online": self.get_online_time(),
|
||||||
|
}
|
||||||
|
|
||||||
|
await ConnectionManager().broadcast_json(data)
|
||||||
return
|
return
|
||||||
|
|
||||||
async def remove_from_cache(self):
|
async def remove_from_cache(self):
|
||||||
@@ -48,8 +60,9 @@ class TestbenchMiner:
|
|||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
async def install_start(self):
|
async def install_start(self):
|
||||||
|
self.start_time = datetime.datetime.now()
|
||||||
await ConnectionManager().broadcast_json(
|
await ConnectionManager().broadcast_json(
|
||||||
{"IP": str(self.host), "Light": "hide"}
|
{"IP": str(self.host), "Light": "hide", "online": self.get_online_time()}
|
||||||
)
|
)
|
||||||
if not await ping_miner(self.host, 80):
|
if not await ping_miner(self.host, 80):
|
||||||
await self.add_to_output("Waiting for miner connection...")
|
await self.add_to_output("Waiting for miner connection...")
|
||||||
@@ -227,6 +240,7 @@ class TestbenchMiner:
|
|||||||
"Fans": fans_data,
|
"Fans": fans_data,
|
||||||
"HR": hr_data,
|
"HR": hr_data,
|
||||||
"Temps": temps_data,
|
"Temps": temps_data,
|
||||||
|
"online": self.get_online_time(),
|
||||||
}
|
}
|
||||||
|
|
||||||
# return stats
|
# return stats
|
||||||
@@ -252,6 +266,7 @@ class TestbenchMiner:
|
|||||||
self.latest_version = sorted(await get_local_versions(), reverse=True)[0]
|
self.latest_version = sorted(await get_local_versions(), reverse=True)[0]
|
||||||
while True:
|
while True:
|
||||||
if self.state == START:
|
if self.state == START:
|
||||||
|
self.start_time = None
|
||||||
await self.install_start()
|
await self.install_start()
|
||||||
if self.state == UNLOCK:
|
if self.state == UNLOCK:
|
||||||
await self.install_unlock()
|
await self.install_unlock()
|
||||||
|
|||||||
@@ -89,6 +89,20 @@ function lightMiner(ip, checkbox) {
|
|||||||
};
|
};
|
||||||
ws.onmessage = function(event) {
|
ws.onmessage = function(event) {
|
||||||
var data = JSON.parse(event.data)
|
var data = JSON.parse(event.data)
|
||||||
|
if (data.hasOwnProperty("online")) {
|
||||||
|
timer = document.getElementById(data["IP"] + "-timer")
|
||||||
|
if (data["online"] == "0:00:00") {
|
||||||
|
if (timer.className.contains("btn-success")) {
|
||||||
|
timer.className.remove("btn-success")
|
||||||
|
timer.className += ("btn-secondary")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (timer.className.contains("btn-secondary")) {
|
||||||
|
timer.className.remove("btn-secondary")
|
||||||
|
timer.className += ("btn-success")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
if (data.hasOwnProperty("miners")) {
|
if (data.hasOwnProperty("miners")) {
|
||||||
var container_all = document.getElementById('chart_container');
|
var container_all = document.getElementById('chart_container');
|
||||||
container_all.innerHTML = ""
|
container_all.innerHTML = ""
|
||||||
@@ -98,13 +112,27 @@ ws.onmessage = function(event) {
|
|||||||
column.className = "col border border-dark p-3"
|
column.className = "col border border-dark p-3"
|
||||||
column.id = miner["IP"]
|
column.id = miner["IP"]
|
||||||
|
|
||||||
|
// create button group
|
||||||
|
var button_group = document.createElement("div");
|
||||||
|
button_group.className = "btn-group w-100"
|
||||||
|
|
||||||
// create IP address header
|
// create IP address header
|
||||||
var header = document.createElement('button');
|
var header = document.createElement('button');
|
||||||
header.className = "text-center btn btn-primary w-100"
|
header.className = "text-center btn btn-primary"
|
||||||
header.onclick = function(){window.open("http://" + miner["IP"], '_blank');}
|
header.onclick = function(){window.open("http://" + miner["IP"], '_blank');}
|
||||||
header.innerHTML += miner["IP"]
|
header.innerHTML += miner["IP"]
|
||||||
|
|
||||||
column.append(header)
|
// create online timer
|
||||||
|
var timer = document.createElement('button');
|
||||||
|
timer.className = "text-center btn btn-secondary"
|
||||||
|
timer.disabled = true
|
||||||
|
timer.innerHTML = "0:00:00"
|
||||||
|
timer.id = miner["IP"] + "-timer"
|
||||||
|
|
||||||
|
button_group.append(header)
|
||||||
|
button_group.append(timer)
|
||||||
|
|
||||||
|
column.append(button_group)
|
||||||
|
|
||||||
// create install stdout
|
// create install stdout
|
||||||
var row_text = document.createElement('div');
|
var row_text = document.createElement('div');
|
||||||
|
|||||||
Reference in New Issue
Block a user