1+ from mypylib .mypylib import run_as_root
12
23
34def get_validator_service ():
45 path = '/etc/systemd/system/validator.service'
56 with open (path , 'r' ) as f :
67 return f .read ()
8+ #end define
79
810
911def get_node_start_command ():
1012 service = get_validator_service ()
1113 for line in service .split ('\n ' ):
1214 if 'ExecStart' in line :
1315 return line .split ('=' )[1 ].strip ()
16+ #end define
1417
1518
1619def get_node_args (command : str = None ):
@@ -29,6 +32,17 @@ def get_node_args(command: str = None):
2932 if key :
3033 result [key ] = ''
3134 return result
35+ #end define
36+
37+
38+ def restart_node ():
39+ exit_code = run_as_root (["systemctl" , "daemon-reload" ])
40+ if exit_code :
41+ raise Exception (f"`systemctl daemon-reload` failed with exit code { exit_code } " )
42+ exit_code = run_as_root (["systemctl" , "restart" , "validator" ])
43+ if exit_code :
44+ raise Exception (f"`systemctl restart validator` failed with exit code { exit_code } " )
45+ #end define
3246
3347
3448def set_node_arg (arg_name : str , arg_value : str = '' ):
@@ -49,5 +63,7 @@ def set_node_arg(arg_name: str, arg_value: str = ''):
4963 args [arg_name ] = arg_value
5064 new_command = command .split (' ' )[0 ] + ' ' + ' ' .join ([f'{ k } { v } ' for k , v in args .items ()])
5165 new_service = service .replace (command , new_command )
52- with open ('/etc/systemd/system/validator.service' , 'w' ) as f :
53- f .write (new_service )
66+ c = f"with open('/etc/systemd/system/validator.service', 'w') as f: f.write('''{ new_service } ''')"
67+ run_as_root (['python3' , '-c' , f'"{ c } "' ])
68+ restart_node ()
69+ #end define
0 commit comments