Skip to content

Commit 27fb3ca

Browse files
authored
Merge pull request #865 from skalenetwork/mirage-new-cmds
Add mirage migrate command
2 parents 856f956 + 48ddb43 commit 27fb3ca

33 files changed

Lines changed: 1220 additions & 799 deletions

node_cli/cli/mirage_boot.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@
1919

2020
import click
2121

22-
from node_cli.core.node import get_node_signature, register_node as register, get_node_info
23-
from node_cli.mirage.mirage_boot import init, migrate, update
2422
from node_cli.configs import DEFAULT_NODE_BASE_PORT
25-
from node_cli.utils.helper import streamed_cmd, IP_TYPE, error_exit, abort_if_false
23+
from node_cli.core.node import get_node_info, get_node_signature
24+
from node_cli.core.node import register_node as register
25+
from node_cli.mirage.mirage_boot import init, update
26+
from node_cli.utils.helper import IP_TYPE, abort_if_false, error_exit, streamed_cmd
2627

2728

2829
@click.group()
@@ -76,21 +77,6 @@ def signature_boot(validator_id):
7677
print(f'Signature: {res}')
7778

7879

79-
@boot.command('migrate', help='Migrate mirage node from Mirage Boot Phase to Mirage Main Phase.')
80-
@click.option(
81-
'--yes',
82-
is_flag=True,
83-
callback=abort_if_false,
84-
expose_value=False,
85-
prompt='Are you sure you want to mirage node from Mirage Boot Phase to Mirage Main Phase?',
86-
)
87-
@click.option('--pull-config', 'pull_config_for_schain', hidden=True, type=str)
88-
@click.argument('env_file')
89-
@streamed_cmd
90-
def migrate_boot(env_file, pull_config_for_schain):
91-
migrate(env_file, pull_config_for_schain)
92-
93-
9480
@boot.command('update', help='Update Mirage node from .env file')
9581
@click.option(
9682
'--yes',

node_cli/cli/mirage_node.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919

2020
import click
2121

22-
from node_cli.core.node import get_node_signature, backup, get_node_info
23-
from node_cli.mirage.mirage_node import restore_mirage, request_repair
24-
from node_cli.utils.helper import error_exit, streamed_cmd, abort_if_false, URL_TYPE
22+
from node_cli.core.node import backup, get_node_info, get_node_signature
23+
from node_cli.mirage.mirage_node import migrate_from_boot, request_repair, restore_mirage
24+
from node_cli.utils.helper import URL_TYPE, abort_if_false, error_exit, streamed_cmd
2525
from node_cli.utils.texts import safe_load_texts
2626

2727
TEXTS = safe_load_texts()
@@ -99,20 +99,34 @@ def restore_node(backup_path, env_file, config_only):
9999
restore_mirage(backup_path, env_file, config_only)
100100

101101

102-
@node.command('repair', help='Toggle mirage chain repair mode')
102+
@node.command('migrate', help='Switch from boot to regular Mirage node.')
103+
@click.argument('env_filepath')
103104
@click.option(
104105
'--yes',
105106
is_flag=True,
106107
callback=abort_if_false,
107108
expose_value=False,
108-
prompt=TEXTS['mirage']['node']['repair']['warning'],
109+
prompt='Are you sure you want to migrate to regular Mirage node? The action cannot be undone',
109110
)
111+
@streamed_cmd
112+
def migrate_node(env_filepath: str) -> None:
113+
migrate_from_boot(env_filepath=env_filepath)
114+
115+
116+
@node.command('repair', help='Toggle mirage chain repair mode')
110117
@click.option(
111118
'--snapshot-from',
112119
type=URL_TYPE,
113120
default='',
114121
hidden=True,
115122
help=TEXTS['mirage']['node']['repair']['snapshot_from'],
116123
)
124+
@click.option(
125+
'--yes',
126+
is_flag=True,
127+
callback=abort_if_false,
128+
expose_value=False,
129+
prompt=TEXTS['mirage']['node']['repair']['warning'],
130+
)
117131
def repair(snapshot_from: str = '') -> None:
118132
request_repair(snapshot_from=snapshot_from)

node_cli/cli/node.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@
3737
run_checks,
3838
)
3939
from node_cli.configs import DEFAULT_NODE_BASE_PORT
40-
from node_cli.configs.env import ALLOWED_ENV_TYPES
40+
from node_cli.configs.user import ALLOWED_ENV_TYPES
4141
from node_cli.utils.decorators import check_inited
4242
from node_cli.utils.helper import abort_if_false, streamed_cmd, IP_TYPE
4343
from node_cli.utils.texts import safe_load_texts
44-
from node_cli.utils.meta import get_meta_info
44+
from node_cli.utils.meta import CliMetaManager
4545
from node_cli.utils.print_formatters import print_meta_info
4646

4747

@@ -248,7 +248,7 @@ def configure_firewall(monitoring):
248248
@check_inited
249249
@click.option('--json', 'raw', is_flag=True, help=TEXTS['common']['json'])
250250
def version(raw: bool) -> None:
251-
meta_info = get_meta_info(raw=raw)
251+
meta_info = CliMetaManager().get_meta_info(raw=raw)
252252
if raw:
253253
print(meta_info)
254254
else:

node_cli/configs/alias_address_validation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class ContractType(Enum):
3838
MANAGER = 'skale-manager'
3939

4040

41-
def validate_env_alias_or_address(
41+
def validate_alias_or_address(
4242
alias_or_address: str, contract_type: ContractType, endpoint: str
4343
) -> None:
4444
if is_contract_address(alias_or_address):

node_cli/configs/env.py

Lines changed: 0 additions & 146 deletions
This file was deleted.

0 commit comments

Comments
 (0)