cfg-checker ceph bench module part 4
- benchmark code refactoring/cleaning
- using UTC timezone for scheduling
- 'tasks' mode first version
- updated agent poking response structure
Related-PROD: PROD-36669
Change-Id: I8bf9d9b4d54a41cc04f7765e17efb675028c6262
diff --git a/cfg_checker/agent/fio_runner.py b/cfg_checker/agent/fio_runner.py
index 50afeca..c8488af 100644
--- a/cfg_checker/agent/fio_runner.py
+++ b/cfg_checker/agent/fio_runner.py
@@ -6,7 +6,7 @@
from copy import deepcopy
-from datetime import datetime, timedelta
+from datetime import datetime, timezone
from platform import system, release, node
from threading import Thread
import threading
@@ -18,7 +18,7 @@
from cfg_checker.common.log import logger
-_datetime_fmt = "%m/%d/%Y, %H:%M:%S"
+_datetime_fmt = "%m/%d/%Y, %H:%M:%S%z"
fio_options_common = {
"name": "agent_run",
"filename": "/cephvol/testfile",
@@ -64,7 +64,7 @@
def get_time(timestamp=None):
if not timestamp:
- _t = datetime.now()
+ _t = datetime.now(timezone.utc)
else:
_t = datetime.fromtimestamp(timestamp)
return _t.strftime(_datetime_fmt)
@@ -85,7 +85,7 @@
def wait_until(end_datetime):
while True:
- diff = (end_datetime - datetime.now()).total_seconds()
+ diff = (end_datetime - datetime.now(timezone.utc)).total_seconds()
# In case end_datetime was in past to begin with
if diff < 0:
return
@@ -297,11 +297,12 @@
self.fiorun = ShellThread(_cmd, _q)
# Check if schedule is set
if self.scheduled_datetime:
+ _now = datetime.now(timezone.utc)
logger.debug(
"waiting for '{}', now is '{}', total of {} sec left".format(
self.scheduled_datetime.strftime(_datetime_fmt),
- datetime.now().strftime(_datetime_fmt),
- (self.scheduled_datetime - datetime.now()).total_seconds()
+ _now.strftime(_datetime_fmt),
+ (self.scheduled_datetime - _now).total_seconds()
)
)
wait_until(self.scheduled_datetime)
@@ -392,7 +393,8 @@
_scheduled = False
_diff = -1
if self.scheduled_datetime:
- _diff = (self.scheduled_datetime - datetime.now()).total_seconds()
+ _now = datetime.now(timezone.utc)
+ _diff = (self.scheduled_datetime - _now).total_seconds()
if _diff > 0:
_scheduled = True
_s = "running" if _running else "idle"
@@ -575,10 +577,11 @@
_s = self.fio.status()
if _s["status"] == "scheduled":
_t = self.fio.scheduled_datetime
- _n = datetime.now()
+ _n = datetime.now(timezone.utc)
_delta = (_t - _n).total_seconds()
print(
- "waiting for '{}'; now '{}'; {} sec left".format(
+ "{}: waiting for '{}'; now '{}'; {} sec left".format(
+ _s["status"],
_t.strftime(_datetime_fmt),
_n.strftime(_datetime_fmt),
_delta
@@ -609,7 +612,8 @@
_opts["readwrite"] = "read"
_opts["ramp_time"] = "1s"
_opts["runtime"] = "5s"
- _shell.do_singlerun(_opts)
+ _opts["scheduled_to"] = "11/13/2021, 23:03:30+0000"
+ _shell.do_scheduledrun(_opts)
_shell()
_times = _shell.get_resultlist()
print("# results:\n{}".format("\n".join(_times)))
@@ -623,9 +627,7 @@
_opts["readwrite"] = "read"
_opts["ramp_time"] = "1s"
_opts["runtime"] = "10s"
- _opts["scheduled_to"] = (datetime.now() + timedelta(seconds=12)).strftime(
- _datetime_fmt
- )
+ _opts["scheduled_to"] = "11/13/2021, 23:04:20+0000"
_shell.do_scheduledrun(_opts)
_shell()
_times = _shell.get_resultlist()