Add method uptime service #134

Merged
d.zayakin merged 1 commit from d.zayakin/frostfs-testlib:add-uptime-service into master 2023-12-04 07:07:32 +00:00

View file

@ -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)