forked from TrueCloudLab/frostfs-testlib
[#134] Add method uptime service
Signed-off-by: Dmitriy Zayakin <d.zayakin@yadro.com>
This commit is contained in:
parent
17c1a4f14b
commit
e65fc359fe
1 changed files with 11 additions and 0 deletions
|
@ -1,8 +1,10 @@
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from datetime import datetime, timezone
|
||||||
from typing import Optional, TypedDict, TypeVar
|
from typing import Optional, TypedDict, TypeVar
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
from dateutil import parser
|
||||||
|
|
||||||
from frostfs_testlib import reporter
|
from frostfs_testlib import reporter
|
||||||
from frostfs_testlib.hosting.config import ServiceConfig
|
from frostfs_testlib.hosting.config import ServiceConfig
|
||||||
|
@ -170,6 +172,15 @@ class NodeBase(HumanReadableABC):
|
||||||
def _get_service_config(self) -> ServiceConfig:
|
def _get_service_config(self) -> ServiceConfig:
|
||||||
return self.host.get_service_config(self.name)
|
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)
|
ServiceClass = TypeVar("ServiceClass", bound=NodeBase)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue