feature: add braiinsOS+ pool configuration.
This commit is contained in:
@@ -21,6 +21,13 @@ from dataclasses import dataclass, field
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from pyasic.config.base import MinerConfigValue
|
from pyasic.config.base import MinerConfigValue
|
||||||
|
from pyasic.web.braiins_os.proto.braiins.bos.v1 import (
|
||||||
|
PoolConfiguration,
|
||||||
|
PoolGroupConfiguration,
|
||||||
|
Quota,
|
||||||
|
SaveAction,
|
||||||
|
SetPoolGroupsRequest,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -134,6 +141,11 @@ class Pool(MinerConfigValue):
|
|||||||
"stratumPassword": self.password,
|
"stratumPassword": self.password,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def as_boser(self) -> PoolConfiguration:
|
||||||
|
return PoolConfiguration(
|
||||||
|
url=self.url, user=self.user, password=self.password, enabled=True
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, dict_conf: dict | None) -> "Pool":
|
def from_dict(cls, dict_conf: dict | None) -> "Pool":
|
||||||
return cls(
|
return cls(
|
||||||
@@ -306,6 +318,13 @@ class PoolGroup(MinerConfigValue):
|
|||||||
def as_bitaxe(self, user_suffix: str = None) -> dict:
|
def as_bitaxe(self, user_suffix: str = None) -> dict:
|
||||||
return self.pools[0].as_bitaxe(user_suffix=user_suffix)
|
return self.pools[0].as_bitaxe(user_suffix=user_suffix)
|
||||||
|
|
||||||
|
def as_boser(self, user_suffix: str = None) -> PoolGroupConfiguration:
|
||||||
|
return PoolGroupConfiguration(
|
||||||
|
name=self.name,
|
||||||
|
quota=Quota(value=self.quota),
|
||||||
|
pools=[p.as_boser() for p in self.pools],
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, dict_conf: dict | None) -> "PoolGroup":
|
def from_dict(cls, dict_conf: dict | None) -> "PoolGroup":
|
||||||
cls_conf = {}
|
cls_conf = {}
|
||||||
@@ -446,7 +465,12 @@ class PoolConfig(MinerConfigValue):
|
|||||||
return {"group": [PoolGroup().as_bosminer()]}
|
return {"group": [PoolGroup().as_bosminer()]}
|
||||||
|
|
||||||
def as_boser(self, user_suffix: str = None) -> dict:
|
def as_boser(self, user_suffix: str = None) -> dict:
|
||||||
return {}
|
return {
|
||||||
|
"set_pool_groups": SetPoolGroupsRequest(
|
||||||
|
save_action=SaveAction.SAVE_ACTION_SAVE_AND_APPLY,
|
||||||
|
pool_groups=[g.as_boser(user_suffix=user_suffix) for g in self.groups],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
def as_auradine(self, user_suffix: str = None) -> dict:
|
def as_auradine(self, user_suffix: str = None) -> dict:
|
||||||
if len(self.groups) > 0:
|
if len(self.groups) > 0:
|
||||||
|
|||||||
@@ -414,15 +414,6 @@ class BOSerWebAPI(BaseWebAPI):
|
|||||||
"get_pool_groups", message=GetPoolGroupsRequest(), privileged=True
|
"get_pool_groups", message=GetPoolGroupsRequest(), privileged=True
|
||||||
)
|
)
|
||||||
|
|
||||||
async def create_pool_group(self) -> dict:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
async def update_pool_group(self) -> dict:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
async def remove_pool_group(self) -> dict:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
async def get_miner_configuration(self) -> dict:
|
async def get_miner_configuration(self) -> dict:
|
||||||
return await self.send_command(
|
return await self.send_command(
|
||||||
"get_miner_configuration",
|
"get_miner_configuration",
|
||||||
@@ -490,3 +481,15 @@ class BOSerWebAPI(BaseWebAPI):
|
|||||||
),
|
),
|
||||||
privileged=True,
|
privileged=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def set_pool_groups(
|
||||||
|
self,
|
||||||
|
pool_groups: List[PoolGroupConfiguration],
|
||||||
|
save_action: SaveAction = SaveAction.SAVE_ACTION_SAVE_AND_APPLY,
|
||||||
|
) -> dict:
|
||||||
|
return await self.send_command(
|
||||||
|
"set_pool_groups",
|
||||||
|
message=SetPoolGroupsRequest(
|
||||||
|
save_action=save_action, pool_groups=pool_groups
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user