xk6-frostfs/scenarios/preset/helpers/cmd.py
Andrey Berezin bf884936a7 [#91] Improve logging for preset
Signed-off-by: Andrey Berezin <a.berezin@yadro.com>
2023-08-16 08:25:03 +00:00

44 lines
1.1 KiB
Python

import os
import shlex
import sys
from datetime import datetime
from subprocess import check_output, CalledProcessError, STDOUT
def log(message, endpoint):
time = datetime.utcnow()
print(f"{time} at {endpoint}: {message}")
def execute_cmd(cmd_line):
cmd_args = shlex.split(cmd_line)
try:
output = check_output(cmd_args, stderr=STDOUT).decode()
success = True
except CalledProcessError as e:
output = e.output.decode()
success = False
return output, success
def random_payload(file, size):
file.write(os.urandom(1024 * int(size)))
file.flush()
class ProgressBar:
@staticmethod
def start():
sys.stdout.write('\r\n\r\n')
@staticmethod
def print(current, goal):
finish_percent = current / goal
sys.stdout.write('\r')
sys.stdout.write(f" > Progress: [{'=' * int(30 * finish_percent)}{' ' * (29 - int(30 * finish_percent))}>]"
f" {current}/{goal}")
sys.stdout.flush()
@staticmethod
def end():
sys.stdout.write('\r\n\r\n')