Fixed upgrade_firmware for auradine miner
This commit is contained in:
@@ -16,9 +16,6 @@
|
|||||||
import logging
|
import logging
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
import aiofiles
|
|
||||||
import base64
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from pyasic.config import MinerConfig
|
from pyasic.config import MinerConfig
|
||||||
from pyasic.data import AlgoHashRate, Fan, HashBoard, HashUnit
|
from pyasic.data import AlgoHashRate, Fan, HashBoard, HashUnit
|
||||||
@@ -390,51 +387,26 @@ class Auradine(StockFirmware):
|
|||||||
except LookupError:
|
except LookupError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def upgrade_firmware(self, file: Path):
|
async def upgrade_firmware(self, url: str = None, version: str = "latest") -> dict:
|
||||||
"""
|
"""
|
||||||
Upgrade the firmware of the Auradine miner device.
|
Upgrade the firmware of the Auradine miner.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
file (Path): The local file path of the firmware to be uploaded.
|
url (str, optional): The URL to download the firmware from.
|
||||||
|
version (str, optional): The version of the firmware to upgrade to, defaults to 'latest'.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
str: Confirmation message after upgrading the firmware.
|
dict: A dictionary indicating the result of the firmware upgrade.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
logging.info("Starting firmware upgrade process for Auradine miner.")
|
logging.info("Starting firmware upgrade process for Auradine miner.")
|
||||||
|
|
||||||
if not file:
|
if url is not None:
|
||||||
raise ValueError("File location must be provided for firmware upgrade.")
|
return await self.web.firmware_upgrade(url=url)
|
||||||
|
return await self.web.firmware_upgrade(version=version)
|
||||||
# Read the firmware file contents
|
|
||||||
async with aiofiles.open(file, "rb") as f:
|
|
||||||
upgrade_contents = await f.read()
|
|
||||||
|
|
||||||
# Encode the firmware contents in base64
|
|
||||||
encoded_contents = base64.b64encode(upgrade_contents).decode("utf-8")
|
|
||||||
|
|
||||||
# Upload the firmware file to the Auradine miner device
|
|
||||||
logging.info(f"Uploading firmware file from {file} to the device.")
|
|
||||||
await self.ssh.send_command(
|
|
||||||
f"echo {encoded_contents} | base64 -d > /tmp/firmware.tar && sysupgrade /tmp/firmware.tar"
|
|
||||||
)
|
|
||||||
|
|
||||||
logging.info("Firmware upgrade process completed successfully for Auradine miner.")
|
|
||||||
return "Firmware upgrade completed successfully."
|
|
||||||
except FileNotFoundError as e:
|
|
||||||
logging.error(f"File not found during the firmware upgrade process: {e}")
|
|
||||||
raise
|
|
||||||
except ValueError as e:
|
|
||||||
logging.error(
|
|
||||||
f"Validation error occurred during the firmware upgrade process: {e}"
|
|
||||||
)
|
|
||||||
raise
|
|
||||||
except OSError as e:
|
|
||||||
logging.error(f"OS error occurred during the firmware upgrade process: {e}")
|
|
||||||
raise
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(
|
logging.error(
|
||||||
f"An unexpected error occurred during the firmware upgrade process: {e}",
|
f"An unexpected error occurred during the firmware upgrade process: {e}",
|
||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
raise
|
raise
|
||||||
Reference in New Issue
Block a user