Add method uptime service #134
1 changed files with 11 additions and 0 deletions
|
@ -1,8 +1,10 @@
|
|||
from abc import abstractmethod
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime, timezone
|
||||
from typing import Optional, TypedDict, TypeVar
|
||||
|
||||
import yaml
|
||||
from dateutil import parser
|
||||
|
||||
from frostfs_testlib import reporter
|
||||
from frostfs_testlib.hosting.config import ServiceConfig
|
||||
|
@ -170,6 +172,15 @@ class NodeBase(HumanReadableABC):
|
|||
def _get_service_config(self) -> ServiceConfig:
|
||||
return self.host.get_service_config(self.name)
|
||||
|
||||
def get_service_uptime(self, service: str) -> datetime:
|
||||
result = self.host.get_shell().exec(
|
||||
f"systemctl show {service} --property ActiveEnterTimestamp | cut -d '=' -f 2"
|
||||
)
|
||||
start_time = parser.parse(result.stdout.strip())
|
||||
current_time = datetime.now(tz=timezone.utc)
|
||||
active_time = current_time - start_time
|
||||
return active_time
|
||||
|
||||
|
||||
ServiceClass = TypeVar("ServiceClass", bound=NodeBase)
|
||||
|
||||
|
|
Loading…
Reference in a new issue