Fix last_process related bug in RPC.health

This commit is contained in:
ASU
2023-02-27 12:14:38 +02:00
parent 44b1005077
commit 1d5608d627
7 changed files with 22 additions and 15 deletions

View File

@@ -456,5 +456,5 @@ class SysInfo(BaseModel):
class Health(BaseModel):
last_process: datetime
last_process_ts: int
last_process: Optional[datetime]
last_process_ts: Optional[int]

View File

@@ -346,4 +346,4 @@ def sysinfo():
@router.get('/health', response_model=Health, tags=['info'])
def health(rpc: RPC = Depends(get_rpc)):
return rpc._health()
return rpc.health()

View File

@@ -89,7 +89,7 @@ class RPC:
# Bind _fiat_converter if needed
_fiat_converter: Optional[CryptoToFiatConverter] = None
def __init__(self, freqtrade) -> None:
def __init__(self, freqtrade: "FreqtradeBot") -> None:
"""
Initializes all enabled rpc modules
:param freqtrade: Instance of a freqtrade bot
@@ -1198,10 +1198,17 @@ class RPC:
"ram_pct": psutil.virtual_memory().percent
}
def _health(self) -> Dict[str, Union[str, int]]:
def health(self) -> Dict[str, Optional[Union[str, int]]]:
last_p = self._freqtrade.last_process
if last_p is None:
return {
"last_process": None,
"last_process_loc": None,
"last_process_ts": None,
}
return {
'last_process': str(last_p),
'last_process_loc': last_p.astimezone(tzlocal()).strftime(DATETIME_PRINT_FORMAT),
'last_process_ts': int(last_p.timestamp()),
"last_process": str(last_p),
"last_process_loc": last_p.astimezone(tzlocal()).strftime(DATETIME_PRINT_FORMAT),
"last_process_ts": int(last_p.timestamp()),
}

View File

@@ -1527,7 +1527,7 @@ class Telegram(RPCHandler):
Handler for /health
Shows the last process timestamp
"""
health = self._rpc._health()
health = self._rpc.health()
message = f"Last process: `{health['last_process_loc']}`"
self._send_msg(message)