Skip to content

Commit 54bf61a

Browse files
authored
Merge pull request ton-blockchain#501 from yungwine/usage2
Add usages to commands
2 parents 4d21162 + e1d654e commit 54bf61a

File tree

19 files changed

+584
-381
lines changed

19 files changed

+584
-381
lines changed

modules/alert_bot.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from modules.module import MtcModule
66
from mypylib.mypylib import get_timestamp, print_table, color_print
77
from mytoncore import get_hostname, signed_int_to_hex64
8+
from mytonctrl.console_cmd import add_command, check_usage_one_arg, check_usage_two_args
89
from mytonctrl.utils import timestamp2utcdatetime
910

1011

@@ -333,15 +334,15 @@ def _is_alert_active(self, alert_name: str) -> bool:
333334
return self.get_alert_from_db(alert_name).get('active', False)
334335

335336
def enable_alert(self, args):
336-
if len(args) != 1:
337-
raise Exception("Usage: enable_alert <alert_name>")
337+
if not check_usage_one_arg("enable_alert", args):
338+
return
338339
alert_name = args[0]
339340
self.set_alert_enabled(alert_name, True)
340341
color_print("enable_alert - {green}OK{endc}")
341342

342343
def disable_alert(self, args):
343-
if len(args) != 1:
344-
raise Exception("Usage: disable_alert <alert_name>")
344+
if not check_usage_one_arg("disable_alert", args):
345+
return
345346
alert_name = args[0]
346347
self.set_alert_enabled(alert_name, False)
347348
color_print("disable_alert - {green}OK{endc}")
@@ -360,8 +361,8 @@ def test_alert(self, args):
360361
self.send_message('Test alert')
361362

362363
def setup_alert_bot(self, args):
363-
if len(args) != 2:
364-
raise Exception("Usage: setup_alert_bot <bot_token> <chat_id>")
364+
if not check_usage_two_args("setup_alert_bot", args):
365+
return
365366
self.token = args[0]
366367
self.chat_id = args[1]
367368
init_alerts()
@@ -602,8 +603,8 @@ def check_status(self):
602603
self.local.try_function(self.check_online_collators)
603604

604605
def add_console_commands(self, console):
605-
console.AddItem("enable_alert", self.enable_alert, self.local.translate("enable_alert_cmd"))
606-
console.AddItem("disable_alert", self.disable_alert, self.local.translate("disable_alert_cmd"))
607-
console.AddItem("list_alerts", self.print_alerts, self.local.translate("list_alerts_cmd"))
608-
console.AddItem("test_alert", self.test_alert, self.local.translate("test_alert_cmd"))
609-
console.AddItem("setup_alert_bot", self.setup_alert_bot, self.local.translate("setup_alert_bot_cmd"))
606+
add_command(self.local, console, "enable_alert", self.enable_alert)
607+
add_command(self.local, console, "disable_alert", self.disable_alert)
608+
add_command(self.local, console, "list_alerts", self.print_alerts)
609+
add_command(self.local, console, "test_alert", self.test_alert)
610+
add_command(self.local, console, "setup_alert_bot", self.setup_alert_bot)

modules/backups.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from typing import Optional
77

88
from modules.module import MtcModule
9+
from mytonctrl.console_cmd import add_command, check_usage_two_args, check_usage_args_min_max_len
910
from mypylib.mypylib import color_print, ip2int, run_as_root, parse
1011
from mytoncore.utils import get_package_resource_path
1112
from mytonctrl.utils import get_current_user, pop_user_from_args
@@ -38,10 +39,9 @@ def run_create_backup(args, user: Optional[str] = None):
3839
with get_package_resource_path('mytonctrl', 'scripts/create_backup.sh') as backup_script_path:
3940
return subprocess.run(["bash", backup_script_path, "-u", user] + args, timeout=5)
4041

41-
def create_backup(self, args: list) -> typing.Union[int, None]:
42-
if len(args) > 3:
43-
color_print("{red}Bad args. Usage:{endc} create_backup [filename] [-u <user>]")
44-
return None
42+
def create_backup(self, args):
43+
if not check_usage_args_min_max_len("create_backup", args, 0, 3):
44+
return
4545
tmp_dir = self.create_tmp_ton_dir()
4646
command_args = ["-m", self.ton.local.buffer.my_work_dir, "-t", tmp_dir]
4747
user = pop_user_from_args(args)
@@ -64,8 +64,7 @@ def run_restore_backup(args, user: Optional[str] = None):
6464
return run_as_root(["bash", restore_script_path, "-u", user] + args)
6565

6666
def restore_backup(self, args):
67-
if len(args) == 0 or len(args) > 5:
68-
color_print("{red}Bad args. Usage:{endc} restore_backup <filename> [-y] [--skip-create-backup] [-u <user>]")
67+
if not check_usage_args_min_max_len('restore_backup', args, 1, 5):
6968
return
7069
user = pop_user_from_args(args)
7170
if '-y' not in args:
@@ -99,5 +98,5 @@ def restore_backup(self, args):
9998
color_print("restore_backup - {red}Error{endc}")
10099

101100
def add_console_commands(self, console):
102-
console.AddItem("create_backup", self.create_backup, self.local.translate("create_backup_cmd"))
103-
console.AddItem("restore_backup", self.restore_backup, self.local.translate("restore_backup_cmd"))
101+
add_command(self.local, console, "create_backup", self.create_backup)
102+
add_command(self.local, console, "restore_backup", self.restore_backup)

modules/btc_teleport.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
from typing import Optional
44

55
from modules.module import MtcModule
6-
from mypylib.mypylib import run_as_root, color_print
6+
7+
from mytonctrl.console_cmd import add_command, check_usage_args_min_max_len
8+
from mypylib.mypylib import run_as_root
79
from mytoncore.utils import get_package_resource_path
810
from mytonctrl.utils import get_current_user
911

@@ -91,8 +93,7 @@ def run_remove_btc_teleport(args):
9193
return run_as_root(["bash", script_path] + args)
9294

9395
def remove_btc_teleport(self, args: list):
94-
if len(args) > 1:
95-
color_print("{red}Bad args. Usage:{endc} remove_btc_teleport [--force]")
96+
if not check_usage_args_min_max_len("remove_btc_teleport", args, min_len=0, max_len=1):
9697
return
9798
if '--force' not in args:
9899
if -1 < self.ton.GetValidatorIndex() < self.ton.GetConfig34()['mainValidators']:
@@ -104,4 +105,4 @@ def remove_btc_teleport(self, args: list):
104105
self.local.add_log('Removed btc_teleport', 'info')
105106

106107
def add_console_commands(self, console):
107-
console.AddItem("remove_btc_teleport", self.remove_btc_teleport, self.local.translate("remove_btc_teleport_cmd"))
108+
add_command(self.local, console, "remove_btc_teleport", self.remove_btc_teleport)

modules/collator.py

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from modules.module import MtcModule
22
from mypylib import color_print, print_table
33
from mytoncore import b642hex, signed_int_to_hex64, shard_prefix_len, hex_shard_to_int, shard_prefix, shard_is_ancestor
4+
from mytonctrl.console_cmd import check_usage_args_min_len, add_command, check_usage_no_args, check_usage_args_lens
45
from mytonctrl.utils import pop_arg_from_args
56

67

@@ -44,9 +45,7 @@ def _check_input_shards(node_shards: list, shards_need_to_add: list, monitor_min
4445
def setup_collator(self, args: list):
4546
from mytoninstaller.mytoninstaller import set_node_argument
4647
from mytoninstaller.node_args import get_node_args
47-
48-
if not args:
49-
color_print("{red}Bad args. Usage:{endc} setup_collator [--force] [--adnl <ADNL address>] <shard1> [shard2] ...")
48+
if not check_usage_args_min_len("setup_collator", args, 1):
5049
return
5150
force = '--force' in args
5251
args.remove('--force') if '--force' in args else None
@@ -81,6 +80,8 @@ def setup_collator(self, args: list):
8180
color_print("setup_collator - {green}OK{endc}")
8281

8382
def stop_collator(self, args: list):
83+
if not check_usage_args_lens("stop_collator", args, [0, 2]):
84+
return
8485
if not args:
8586
text = f"{{red}}WARNING: This action will stop and delete all local collation broadcasts from this node for all shards.{{endc}}\n"
8687
color_print(text)
@@ -104,17 +105,12 @@ def stop_collator(self, args: list):
104105
color_print("stop_collator - {green}OK{endc}")
105106
return
106107

107-
if len(args) == 2:
108-
adnl_addr, shard_str = args
109-
if ':' not in shard_str:
110-
color_print("{red}Bad args. Usage:{endc} stop_collator <adnl_id> <workchain>:<shard_hex>")
111-
return
112-
shard_id = hex_shard_to_int(shard_str)
113-
workchain = int(shard_id['workchain'])
114-
shard_int = int(shard_id['shard'])
115-
else:
116-
color_print("{red}Bad args. Usage:{endc} stop_collator <adnl_id> <workchain>:<shard_hex>")
117-
return
108+
adnl_addr, shard_str = args
109+
if ':' not in shard_str:
110+
raise Exception(f"Invalid shard: {shard_str}, use format <workchain>:<shard_hex>")
111+
shard_id = hex_shard_to_int(shard_str)
112+
workchain = int(shard_id['workchain'])
113+
shard_int = int(shard_id['shard'])
118114

119115
res = self.ton.validatorConsole.Run(f"del-collator {adnl_addr} {workchain} {shard_int}")
120116
if 'successfully removed collator' not in res.lower():
@@ -136,8 +132,7 @@ def print_collators(self, args: list = None):
136132
print_table(table)
137133

138134
def add_validator_to_collation_wl(self, args: list):
139-
if len(args) < 1:
140-
color_print("{red}Bad args. Usage:{endc} add_validator_to_collation_wl <adnl> [adnl2] [adnl3] ...")
135+
if not check_usage_args_min_len("add_validator_to_collation_wl", args, 1):
141136
return
142137
self.ton.validatorConsole.Run(f"collator-whitelist-enable 1")
143138
self.local.add_log("Collation whitelist enabled")
@@ -148,8 +143,7 @@ def add_validator_to_collation_wl(self, args: list):
148143
color_print("add_validator_to_collation_wl - {green}OK{endc}")
149144

150145
def delete_validator_from_collation_wl(self, args: list):
151-
if len(args) < 1:
152-
color_print("{red}Bad args. Usage:{endc} delete_validator_from_collation_wl <adnl> [adnl2] [adnl3] ...")
146+
if not check_usage_args_min_len("delete_validator_from_collation_wl", args, 1):
153147
return
154148
for adnl_addr in args:
155149
result = self.ton.validatorConsole.Run(f"collator-whitelist-del {adnl_addr}")
@@ -158,8 +152,7 @@ def delete_validator_from_collation_wl(self, args: list):
158152
color_print("delete_validator_from_collation_wl - {green}OK{endc}")
159153

160154
def disable_collation_validator_wl(self, args: list):
161-
if len(args) != 0:
162-
color_print("{red}Bad args. Usage:{endc} disable_collation_validator_wl")
155+
if not check_usage_no_args("disable_collation_wl", args):
163156
return
164157
result = self.ton.validatorConsole.Run(f"collator-whitelist-enable 0")
165158
if 'success' not in result:
@@ -186,10 +179,10 @@ def check_disable(self):
186179

187180

188181
def add_console_commands(self, console):
189-
console.AddItem("setup_collator", self.setup_collator, self.local.translate("setup_collator_cmd"))
190-
console.AddItem("print_local_collators", self.print_collators, self.local.translate("print_local_collators_cmd"))
191-
console.AddItem("add_validator_to_collation_wl", self.add_validator_to_collation_wl, self.local.translate("add_validator_to_collation_wl_cmd"))
192-
console.AddItem("delete_validator_from_collation_wl", self.delete_validator_from_collation_wl, self.local.translate("delete_validator_from_collation_wl_cmd"))
193-
console.AddItem("disable_collation_wl", self.disable_collation_validator_wl, self.local.translate("disable_collation_validator_wl_cmd"))
194-
console.AddItem("print_collation_whitelist", self.print_collation_validators_whitelist, self.local.translate("print_collation_validators_whitelist_cmd"))
195-
console.AddItem("stop_collator", self.stop_collator, self.local.translate("stop_collator_cmd"))
182+
add_command(self.local, console, "setup_collator", self.setup_collator)
183+
add_command(self.local, console, "print_local_collators", self.print_collators)
184+
add_command(self.local, console, "add_validator_to_collation_wl", self.add_validator_to_collation_wl)
185+
add_command(self.local, console, "delete_validator_from_collation_wl", self.delete_validator_from_collation_wl)
186+
add_command(self.local, console, "disable_collation_wl", self.disable_collation_validator_wl)
187+
add_command(self.local, console, "print_collation_whitelist", self.print_collation_validators_whitelist)
188+
add_command(self.local, console, "stop_collator", self.stop_collator)

modules/collator_config.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from mypylib.mypylib import color_print
55
from modules.module import MtcModule
6+
from mytonctrl.console_cmd import add_command, check_usage_one_arg
67

78

89
class CollatorConfigModule(MtcModule):
@@ -47,15 +48,14 @@ def add_collator_config_to_vc(self, config: dict):
4748
return 'success' in result, result
4849

4950
def set_collator_config(self, args):
50-
if len(args) != 1:
51-
color_print("{red}Bad args. Usage:{endc} set_collator_config <path/url>")
51+
if not check_usage_one_arg("set_collation_config", args):
5252
return
5353
location = args[0]
5454
config = self.get_config(location)
5555
self.ton.set_collator_config(location)
5656
added, msg = self.add_collator_config_to_vc(config)
5757
if not added:
58-
print(f'Failed to add collator config to validator console: {msg}')
58+
print(f'Failed to add collation config to validator console: {msg}')
5959
color_print("set_collator_config - {red}ERROR{endc}")
6060
return
6161
color_print("set_collator_config - {green}OK{endc}")
@@ -86,6 +86,6 @@ def update_collator_config(self, args):
8686
color_print("update_collator_config - {green}OK{endc}")
8787

8888
def add_console_commands(self, console):
89-
console.AddItem("set_collation_config", self.set_collator_config, self.local.translate("set_collation_config_cmd"))
90-
console.AddItem("update_collation_config", self.update_collator_config, self.local.translate("update_collation_config_cmd"))
91-
console.AddItem("print_collation_config", self.get_collator_config, self.local.translate("print_collation_config_cmd"))
89+
add_command(self.local, console, "set_collation_config", self.set_collator_config)
90+
add_command(self.local, console, "update_collation_config", self.update_collator_config)
91+
add_command(self.local, console, "print_collation_config", self.get_collator_config)

0 commit comments

Comments
 (0)