From e65fc359fe3c3e1019b6fb98610cd612e93fc26f Mon Sep 17 00:00:00 2001 From: Dmitriy Zayakin Date: Fri, 1 Dec 2023 14:15:12 +0300 Subject: [PATCH] [#134] Add method uptime service Signed-off-by: Dmitriy Zayakin --- src/frostfs_testlib/storage/dataclasses/node_base.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/frostfs_testlib/storage/dataclasses/node_base.py b/src/frostfs_testlib/storage/dataclasses/node_base.py index ace0214..4fc7dea 100644 --- a/src/frostfs_testlib/storage/dataclasses/node_base.py +++ b/src/frostfs_testlib/storage/dataclasses/node_base.py @@ -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)