79 lines
2.8 KiB
Python
79 lines
2.8 KiB
Python
import random
|
|
import subprocess
|
|
import os
|
|
import sys
|
|
import argparse
|
|
|
|
|
|
def write_numbers_to_file(a, b, c):
|
|
with open(os.path.join(output_dir, "numbers.txt"), "w+") as f:
|
|
srv_list = random.sample(range(a, b), c)
|
|
for count, value in enumerate(srv_list):
|
|
f.write(str(value) + '\n')
|
|
|
|
|
|
def starting_osd():
|
|
with open(os.path.join(output_dir, "numbers.txt"), "r") as f:
|
|
for line in f:
|
|
# print(f'systemctl start ceph-{ceph_fsid}@osd.{line.strip()}.service')
|
|
p = subprocess.run(f'systemctl start ceph-{args.fsid}@osd.{line}', shell=True, capture_output=True)
|
|
if p.stderr.decode():
|
|
print(p.stderr.decode().strip())
|
|
else:
|
|
print(f'systemctl start ceph-{args.fsid}@osd.{line.rstrip()}.service started')
|
|
|
|
|
|
def stopping_osd():
|
|
with open(os.path.join(output_dir, "numbers.txt"), "r") as f:
|
|
for line in f:
|
|
# print(f'systemctl stop ceph-{ceph_fsid}@osd.{line.strip()}.service')
|
|
p = subprocess.run(f'systemctl stop ceph-{args.fsid}@osd.{line}', shell=True, capture_output=True)
|
|
if p.stderr.decode():
|
|
print(p.stderr.decode().strip())
|
|
else:
|
|
print(f'systemctl stop ceph-{args.fsid}@osd.{line.rstrip()}.service stopped')
|
|
|
|
|
|
def show_file():
|
|
with open(os.path.join(output_dir, "numbers.txt"), "r") as f:
|
|
for line in f:
|
|
print(f'systemctl stop|start ceph-{args.fsid}@osd.{line.strip()}')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# ceph_fsid = "7461bfe8-dc87-11ee-898a-7b25c28deba6"
|
|
output_dir = os.getcwd()
|
|
|
|
parser = argparse.ArgumentParser(description="Randomly start|stop OSDs")
|
|
parser.add_argument('--show', action='store_true', help="Just show the commands the program prepared to run up")
|
|
parser.add_argument('--fsid', type=str, default='kek', help='FSID of a cluster', required=True)
|
|
args = parser.parse_args()
|
|
if args.show:
|
|
show_file()
|
|
sys.exit()
|
|
|
|
|
|
inp = input("Create random numbers of OSD?: y\\n: ")
|
|
if inp == "y":
|
|
try:
|
|
frst_inp = int(input("Enter the first border of range: "))
|
|
scnd_inp = int(input(f" The first number of range is {frst_inp} and the second?: "))
|
|
thrd_inp = int(input(" The numbers of samples, please: "))
|
|
write_numbers_to_file(frst_inp, scnd_inp, thrd_inp)
|
|
except ValueError:
|
|
print(" Not an int!")
|
|
sys.exit()
|
|
elif inp == "n":
|
|
print("Be sure that file already exists. ")
|
|
else:
|
|
print(" do not fuck with me. Exiting")
|
|
sys.exit()
|
|
|
|
inp = input("What we gonna do? start|stop ?: ")
|
|
if inp == "start":
|
|
starting_osd()
|
|
elif inp == "stop":
|
|
stopping_osd()
|
|
else:
|
|
print(" Вы ввели хуйню")
|