From de7ad288b9d6bfa8143668fecee3487e87d0069e Mon Sep 17 00:00:00 2001 From: Dmytro Date: Tue, 15 Jul 2025 13:12:55 +0100 Subject: [PATCH 1/4] Rename mirage to fair --- .github/workflows/publish.yml | 6 +- .github/workflows/test.yml | 10 +- README.md | 124 +++++++++--------- helper-scripts | 2 +- node_cli/cli/{mirage_boot.py => fair_boot.py} | 22 ++-- node_cli/cli/{mirage_node.py => fair_node.py} | 58 ++++---- node_cli/configs/__init__.py | 4 +- node_cli/configs/routes.py | 2 +- node_cli/configs/user.py | 24 ++-- node_cli/core/node.py | 26 ++-- node_cli/core/static_config.py | 10 +- node_cli/core/wallet.py | 4 +- node_cli/{mirage => fair}/__init__.py | 0 .../mirage_boot.py => fair/fair_boot.py} | 26 ++-- .../mirage_node.py => fair/fair_node.py} | 68 +++++----- node_cli/{mirage => fair}/record/__init__.py | 0 .../{mirage => fair}/record/chain_record.py | 12 +- .../{mirage => fair}/record/redis_record.py | 0 node_cli/main.py | 10 +- .../migrations/{mirage => fair}/from_boot.py | 2 +- node_cli/operations/__init__.py | 16 +-- node_cli/operations/base.py | 20 +-- node_cli/operations/{mirage.py => fair.py} | 50 +++---- node_cli/utils/docker_utils.py | 46 +++---- node_cli/utils/meta.py | 16 +-- node_cli/utils/node_type.py | 2 +- node_cli/utils/print_formatters.py | 8 +- scripts/build.sh | 6 +- scripts/generate_info.sh | 8 +- .../{mirage_cli_test.py => fair_cli_test.py} | 32 ++--- tests/cli/node_test.py | 2 +- tests/configs/configs_env_validate_test.py | 16 +-- tests/conftest.py | 6 +- tests/core/core_checks_test.py | 20 +-- tests/core/core_node_test.py | 36 ++--- tests/core/nginx_test.py | 10 +- tests/{mirage => fair}/__init__.py | 0 .../fair_node_test.py} | 122 ++++++++--------- tests/routes_test.py | 4 +- tests/tools_meta_test.py | 118 ++++++++--------- text.yml | 14 +- 41 files changed, 481 insertions(+), 481 deletions(-) rename node_cli/cli/{mirage_boot.py => fair_boot.py} (77%) rename node_cli/cli/{mirage_node.py => fair_node.py} (60%) rename node_cli/{mirage => fair}/__init__.py (100%) rename node_cli/{mirage/mirage_boot.py => fair/fair_boot.py} (73%) rename node_cli/{mirage/mirage_node.py => fair/fair_node.py} (71%) rename node_cli/{mirage => fair}/record/__init__.py (100%) rename node_cli/{mirage => fair}/record/chain_record.py (86%) rename node_cli/{mirage => fair}/record/redis_record.py (100%) rename node_cli/migrations/{mirage => fair}/from_boot.py (97%) rename node_cli/operations/{mirage.py => fair.py} (81%) mode change 100755 => 100644 scripts/build.sh mode change 100755 => 100644 scripts/generate_info.sh rename tests/cli/{mirage_cli_test.py => fair_cli_test.py} (75%) rename tests/{mirage => fair}/__init__.py (100%) rename tests/{mirage/mirage_node_test.py => fair/fair_node_test.py} (61%) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d5d3bff4..3459f78f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,8 +8,8 @@ on: - beta - stable - 'v*.*.*' - - 'mirage' - - 'mirage-*' + - 'fair' + - 'fair-*' jobs: create_release: @@ -72,7 +72,7 @@ jobs: strategy: matrix: os: [ubuntu-22.04] - build_type: [normal, sync, mirage] + build_type: [normal, sync, fair] steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 026ac8e8..9251c723 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: pip install -e ".[dev]" - name: Generate info - run: ./scripts/generate_info.sh 1.0.0 my-branch normal + run: bash ./scripts/generate_info.sh 1.0.0 my-branch normal - name: Check with ruff run: | @@ -57,15 +57,15 @@ jobs: - name: Check build - sync run: sudo /home/ubuntu/dist/skale-test-Linux-x86_64-sync - - name: Build binary - mirage + - name: Build binary - fair run: | mkdir -p ./dist docker build . -t node-cli-builder - docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh test test mirage + docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh test test fair docker rm -f $(docker ps -aq) - - name: Check build - mirage - run: sudo /home/ubuntu/dist/skale-test-Linux-x86_64-mirage + - name: Check build - fair + run: sudo /home/ubuntu/dist/skale-test-Linux-x86_64-fair - name: Run prepare test build run: | diff --git a/README.md b/README.md index 6353d4f1..5bf844f6 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ ![Test](https://github.com/skalenetwork/node-cli/workflows/Test/badge.svg) [![Discord](https://img.shields.io/discord/534485763354787851.svg)](https://discord.gg/vvUtWJB) -SKALE Node CLI, part of the SKALE suite of validator tools, is the command line interface to setup, register and maintain your SKALE node. It comes in three distinct build types: Standard (for validator nodes), Sync (for dedicated sChain synchronization), and Mirage (for the Mirage network). +SKALE Node CLI, part of the SKALE suite of validator tools, is the command line interface to setup, register and maintain your SKALE node. It comes in three distinct build types: Standard (for validator nodes), Sync (for dedicated sChain synchronization), and Fair (for the Fair network). ## Table of Contents 1. [Installation](#installation) 1. [Standard Node Binary](#standard-node-binary) 2. [Sync Node Binary](#sync-node-binary) - 3. [Mirage Node Binary](#mirage-node-binary) + 3. [Fair Node Binary](#fair-node-binary) 4. [Permissions and Testing](#permissions-and-testing) 2. [Standard Node Usage (`skale` - Normal Build)](#standard-node-usage-skale---normal-build) 1. [Top level commands (Standard)](#top-level-commands-standard) @@ -25,10 +25,10 @@ SKALE Node CLI, part of the SKALE suite of validator tools, is the command line 3. [Sync Node Usage (`skale` - Sync Build)](#sync-node-usage-skale---sync-build) 1. [Top level commands (Sync)](#top-level-commands-sync) 2. [Sync node commands](#sync-node-commands) -4. [Mirage Node Usage (`mirage`)](#mirage-node-usage-mirage) - 1. [Top level commands (Mirage)](#top-level-commands-mirage) - 2. [Mirage Boot commands](#mirage-boot-commands) - 3. [Mirage Node commands](#mirage-node-commands) +4. [Fair Node Usage (`fair`)](#fair-node-usage-fair) + 1. [Top level commands (Fair)](#top-level-commands-fair) + 2. [Fair Boot commands](#fair-boot-commands) + 3. [Fair Node commands](#fair-node-commands) 5. [Exit codes](#exit-codes) 6. [Development](#development) @@ -60,14 +60,14 @@ VERSION_NUM={version} && \ sudo -E bash -c "curl -L https://github.com/skalenetwork/node-cli/releases/download/$VERSION_NUM/skale-$VERSION_NUM-`uname -s`-`uname -m`-sync > /usr/local/bin/skale" ``` -### Mirage Node Binary +### Fair Node Binary -This binary (`skale-VERSION-OS-mirage`) is used specifically for managing nodes on the Mirage network. It is named `mirage`. +This binary (`skale-VERSION-OS-fair`) is used specifically for managing nodes on the Fair network. It is named `fair`. ```shell # Replace {version} with the desired release version (e.g., 2.6.0) VERSION_NUM={version} && \ -sudo -E bash -c "curl -L https://github.com/skalenetwork/node-cli/releases/download/$VERSION_NUM/skale-$VERSION_NUM-`uname -s`-`uname -m`-mirage > /usr/local/bin/mirage" +sudo -E bash -c "curl -L https://github.com/skalenetwork/node-cli/releases/download/$VERSION_NUM/skale-$VERSION_NUM-`uname -s`-`uname -m`-fair > /usr/local/bin/fair" ``` ### Permissions and Testing @@ -78,8 +78,8 @@ Apply executable permissions to the downloaded binary (adjust name accordingly): # For Standard or Sync binary sudo chmod +x /usr/local/bin/skale -# For Mirage binary -sudo chmod +x /usr/local/bin/mirage +# For Fair binary +sudo chmod +x /usr/local/bin/fair ``` Test the installation: @@ -88,8 +88,8 @@ Test the installation: # Standard or Sync build skale --help -# Mirage build -mirage --help +# Fair build +fair --help ``` --- @@ -647,44 +647,44 @@ Options: --- -## Mirage Node Usage (`mirage`) +## Fair Node Usage (`fair`) -Commands available in the **`mirage` binary** for managing nodes on the Mirage network. +Commands available in the **`fair` binary** for managing nodes on the Fair network. -### Top level commands (Mirage) +### Top level commands (Fair) -#### Mirage Info +#### Fair Info -Print build info for the `mirage` binary. +Print build info for the `fair` binary. ```shell -mirage info +fair info ``` -#### Mirage Version +#### Fair Version -Print version number for the `mirage` binary. +Print version number for the `fair` binary. ```shell -mirage version [--short] +fair version [--short] ``` Options: - `--short` - prints version only, without additional text. -### Mirage Boot commands +### Fair Boot commands -> Prefix: `mirage boot` +> Prefix: `fair boot` -Commands for a Mirage node in the Boot phase. +Commands for a Fair node in the Boot phase. -#### Mirage Boot Initialization +#### Fair Boot Initialization -Initialize the Mirage node boot phase. +Initialize the Fair node boot phase. ```shell -mirage boot init [ENV_FILE] +fair boot init [ENV_FILE] ``` Arguments: @@ -696,9 +696,9 @@ Required environment variables in `ENV_FILE`: - `SGX_SERVER_URL` - SGX server URL. - `DISK_MOUNTPOINT` - Mount point for storing data (BTRFS recommended). - `CONTAINER_CONFIGS_STREAM` - Stream of `skale-node` configs. -- `ENDPOINT` - RPC endpoint of the network where Mirage Manager is deployed. +- `ENDPOINT` - RPC endpoint of the network where Fair Manager is deployed. - `MANAGER_CONTRACTS` - SKALE Manager alias or address. -- `IMA_CONTRACTS` - IMA alias or address (_Note: Required by boot service, may not be used by Mirage itself_). +- `IMA_CONTRACTS` - IMA alias or address (_Note: Required by boot service, may not be used by Fair itself_). - `FILEBEAT_HOST` - URL/IP:Port of the Filebeat log server. - `ENV_TYPE` - Environment type (e.g., 'mainnet', 'devnet'). @@ -706,42 +706,42 @@ Optional variables: - `MONITORING_CONTAINERS` - Enable monitoring containers (`cadvisor`, `node-exporter`). -#### Mirage Boot Registration +#### Fair Boot Registration -Register the Mirage node with Mirage Manager _during_ the boot phase. +Register the Fair node with Fair Manager _during_ the boot phase. ```shell -mirage boot register --name --ip --domain [--port ] +fair boot register --name --ip --domain [--port ] ``` Required arguments: -- `--name`/`-n` - Mirage node name. +- `--name`/`-n` - Fair node name. - `--ip` - Public IP for RPC connections and consensus. -- `--domain`/`-d` - Mirage node domain name (e.g., `mirage1.example.com`). +- `--domain`/`-d` - Fair node domain name (e.g., `fair1.example.com`). Optional arguments: - `--port`/`-p` - Base port for node sChains (default: `10000`). -#### Mirage Boot Signature +#### Fair Boot Signature Get the node signature for a validator ID _during_ the boot phase. ```shell -mirage boot signature +fair boot signature ``` Arguments: - `VALIDATOR_ID` - The ID of the validator requesting the signature. -#### Mirage Boot Migrate +#### Fair Boot Migrate -Migrate the Mirage node from the boot phase to the main phase (regular operation). +Migrate the Fair node from the boot phase to the main phase (regular operation). ```shell -mirage boot migrate [ENV_FILEPATH] [--yes] +fair boot migrate [ENV_FILEPATH] [--yes] ``` Arguments: @@ -752,72 +752,72 @@ Options: - `--yes` - Migrate without confirmation. -### Mirage Node commands +### Fair Node commands -> Prefix: `mirage node` +> Prefix: `fair node` -Commands for managing a Mirage node during its regular operation (main phase). +Commands for managing a Fair node during its regular operation (main phase). -#### Mirage Node Initialization (Placeholder) +#### Fair Node Initialization (Placeholder) -Initialize the regular operation phase of the Mirage node. +Initialize the regular operation phase of the Fair node. ```shell -mirage node init +fair node init ``` > **Note:** This command is currently a placeholder and not implemented. -#### Mirage Node Registration (Placeholder) +#### Fair Node Registration (Placeholder) Register the node during regular operation. ```shell -mirage node register +fair node register ``` > **Note:** This command is currently a placeholder and not implemented. -#### Mirage Node Update (Placeholder) +#### Fair Node Update (Placeholder) -Update the Mirage node during regular operation. +Update the Fair node during regular operation. ```shell -mirage node update [ENV_FILEPATH] [--yes] [--unsafe] +fair node update [ENV_FILEPATH] [--yes] [--unsafe] ``` > **Note:** This command is currently a placeholder and not implemented. -#### Mirage Node Signature +#### Fair Node Signature Get the node signature for a validator ID during regular operation. ```shell -mirage node signature +fair node signature ``` Arguments: - `VALIDATOR_ID` - The ID of the validator requesting the signature. -#### Mirage Node Backup +#### Fair Node Backup -Generate a backup archive of the Mirage node's state. +Generate a backup archive of the Fair node's state. ```shell -mirage node backup +fair node backup ``` Arguments: - `BACKUP_FOLDER_PATH` - Path to the folder where the backup file will be saved. -#### Mirage Node Restore +#### Fair Node Restore -Restore a Mirage node from a backup archive. +Restore a Fair node from a backup archive. ```shell -mirage node restore [--config-only] +fair node restore [--config-only] ``` Arguments: @@ -887,7 +887,7 @@ pip install -e ".[dev]" #### Generate info.py locally -Specify the build type (`normal`, `sync`, or `mirage`): +Specify the build type (`normal`, `sync`, or `fair`): ```shell # Example for Standard build @@ -896,8 +896,8 @@ Specify the build type (`normal`, `sync`, or `mirage`): # Example for Sync build ./scripts/generate_info.sh 1.0.0 my-branch sync -# Example for Mirage build -./scripts/generate_info.sh 1.0.0 my-branch mirage +# Example for Fair build +./scripts/generate_info.sh 1.0.0 my-branch fair ``` #### Add linting git hook diff --git a/helper-scripts b/helper-scripts index 5c5bf3a0..808c768f 160000 --- a/helper-scripts +++ b/helper-scripts @@ -1 +1 @@ -Subproject commit 5c5bf3a09500d605d72b53e2da8e871ffca1403a +Subproject commit 808c768feebfa99d9148e076b5b6b24b1b340734 diff --git a/node_cli/cli/mirage_boot.py b/node_cli/cli/fair_boot.py similarity index 77% rename from node_cli/cli/mirage_boot.py rename to node_cli/cli/fair_boot.py index 8f5bf44e..703bea88 100644 --- a/node_cli/cli/mirage_boot.py +++ b/node_cli/cli/fair_boot.py @@ -22,36 +22,36 @@ from node_cli.configs import DEFAULT_NODE_BASE_PORT from node_cli.core.node import get_node_info, get_node_signature from node_cli.core.node import register_node as register -from node_cli.mirage.mirage_boot import init, update +from node_cli.fair.fair_boot import init, update from node_cli.utils.helper import IP_TYPE, abort_if_false, error_exit, streamed_cmd @click.group() -def mirage_boot_cli(): +def fair_boot_cli(): pass -@mirage_boot_cli.group(help='Commands for the Mirage Boot phase.') +@fair_boot_cli.group(help='Commands for the Fair Boot phase.') def boot(): pass -@boot.command('info', help='Get info about Mirage node (Boot Phase).') +@boot.command('info', help='Get info about Fair node (Boot Phase).') @click.option('--format', '-f', type=click.Choice(['json', 'text'])) -def mirage_boot_info(format): +def fair_boot_info(format): get_node_info(format) -@boot.command('init', help='Initialize Mirage node (Boot Phase).') +@boot.command('init', help='Initialize Fair node (Boot Phase).') @click.argument('env_file') @streamed_cmd def init_boot(env_file): init(env_file) -@boot.command('register', help='Register Mirage node in SKALE Manager (during Boot Phase).') +@boot.command('register', help='Register Fair node in SKALE Manager (during Boot Phase).') @click.option( - '--name', '-n', required=True, prompt='Enter mirage node name', help='Mirage node name' + '--name', '-n', required=True, prompt='Enter fair node name', help='Fair node name' ) @click.option( '--ip', @@ -68,7 +68,7 @@ def register_boot(name, ip, port, domain): register(name=name, p2p_ip=ip, public_ip=ip, port=port, domain_name=domain) -@boot.command('signature', help='Get mirage node signature for a validator ID (during Boot Phase).') +@boot.command('signature', help='Get fair node signature for a validator ID (during Boot Phase).') @click.argument('validator_id') def signature_boot(validator_id): res = get_node_signature(validator_id) @@ -77,13 +77,13 @@ def signature_boot(validator_id): print(f'Signature: {res}') -@boot.command('update', help='Update Mirage node from .env file') +@boot.command('update', help='Update Fair node from .env file') @click.option( '--yes', is_flag=True, callback=abort_if_false, expose_value=False, - prompt='Are you sure you want to update Mirage node software?', + prompt='Are you sure you want to update Fair node software?', ) @click.option('--pull-config', 'pull_config_for_schain', hidden=True, type=str) @click.argument('env_file') diff --git a/node_cli/cli/mirage_node.py b/node_cli/cli/fair_node.py similarity index 60% rename from node_cli/cli/mirage_node.py rename to node_cli/cli/fair_node.py index e76e4f4b..b6461871 100644 --- a/node_cli/cli/mirage_node.py +++ b/node_cli/cli/fair_node.py @@ -20,16 +20,16 @@ import click from node_cli.core.node import backup -from node_cli.mirage.mirage_node import cleanup as mirage_cleanup -from node_cli.mirage.mirage_node import init as init_mirage -from node_cli.mirage.mirage_node import ( +from node_cli.fair.fair_node import cleanup as fair_cleanup +from node_cli.fair.fair_node import init as init_fair +from node_cli.fair.fair_node import ( migrate_from_boot, request_repair, - restore_mirage, + restore_fair, get_node_info, ) -from node_cli.mirage.mirage_node import register as register_mirage -from node_cli.mirage.mirage_node import update as update_mirage +from node_cli.fair.fair_node import register as register_fair +from node_cli.fair.fair_node import update as update_fair from node_cli.utils.helper import IP_TYPE, URL_TYPE, abort_if_false, streamed_cmd from node_cli.utils.texts import safe_load_texts @@ -37,57 +37,57 @@ @click.group() -def mirage_node_cli(): +def fair_node_cli(): pass -@mirage_node_cli.group(help='Commands for regular Mirage Node operations.') +@fair_node_cli.group(help='Commands for regular Fair Node operations.') def node(): pass -@node.command('info', help='Get info about Mirage node.') +@node.command('info', help='Get info about Fair node.') @click.option('--format', '-f', type=click.Choice(['json', 'text'])) -def mirage_node_info(format): +def fair_node_info(format): get_node_info(format) -@node.command('init', help='Initialize regular Mirage node') +@node.command('init', help='Initialize regular Fair node') @click.argument('env_filepath') @streamed_cmd def init_node(env_filepath: str): - init_mirage(env_filepath=env_filepath) + init_fair(env_filepath=env_filepath) -@node.command('register', help=TEXTS['mirage']['node']['register']['help']) -@click.option('--ip', required=True, type=IP_TYPE, help=TEXTS['mirage']['node']['register']['ip']) +@node.command('register', help=TEXTS['fair']['node']['register']['help']) +@click.option('--ip', required=True, type=IP_TYPE, help=TEXTS['fair']['node']['register']['ip']) def register(ip: str) -> None: - register_mirage(ip=ip) + register_fair(ip=ip) -@node.command('update', help='Update Mirage node') +@node.command('update', help='Update Fair node') @click.argument('env_filepath') @click.option( '--yes', is_flag=True, callback=abort_if_false, expose_value=False, - prompt='Are you sure you want to update Mirage node software?', + prompt='Are you sure you want to update Fair node software?', ) @click.option('--pull-config', 'pull_config_for_schain', hidden=True, type=str) @streamed_cmd def update_node(env_filepath: str, pull_config_for_schain): - update_mirage(env_filepath=env_filepath, pull_config_for_schain=pull_config_for_schain) + update_fair(env_filepath=env_filepath, pull_config_for_schain=pull_config_for_schain) -@node.command('backup', help='Generate backup file for the Mirage node.') +@node.command('backup', help='Generate backup file for the Fair node.') @click.argument('backup_folder_path') @streamed_cmd def backup_node(backup_folder_path): backup(backup_folder_path) -@node.command('restore', help='Restore Mirage node from a backup file.') +@node.command('restore', help='Restore Fair node from a backup file.') @click.argument('backup_path') @click.argument('env_file') @click.option( @@ -98,50 +98,50 @@ def backup_node(backup_folder_path): ) @streamed_cmd def restore_node(backup_path, env_file, config_only): - restore_mirage(backup_path, env_file, config_only) + restore_fair(backup_path, env_file, config_only) -@node.command('migrate', help='Switch from boot to regular Mirage node.') +@node.command('migrate', help='Switch from boot to regular Fair node.') @click.argument('env_filepath') @click.option( '--yes', is_flag=True, callback=abort_if_false, expose_value=False, - prompt='Are you sure you want to migrate to regular Mirage node? The action cannot be undone', + prompt='Are you sure you want to migrate to regular Fair node? The action cannot be undone', ) @streamed_cmd def migrate_node(env_filepath: str) -> None: migrate_from_boot(env_filepath=env_filepath) -@node.command('repair', help='Toggle mirage chain repair mode') +@node.command('repair', help='Toggle fair chain repair mode') @click.option( '--snapshot-from', type=URL_TYPE, default='', hidden=True, - help=TEXTS['mirage']['node']['repair']['snapshot_from'], + help=TEXTS['fair']['node']['repair']['snapshot_from'], ) @click.option( '--yes', is_flag=True, callback=abort_if_false, expose_value=False, - prompt=TEXTS['mirage']['node']['repair']['warning'], + prompt=TEXTS['fair']['node']['repair']['warning'], ) def repair(snapshot_from: str = '') -> None: request_repair(snapshot_from=snapshot_from) -@node.command('cleanup', help='Cleanup Mirage node.') +@node.command('cleanup', help='Cleanup Fair node.') @click.option( '--yes', is_flag=True, callback=abort_if_false, expose_value=False, - prompt='Are you sure you want to cleanup Mirage node?', + prompt='Are you sure you want to cleanup Fair node?', ) @streamed_cmd def cleanup_node(): - mirage_cleanup() + fair_cleanup() diff --git a/node_cli/configs/__init__.py b/node_cli/configs/__init__.py index a360ab9a..6709ee75 100644 --- a/node_cli/configs/__init__.py +++ b/node_cli/configs/__init__.py @@ -56,9 +56,9 @@ COMPOSE_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'docker-compose.yml') SYNC_COMPOSE_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'docker-compose-sync.yml') -MIRAGE_COMPOSE_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'docker-compose-mirage.yml') +FAIR_COMPOSE_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'docker-compose-fair.yml') STATIC_PARAMS_FILEPATH = os.path.join(CONTAINER_CONFIG_PATH, 'static_params.yaml') -MIRAGE_STATIC_PARAMS_FILEPATH = os.path.join(CONTAINER_CONFIG_PATH, 'mirage_static_params.yaml') +FAIR_STATIC_PARAMS_FILEPATH = os.path.join(CONTAINER_CONFIG_PATH, 'fair_static_params.yaml') NGINX_TEMPLATE_FILEPATH = os.path.join(CONTAINER_CONFIG_PATH, 'nginx.conf.j2') NGINX_CONFIG_FILEPATH = os.path.join(NODE_DATA_PATH, 'nginx.conf') diff --git a/node_cli/configs/routes.py b/node_cli/configs/routes.py index acdf0118..8afc10d9 100644 --- a/node_cli/configs/routes.py +++ b/node_cli/configs/routes.py @@ -40,7 +40,7 @@ 'schains': ['config', 'list', 'dkg-statuses', 'firewall-rules', 'repair', 'get'], 'ssl': ['status', 'upload'], 'wallet': ['info', 'send-eth'], - 'mirage-node': ['info', 'register'], + 'fair-node': ['info', 'register'], } } diff --git a/node_cli/configs/user.py b/node_cli/configs/user.py index f1d07cc6..49f44d58 100644 --- a/node_cli/configs/user.py +++ b/node_cli/configs/user.py @@ -81,15 +81,15 @@ def validate_params(cls, params: Dict) -> ValidationResult: @dataclass -class MirageUserConfig(BaseUserConfig): - mirage_contracts: str +class FairUserConfig(BaseUserConfig): + fair_contracts: str boot_endpoint: str sgx_server_url: str enforce_btrfs: str = '' @dataclass -class MirageBootUserConfig(BaseUserConfig): +class FairBootUserConfig(BaseUserConfig): endpoint: str manager_contracts: str ima_contracts: str @@ -127,10 +127,10 @@ class SyncUserConfig(BaseUserConfig): def get_validated_user_config( node_type: NodeType, env_filepath: str = SKALE_DIR_ENV_FILEPATH, - is_mirage_boot: bool = False, + is_fair_boot: bool = False, ) -> BaseUserConfig: params = parse_env_file(env_filepath) - user_config_class = get_user_config_class(node_type, is_mirage_boot) + user_config_class = get_user_config_class(node_type, is_fair_boot) _, missing_params, extra_params = user_config_class.validate_params(params) if len(missing_params) > 0: @@ -149,12 +149,12 @@ def get_validated_user_config( def validate_user_config(user_config: BaseUserConfig) -> None: validate_env_type(env_type=user_config.env_type) - if not isinstance(user_config, MirageUserConfig): + if not isinstance(user_config, FairUserConfig): validate_alias_or_address( user_config.manager_contracts, ContractType.MANAGER, user_config.endpoint ) - if isinstance(user_config, (SkaleUserConfig, MirageBootUserConfig)): + if isinstance(user_config, (SkaleUserConfig, FairBootUserConfig)): validate_alias_or_address(user_config.ima_contracts, ContractType.IMA, user_config.endpoint) @@ -170,12 +170,12 @@ def parse_env_file(env_filepath: str) -> Dict: def get_user_config_class( node_type: NodeType, - is_mirage_boot: bool = False, + is_fair_boot: bool = False, ) -> type[BaseUserConfig]: - if node_type == NodeType.MIRAGE and is_mirage_boot: - user_config_class = MirageBootUserConfig - elif node_type == NodeType.MIRAGE: - user_config_class = MirageUserConfig + if node_type == NodeType.FAIR and is_fair_boot: + user_config_class = FairBootUserConfig + elif node_type == NodeType.FAIR: + user_config_class = FairUserConfig elif node_type == NodeType.SYNC: user_config_class = SyncUserConfig else: diff --git a/node_cli/core/node.py b/node_cli/core/node.py index 4d41dcde..f5e0a16b 100644 --- a/node_cli/core/node.py +++ b/node_cli/core/node.py @@ -78,8 +78,8 @@ is_api_running, BASE_SKALE_COMPOSE_SERVICES, BASE_SYNC_COMPOSE_SERVICES, - BASE_MIRAGE_COMPOSE_SERVICES, - BASE_MIRAGE_BOOT_COMPOSE_SERVICES, + BASE_FAIR_COMPOSE_SERVICES, + BASE_FAIR_BOOT_COMPOSE_SERVICES, ) from node_cli.utils.node_type import NodeType from node_cli.migrations.focal_to_jammy import migrate as migrate_2_6 @@ -230,13 +230,13 @@ def compose_node_env( sync_schains: Optional[bool] = None, pull_config_for_schain: Optional[str] = None, save: bool = True, - is_mirage_boot: bool = False, + is_fair_boot: bool = False, ) -> dict[str, str]: if env_filepath is not None: user_config = get_validated_user_config( node_type=node_type, env_filepath=env_filepath, - is_mirage_boot=is_mirage_boot, + is_fair_boot=is_fair_boot, ) if save: save_env_params(env_filepath) @@ -244,10 +244,10 @@ def compose_node_env( user_config = get_validated_user_config( node_type=node_type, env_filepath=INIT_ENV_FILEPATH, - is_mirage_boot=is_mirage_boot, + is_fair_boot=is_fair_boot, ) - if node_type == NodeType.SYNC or node_type == NodeType.MIRAGE: + if node_type == NodeType.SYNC or node_type == NodeType.FAIR: mnt_dir = SCHAINS_MNT_DIR_SINGLE_CHAIN else: mnt_dir = SCHAINS_MNT_DIR_REGULAR @@ -428,11 +428,11 @@ def turn_on(maintenance_off, sync_schains, env_file, node_type: NodeType) -> Non set_maintenance_mode_off() -def get_expected_container_names(node_type: NodeType, is_mirage_boot: bool) -> list[str]: - if node_type == NodeType.MIRAGE and is_mirage_boot: - services = BASE_MIRAGE_BOOT_COMPOSE_SERVICES - elif node_type == NodeType.MIRAGE and not is_mirage_boot: - services = BASE_MIRAGE_COMPOSE_SERVICES +def get_expected_container_names(node_type: NodeType, is_fair_boot: bool) -> list[str]: + if node_type == NodeType.FAIR and is_fair_boot: + services = BASE_FAIR_BOOT_COMPOSE_SERVICES + elif node_type == NodeType.FAIR and not is_fair_boot: + services = BASE_FAIR_COMPOSE_SERVICES elif node_type == NodeType.SYNC: services = BASE_SYNC_COMPOSE_SERVICES else: @@ -441,8 +441,8 @@ def get_expected_container_names(node_type: NodeType, is_mirage_boot: bool) -> l return list(services.values()) -def is_base_containers_alive(node_type: NodeType, is_mirage_boot: bool = False) -> bool: - base_container_names = get_expected_container_names(node_type, is_mirage_boot) +def is_base_containers_alive(node_type: NodeType, is_fair_boot: bool = False) -> bool: + base_container_names = get_expected_container_names(node_type, is_fair_boot) dclient = docker.from_env() running_container_names = set(container.name for container in dclient.containers.list()) diff --git a/node_cli/core/static_config.py b/node_cli/core/static_config.py index 4bc84f42..a93a7a60 100644 --- a/node_cli/core/static_config.py +++ b/node_cli/core/static_config.py @@ -23,7 +23,7 @@ from node_cli.configs import ( CONTAINER_CONFIG_PATH, - MIRAGE_STATIC_PARAMS_FILEPATH, + FAIR_STATIC_PARAMS_FILEPATH, STATIC_PARAMS_FILEPATH, ) from node_cli.utils.node_type import NodeType @@ -34,8 +34,8 @@ def get_static_params( env_type: str = 'mainnet', config_path: str = CONTAINER_CONFIG_PATH, ) -> dict: - if node_type == NodeType.MIRAGE: - static_params_base_filepath = MIRAGE_STATIC_PARAMS_FILEPATH + if node_type == NodeType.FAIR: + static_params_base_filepath = FAIR_STATIC_PARAMS_FILEPATH else: static_params_base_filepath = STATIC_PARAMS_FILEPATH @@ -46,7 +46,7 @@ def get_static_params( return ydata['envs'][env_type] -def get_mirage_chain_name(env: dict) -> str: - node_type = NodeType.MIRAGE +def get_fair_chain_name(env: dict) -> str: + node_type = NodeType.FAIR params = get_static_params(node_type, env['ENV_TYPE']) return params['info']['chain_name'] diff --git a/node_cli/core/wallet.py b/node_cli/core/wallet.py index 15efe8d0..467b675b 100644 --- a/node_cli/core/wallet.py +++ b/node_cli/core/wallet.py @@ -22,7 +22,7 @@ from node_cli.utils.exit_codes import CLIExitCodes from node_cli.utils.helper import error_exit, get_request, post_request -from node_cli.utils.print_formatters import TEXTS, print_mirage_wallet_info, print_wallet_info +from node_cli.utils.print_formatters import TEXTS, print_fair_wallet_info, print_wallet_info logger = logging.getLogger(__name__) @@ -41,7 +41,7 @@ def get_wallet_info(_format): if payload.get('skale_balance'): print_wallet_info(payload) else: - print_mirage_wallet_info(payload) + print_fair_wallet_info(payload) else: error_exit(payload, exit_code=CLIExitCodes.BAD_API_RESPONSE) diff --git a/node_cli/mirage/__init__.py b/node_cli/fair/__init__.py similarity index 100% rename from node_cli/mirage/__init__.py rename to node_cli/fair/__init__.py diff --git a/node_cli/mirage/mirage_boot.py b/node_cli/fair/fair_boot.py similarity index 73% rename from node_cli/mirage/mirage_boot.py rename to node_cli/fair/fair_boot.py index 31c95cb9..290bbb1e 100644 --- a/node_cli/mirage/mirage_boot.py +++ b/node_cli/fair/fair_boot.py @@ -23,7 +23,7 @@ from node_cli.configs import TM_INIT_TIMEOUT from node_cli.core.node import compose_node_env, is_base_containers_alive -from node_cli.operations import init_mirage_boot_op, update_mirage_boot_op +from node_cli.operations import init_fair_boot_op, update_fair_boot_op from node_cli.utils.decorators import check_inited, check_not_inited, check_user from node_cli.utils.exit_codes import CLIExitCodes from node_cli.utils.helper import error_exit @@ -37,37 +37,37 @@ def init(env_filepath: str) -> None: env = compose_node_env( env_filepath, - node_type=NodeType.MIRAGE, - is_mirage_boot=True, + node_type=NodeType.FAIR, + is_fair_boot=True, ) - init_mirage_boot_op(env_filepath, env) - logger.info('Waiting for mirage containers initialization') + init_fair_boot_op(env_filepath, env) + logger.info('Waiting for fair containers initialization') time.sleep(TM_INIT_TIMEOUT) - if not is_base_containers_alive(node_type=NodeType.MIRAGE, is_mirage_boot=True): + if not is_base_containers_alive(node_type=NodeType.FAIR, is_fair_boot=True): error_exit('Containers are not running', exit_code=CLIExitCodes.OPERATION_EXECUTION_ERROR) - logger.info('Init mirage procedure finished') + logger.info('Init fair procedure finished') @check_inited @check_user def update(env_filepath: str, pull_config_for_schain: str) -> None: - logger.info('Mirage boot node update started') + logger.info('Fair boot node update started') env = compose_node_env( env_filepath, inited_node=True, sync_schains=False, pull_config_for_schain=pull_config_for_schain, - node_type=NodeType.MIRAGE, - is_mirage_boot=True, + node_type=NodeType.FAIR, + is_fair_boot=True, ) - migrate_ok = update_mirage_boot_op(env_filepath, env) + migrate_ok = update_fair_boot_op(env_filepath, env) if migrate_ok: logger.info('Waiting for containers initialization') time.sleep(TM_INIT_TIMEOUT) - alive = is_base_containers_alive(node_type=NodeType.MIRAGE, is_mirage_boot=True) + alive = is_base_containers_alive(node_type=NodeType.FAIR, is_fair_boot=True) if not migrate_ok or not alive: print_node_cmd_error() return else: - logger.info('Mirage boot node update finished successfully!') + logger.info('Fair boot node update finished successfully!') diff --git a/node_cli/mirage/mirage_node.py b/node_cli/fair/fair_node.py similarity index 71% rename from node_cli/mirage/mirage_node.py rename to node_cli/fair/fair_node.py index 3a185138..e32149e9 100644 --- a/node_cli/mirage/mirage_node.py +++ b/node_cli/fair/fair_node.py @@ -27,25 +27,25 @@ from node_cli.core.docker_config import cleanup_docker_configuration from node_cli.core.host import is_node_inited, save_env_params from node_cli.core.node import compose_node_env, is_base_containers_alive -from node_cli.mirage.record.chain_record import get_mirage_chain_record +from node_cli.fair.record.chain_record import get_fair_chain_record from node_cli.operations import ( - MirageUpdateType, - cleanup_mirage_op, - init_mirage_op, - restore_mirage_op, - update_mirage_op, + FairUpdateType, + cleanup_fair_op, + init_fair_op, + restore_fair_op, + update_fair_op, ) from node_cli.utils.decorators import check_inited, check_not_inited, check_user from node_cli.utils.exit_codes import CLIExitCodes from node_cli.utils.helper import error_exit, get_request, post_request from node_cli.utils.node_type import NodeType -from node_cli.utils.print_formatters import print_node_cmd_error, print_node_info_mirage +from node_cli.utils.print_formatters import print_node_cmd_error, print_node_info_fair from node_cli.utils.texts import safe_load_texts logger = logging.getLogger(__name__) TEXTS = safe_load_texts() -BLUEPRINT_NAME = 'mirage-node' +BLUEPRINT_NAME = 'fair-node' def get_node_info_plain() -> dict: @@ -62,22 +62,22 @@ def get_node_info(format): if format == 'json': print(node_info) else: - print_node_info_mirage(node_info) + print_node_info_fair(node_info) @check_not_inited -def restore_mirage(backup_path, env_filepath, config_only=False): - env = compose_node_env(env_filepath, node_type=NodeType.MIRAGE) +def restore_fair(backup_path, env_filepath, config_only=False): + env = compose_node_env(env_filepath, node_type=NodeType.FAIR) if env is None: return save_env_params(env_filepath) env['SKALE_DIR'] = SKALE_DIR - restored_ok = restore_mirage_op(env, backup_path, config_only=config_only) + restored_ok = restore_fair_op(env, backup_path, config_only=config_only) if not restored_ok: error_exit('Restore operation failed', exit_code=CLIExitCodes.OPERATION_EXECUTION_ERROR) time.sleep(RESTORE_SLEEP_TIMEOUT) - print('Mirage node is restored from backup') + print('Fair node is restored from backup') @check_inited @@ -85,85 +85,85 @@ def restore_mirage(backup_path, env_filepath, config_only=False): def migrate_from_boot( env_filepath: str, ) -> None: - logger.info('Migrating from boot to mirage node...') + logger.info('Migrating from boot to fair node...') env = compose_node_env( env_filepath, inited_node=True, sync_schains=False, - node_type=NodeType.MIRAGE, + node_type=NodeType.FAIR, ) - migrate_ok = update_mirage_op(env_filepath, env, update_type=MirageUpdateType.FROM_BOOT) - alive = is_base_containers_alive(node_type=NodeType.MIRAGE) + migrate_ok = update_fair_op(env_filepath, env, update_type=FairUpdateType.FROM_BOOT) + alive = is_base_containers_alive(node_type=NodeType.FAIR) if not migrate_ok or not alive: print_node_cmd_error() return else: - logger.info('Migration from boot to mirage completed successfully') + logger.info('Migration from boot to fair completed successfully') @check_inited @check_user def update(env_filepath: str, pull_config_for_schain: str | None = None) -> None: - logger.info('Updating mirage node...') + logger.info('Updating fair node...') env = compose_node_env( env_filepath, inited_node=True, sync_schains=False, - node_type=NodeType.MIRAGE, + node_type=NodeType.FAIR, pull_config_for_schain=pull_config_for_schain, ) - update_ok = update_mirage_op(env_filepath, env, update_type=MirageUpdateType.REGULAR) - alive = is_base_containers_alive(node_type=NodeType.MIRAGE) + update_ok = update_fair_op(env_filepath, env, update_type=FairUpdateType.REGULAR) + alive = is_base_containers_alive(node_type=NodeType.FAIR) if not update_ok or not alive: print_node_cmd_error() return else: - logger.info('Mirage update completed successfully') + logger.info('Fair update completed successfully') def request_repair(snapshot_from: str = '') -> None: - env = compose_node_env(SKALE_DIR_ENV_FILEPATH, save=False, node_type=NodeType.MIRAGE) - record = get_mirage_chain_record(env) + env = compose_node_env(SKALE_DIR_ENV_FILEPATH, save=False, node_type=NodeType.FAIR) + record = get_fair_chain_record(env) record.set_repair_ts(int(time.time())) record.set_snapshot_from(snapshot_from) - print(TEXTS['mirage']['node']['repair']['repair_requested']) + print(TEXTS['fair']['node']['repair']['repair_requested']) @check_inited @check_user def cleanup() -> None: - env = compose_node_env(SKALE_DIR_ENV_FILEPATH, save=False, node_type=NodeType.MIRAGE) - cleanup_mirage_op(env) - logger.info('Mirage node was cleaned up, all containers and data removed') + env = compose_node_env(SKALE_DIR_ENV_FILEPATH, save=False, node_type=NodeType.FAIR) + cleanup_fair_op(env) + logger.info('Fair node was cleaned up, all containers and data removed') cleanup_docker_configuration() @check_not_inited def init(env_filepath: str) -> None: - env = compose_node_env(env_filepath, node_type=NodeType.MIRAGE) + env = compose_node_env(env_filepath, node_type=NodeType.FAIR) if env is None: return save_env_params(env_filepath) env['SKALE_DIR'] = SKALE_DIR - init_ok = init_mirage_op(env_filepath, env) + init_ok = init_fair_op(env_filepath, env) if not init_ok: error_exit('Init operation failed', exit_code=CLIExitCodes.OPERATION_EXECUTION_ERROR) time.sleep(RESTORE_SLEEP_TIMEOUT) - print('Mirage node is initialized') + print('Fair node is initialized') @check_inited @check_user def register(ip: str) -> None: if not is_node_inited(): - print(TEXTS['mirage']['node']['not_inited']) + print(TEXTS['fair']['node']['not_inited']) return json_data = {'ip': ip, 'port': DEFAULT_SKALED_BASE_PORT} status, payload = post_request(blueprint=BLUEPRINT_NAME, method='register', json=json_data) if status == 'ok': - msg = TEXTS['mirage']['node']['registered'] + msg = TEXTS['fair']['node']['registered'] logger.info(msg) print(msg) else: diff --git a/node_cli/mirage/record/__init__.py b/node_cli/fair/record/__init__.py similarity index 100% rename from node_cli/mirage/record/__init__.py rename to node_cli/fair/record/__init__.py diff --git a/node_cli/mirage/record/chain_record.py b/node_cli/fair/record/chain_record.py similarity index 86% rename from node_cli/mirage/record/chain_record.py rename to node_cli/fair/record/chain_record.py index 36e0dbeb..a97ca9fe 100644 --- a/node_cli/mirage/record/chain_record.py +++ b/node_cli/fair/record/chain_record.py @@ -22,8 +22,8 @@ from typing import cast from datetime import datetime -from node_cli.core.static_config import get_mirage_chain_name -from node_cli.mirage.record.redis_record import FlatRedisRecord, FieldInfo +from node_cli.core.static_config import get_fair_chain_name +from node_cli.fair.record.redis_record import FlatRedisRecord, FieldInfo logger = logging.getLogger(__name__) @@ -70,12 +70,12 @@ def set_repair_ts(self, value: int | None) -> None: self._set_field('repair_ts', value) -def get_mirage_chain_record(env: dict) -> ChainRecord: - return ChainRecord(get_mirage_chain_name(env)) +def get_fair_chain_record(env: dict) -> ChainRecord: + return ChainRecord(get_fair_chain_name(env)) def migrate_chain_record(env: dict) -> None: version = env['CONTAINER_CONFIGS_STREAM'] - logger.info('Migrating mirage chain record, setting config version to %s', version) - record = get_mirage_chain_record(env) + logger.info('Migrating fair chain record, setting config version to %s', version) + record = get_fair_chain_record(env) record.set_config_version(version) diff --git a/node_cli/mirage/record/redis_record.py b/node_cli/fair/record/redis_record.py similarity index 100% rename from node_cli/mirage/record/redis_record.py rename to node_cli/fair/record/redis_record.py diff --git a/node_cli/main.py b/node_cli/main.py index 8ec7420a..28d87fe0 100644 --- a/node_cli/main.py +++ b/node_cli/main.py @@ -38,8 +38,8 @@ from node_cli.cli.ssl import ssl_cli from node_cli.cli.resources_allocation import resources_allocation_cli from node_cli.cli.sync_node import sync_node_cli -from node_cli.cli.mirage_boot import mirage_boot_cli -from node_cli.cli.mirage_node import mirage_node_cli +from node_cli.cli.fair_boot import fair_boot_cli +from node_cli.cli.fair_node import fair_node_cli from node_cli.core.host import init_logs_dir from node_cli.utils.node_type import NodeType from node_cli.configs import LONG_LINE @@ -85,12 +85,12 @@ def info(): def get_sources_list() -> List[click.MultiCommand]: if TYPE == NodeType.SYNC: return [cli, sync_node_cli, ssl_cli] - elif TYPE == NodeType.MIRAGE: + elif TYPE == NodeType.FAIR: return [ cli, logs_cli, - mirage_boot_cli, - mirage_node_cli, + fair_boot_cli, + fair_node_cli, wallet_cli, ssl_cli, ] diff --git a/node_cli/migrations/mirage/from_boot.py b/node_cli/migrations/fair/from_boot.py similarity index 97% rename from node_cli/migrations/mirage/from_boot.py rename to node_cli/migrations/fair/from_boot.py index 04578e68..6affdff3 100644 --- a/node_cli/migrations/mirage/from_boot.py +++ b/node_cli/migrations/fair/from_boot.py @@ -9,7 +9,7 @@ logger = logging.getLogger(__name__) NFT_CHAIN_BASE_PATH = '/etc/nft.conf.d/skale/chains' -NFT_COMMITTEE_SCOPE_CHAIN_NAME = 'mirage-committee' +NFT_COMMITTEE_SCOPE_CHAIN_NAME = 'fair-committee' class NoLegacyNFTChainConfigError(Exception): diff --git a/node_cli/operations/__init__.py b/node_cli/operations/__init__.py index 12c9ef63..4f3aa410 100644 --- a/node_cli/operations/__init__.py +++ b/node_cli/operations/__init__.py @@ -21,8 +21,8 @@ update as update_op, init as init_op, init_sync as init_sync_op, - init_mirage_boot as init_mirage_boot_op, - update_mirage_boot as update_mirage_boot_op, + init_fair_boot as init_fair_boot_op, + update_fair_boot as update_fair_boot_op, update_sync as update_sync_op, turn_off as turn_off_op, turn_on as turn_on_op, @@ -30,10 +30,10 @@ cleanup_sync as cleanup_sync_op, configure_nftables, ) -from node_cli.operations.mirage import ( # noqa - init as init_mirage_op, - update_mirage as update_mirage_op, - MirageUpdateType, - restore_mirage as restore_mirage_op, - cleanup as cleanup_mirage_op, +from node_cli.operations.fair import ( # noqa + init as init_fair_op, + update_fair as update_fair_op, + FairUpdateType, + restore_fair as restore_fair_op, + cleanup as cleanup_fair_op, ) diff --git a/node_cli/operations/base.py b/node_cli/operations/base.py index 7cf51910..a5e29a4c 100644 --- a/node_cli/operations/base.py +++ b/node_cli/operations/base.py @@ -66,7 +66,7 @@ remove_dynamic_containers, ) from node_cli.utils.helper import rm_dir, str_to_bool -from node_cli.utils.meta import CliMetaManager, MirageCliMetaManager +from node_cli.utils.meta import CliMetaManager, FairCliMetaManager from node_cli.utils.node_type import NodeType from node_cli.utils.print_formatters import print_failed_requirements_checks @@ -151,8 +151,8 @@ def update(env_filepath: str, env: Dict, node_type: NodeType) -> bool: @checked_host -def update_mirage_boot(env_filepath: str, env: Dict) -> bool: - compose_rm(node_type=NodeType.MIRAGE, env=env) +def update_fair_boot(env_filepath: str, env: Dict) -> bool: + compose_rm(node_type=NodeType.FAIR, env=env) remove_dynamic_containers() cleanup_volume_artifacts(env['DISK_MOUNTPOINT']) @@ -170,7 +170,7 @@ def update_mirage_boot(env_filepath: str, env: Dict) -> bool: prepare_host(env_filepath, env['ENV_TYPE']) - meta_manager = MirageCliMetaManager() + meta_manager = FairCliMetaManager() current_stream = meta_manager.get_meta_info().config_stream skip_cleanup = env.get('SKIP_DOCKER_CLEANUP') == 'True' if not skip_cleanup and current_stream != env['CONTAINER_CONFIGS_STREAM']: @@ -187,8 +187,8 @@ def update_mirage_boot(env_filepath: str, env: Dict) -> bool: distro.id(), distro.version(), ) - update_images(env=env, node_type=NodeType.MIRAGE) - compose_up(env=env, node_type=NodeType.MIRAGE, is_mirage_boot=True) + update_images(env=env, node_type=NodeType.FAIR) + compose_up(env=env, node_type=NodeType.FAIR, is_fair_boot=True) return True @@ -228,7 +228,7 @@ def init(env_filepath: str, env: dict, node_type: NodeType) -> None: @checked_host -def init_mirage_boot(env_filepath: str, env: dict) -> None: +def init_fair_boot(env_filepath: str, env: dict) -> None: sync_skale_node() cleanup_volume_artifacts(env['DISK_MOUNTPOINT']) @@ -247,16 +247,16 @@ def init_mirage_boot(env_filepath: str, env: dict) -> None: generate_nginx_config() prepare_block_device(env['DISK_MOUNTPOINT'], force=env['ENFORCE_BTRFS'] == 'True') - meta_manager = MirageCliMetaManager() + meta_manager = FairCliMetaManager() meta_manager.update_meta( VERSION, env['CONTAINER_CONFIGS_STREAM'], distro.id(), distro.version(), ) - update_images(env=env, node_type=NodeType.MIRAGE) + update_images(env=env, node_type=NodeType.FAIR) - compose_up(env=env, node_type=NodeType.MIRAGE, is_mirage_boot=True) + compose_up(env=env, node_type=NodeType.FAIR, is_fair_boot=True) def init_sync( diff --git a/node_cli/operations/mirage.py b/node_cli/operations/fair.py similarity index 81% rename from node_cli/operations/mirage.py rename to node_cli/operations/fair.py index b30c5038..0471c399 100644 --- a/node_cli/operations/mirage.py +++ b/node_cli/operations/fair.py @@ -36,8 +36,8 @@ from node_cli.core.nftables import configure_nftables from node_cli.core.nginx import generate_nginx_config from node_cli.core.schains import cleanup_datadir_for_single_chain_node -from node_cli.migrations.mirage.from_boot import migrate_nftables_from_boot -from node_cli.mirage.record.chain_record import migrate_chain_record +from node_cli.migrations.fair.from_boot import migrate_nftables_from_boot +from node_cli.fair.record.chain_record import migrate_chain_record from node_cli.operations.base import checked_host, turn_off from node_cli.operations.common import configure_filebeat, configure_flask, unpack_backup_archive from node_cli.operations.config_repo import ( @@ -56,13 +56,13 @@ wait_for_container, ) from node_cli.utils.helper import rm_dir, str_to_bool -from node_cli.utils.meta import MirageCliMetaManager +from node_cli.utils.meta import FairCliMetaManager from node_cli.utils.print_formatters import print_failed_requirements_checks logger = logging.getLogger(__name__) -class MirageUpdateType(Enum): +class FairUpdateType(Enum): REGULAR = 'regular' INFRA_ONLY = 'infra_only' FROM_BOOT = 'from_boot' @@ -87,23 +87,23 @@ def init(env_filepath: str, env: dict) -> bool: prepare_block_device(env['DISK_MOUNTPOINT'], force=env['ENFORCE_BTRFS'] == 'True') - meta_manager = MirageCliMetaManager() + meta_manager = FairCliMetaManager() meta_manager.update_meta( VERSION, env['CONTAINER_CONFIGS_STREAM'], distro.id(), distro.version(), ) - update_images(env=env, node_type=NodeType.MIRAGE) - compose_up(env=env, node_type=NodeType.MIRAGE) + update_images(env=env, node_type=NodeType.FAIR) + compose_up(env=env, node_type=NodeType.FAIR) wait_for_container(REDIS_SERVICE_DICT['redis']) time.sleep(REDIS_START_TIMEOUT) return True @checked_host -def update_mirage_boot(env_filepath: str, env: dict) -> bool: - compose_rm(node_type=NodeType.MIRAGE, env=env) +def update_fair_boot(env_filepath: str, env: dict) -> bool: + compose_rm(node_type=NodeType.FAIR, env=env) remove_dynamic_containers() cleanup_volume_artifacts(env['DISK_MOUNTPOINT']) @@ -121,7 +121,7 @@ def update_mirage_boot(env_filepath: str, env: dict) -> bool: prepare_host(env_filepath, env['ENV_TYPE']) - meta_manager = MirageCliMetaManager() + meta_manager = FairCliMetaManager() current_stream = meta_manager.get_meta_info().config_stream skip_cleanup = env.get('SKIP_DOCKER_CLEANUP') == 'True' if not skip_cleanup and current_stream != env['CONTAINER_CONFIGS_STREAM']: @@ -138,15 +138,15 @@ def update_mirage_boot(env_filepath: str, env: dict) -> bool: distro.id(), distro.version(), ) - update_images(env=env, node_type=NodeType.MIRAGE) - compose_up(env=env, node_type=NodeType.MIRAGE, is_mirage_boot=True) + update_images(env=env, node_type=NodeType.FAIR) + compose_up(env=env, node_type=NodeType.FAIR, is_fair_boot=True) return True @checked_host -def update_mirage(env_filepath: str, env: dict, update_type: MirageUpdateType) -> bool: - compose_rm(node_type=NodeType.MIRAGE, env=env) - if update_type not in (MirageUpdateType.INFRA_ONLY, MirageUpdateType.FROM_BOOT): +def update_fair(env_filepath: str, env: dict, update_type: FairUpdateType) -> bool: + compose_rm(node_type=NodeType.FAIR, env=env) + if update_type not in (FairUpdateType.INFRA_ONLY, FairUpdateType.FROM_BOOT): remove_dynamic_containers() sync_skale_node() @@ -159,7 +159,7 @@ def update_mirage(env_filepath: str, env: dict, update_type: MirageUpdateType) - generate_nginx_config() prepare_host(env_filepath, env['ENV_TYPE'], allocation=True) - meta_manager = MirageCliMetaManager() + meta_manager = FairCliMetaManager() current_stream = meta_manager.get_meta_info().config_stream skip_cleanup = env.get('SKIP_DOCKER_CLEANUP') == 'True' if not skip_cleanup and current_stream != env['CONTAINER_CONFIGS_STREAM']: @@ -177,22 +177,22 @@ def update_mirage(env_filepath: str, env: dict, update_type: MirageUpdateType) - distro.version(), ) - if update_type == MirageUpdateType.FROM_BOOT: + if update_type == FairUpdateType.FROM_BOOT: migrate_nftables_from_boot() - update_images(env=env, node_type=NodeType.MIRAGE) + update_images(env=env, node_type=NodeType.FAIR) - compose_up(env=env, node_type=NodeType.MIRAGE, services=list(REDIS_SERVICE_DICT)) + compose_up(env=env, node_type=NodeType.FAIR, services=list(REDIS_SERVICE_DICT)) wait_for_container(REDIS_SERVICE_DICT['redis']) time.sleep(REDIS_START_TIMEOUT) - if update_type == MirageUpdateType.FROM_BOOT: + if update_type == FairUpdateType.FROM_BOOT: migrate_chain_record(env) - compose_up(env=env, node_type=NodeType.MIRAGE) + compose_up(env=env, node_type=NodeType.FAIR) return True -def restore_mirage(env, backup_path, config_only=False): +def restore_fair(env, backup_path, config_only=False): unpack_backup_archive(backup_path) failed_checks = run_host_checks( env['DISK_MOUNTPOINT'], @@ -215,7 +215,7 @@ def restore_mirage(env, backup_path, config_only=False): link_env_file() - meta_manager = MirageCliMetaManager() + meta_manager = FairCliMetaManager() meta_manager.update_meta( VERSION, env['CONTAINER_CONFIGS_STREAM'], @@ -224,7 +224,7 @@ def restore_mirage(env, backup_path, config_only=False): ) if not config_only: - compose_up(env=env, node_type=NodeType.MIRAGE) + compose_up(env=env, node_type=NodeType.FAIR) failed_checks = run_host_checks( env['DISK_MOUNTPOINT'], @@ -240,7 +240,7 @@ def restore_mirage(env, backup_path, config_only=False): def cleanup(env) -> None: - turn_off(env, node_type=NodeType.MIRAGE) + turn_off(env, node_type=NodeType.FAIR) cleanup_datadir_for_single_chain_node() rm_dir(GLOBAL_SKALE_DIR) rm_dir(SKALE_DIR) diff --git a/node_cli/utils/docker_utils.py b/node_cli/utils/docker_utils.py index 0361eecd..6986d44e 100644 --- a/node_cli/utils/docker_utils.py +++ b/node_cli/utils/docker_utils.py @@ -31,7 +31,7 @@ from node_cli.configs import ( COMPOSE_PATH, - MIRAGE_COMPOSE_PATH, + FAIR_COMPOSE_PATH, NGINX_CONTAINER_NAME, REMOVED_CONTAINERS_FOLDER_PATH, SGX_CERTIFICATES_DIR_NAME, @@ -64,16 +64,16 @@ 'bounty': 'skale_bounty', } -BASE_MIRAGE_COMPOSE_SERVICES = { +BASE_FAIR_COMPOSE_SERVICES = { **CORE_COMMON_COMPOSE_SERVICES, - 'mirage-admin': 'mirage_admin', - 'mirage-api': 'mirage_api', + 'fair-admin': 'fair_admin', + 'fair-api': 'fair_api', } -BASE_MIRAGE_BOOT_COMPOSE_SERVICES = { +BASE_FAIR_BOOT_COMPOSE_SERVICES = { **CORE_COMMON_COMPOSE_SERVICES, - 'mirage-boot': 'mirage_boot_admin', - 'mirage-boot-api': 'mirage_boot_api', + 'fair-boot': 'fair_boot_admin', + 'fair-boot-api': 'fair_boot_api', } BASE_SYNC_COMPOSE_SERVICES = { @@ -285,8 +285,8 @@ def compose_build(env: dict, node_type: NodeType): def get_compose_path(node_type: NodeType) -> str: if node_type == NodeType.SYNC: return SYNC_COMPOSE_PATH - elif node_type == NodeType.MIRAGE: - return MIRAGE_COMPOSE_PATH + elif node_type == NodeType.FAIR: + return FAIR_COMPOSE_PATH else: return COMPOSE_PATH @@ -294,8 +294,8 @@ def get_compose_path(node_type: NodeType) -> str: def get_compose_services(node_type: NodeType) -> list[str]: if node_type == NodeType.SYNC: result = list(BASE_SYNC_COMPOSE_SERVICES) - elif node_type == NodeType.MIRAGE: - result = list(BASE_MIRAGE_COMPOSE_SERVICES) + elif node_type == NodeType.FAIR: + result = list(BASE_FAIR_COMPOSE_SERVICES) else: result = list(BASE_SKALE_COMPOSE_SERVICES) @@ -312,7 +312,7 @@ def get_up_compose_cmd(node_type: NodeType, services: list[str] | None = None) - def compose_up( - env, node_type: NodeType, is_mirage_boot: bool = False, services: list[str] | None = None + env, node_type: NodeType, is_fair_boot: bool = False, services: list[str] | None = None ): if node_type == NodeType.SYNC: logger.info('Running containers for sync node') @@ -322,19 +322,19 @@ def compose_up( if 'SGX_CERTIFICATES_DIR_NAME' not in env: env['SGX_CERTIFICATES_DIR_NAME'] = SGX_CERTIFICATES_DIR_NAME - if node_type == NodeType.MIRAGE: - logger.info('Running mirage base set of containers') - if is_mirage_boot: - logger.debug('Launching mirage boot containers with env %s', env) + if node_type == NodeType.FAIR: + logger.info('Running fair base set of containers') + if is_fair_boot: + logger.debug('Launching fair boot containers with env %s', env) run_cmd( cmd=get_up_compose_cmd( - node_type=NodeType.MIRAGE, services=list(BASE_MIRAGE_BOOT_COMPOSE_SERVICES) + node_type=NodeType.FAIR, services=list(BASE_FAIR_BOOT_COMPOSE_SERVICES) ), env=env, ) else: - logger.debug('Launching mirage containers with env %s', env) - run_cmd(cmd=get_up_compose_cmd(node_type=NodeType.MIRAGE, services=services), env=env) + logger.debug('Launching fair containers with env %s', env) + run_cmd(cmd=get_up_compose_cmd(node_type=NodeType.FAIR, services=services), env=env) else: logger.info('Running skale node base set of containers') logger.debug('Launching skale node containers with env %s', env) @@ -394,15 +394,15 @@ def is_container_running(name: str, dclient: Optional[DockerClient] = None) -> b def is_api_running(node_type: NodeType, dclient: Optional[DockerClient] = None) -> bool: - if node_type == NodeType.MIRAGE: - return is_container_running(name='mirage_api', dclient=dclient) + if node_type == NodeType.FAIR: + return is_container_running(name='fair_api', dclient=dclient) else: return is_container_running(name='skale_api', dclient=dclient) def is_admin_running(node_type: NodeType, client: Optional[DockerClient] = None) -> bool: - if node_type == NodeType.MIRAGE: - result = is_container_running(name='mirage_admin', dclient=client) + if node_type == NodeType.FAIR: + result = is_container_running(name='fair_admin', dclient=client) elif node_type == NodeType.SYNC: result = is_container_running(name='skale_sync_admin', dclient=client) else: diff --git a/node_cli/utils/meta.py b/node_cli/utils/meta.py index 556f5002..0dafd54d 100644 --- a/node_cli/utils/meta.py +++ b/node_cli/utils/meta.py @@ -39,7 +39,7 @@ def asdict(self) -> dict: @dataclass -class MirageCliMeta(CliMetaBase): +class FairCliMeta(CliMetaBase): def asdict(self) -> dict: return { 'version': self.version, @@ -121,19 +121,19 @@ def update_meta( self.save_meta(meta) -class MirageCliMetaManager(BaseCliMetaManager): - def get_meta_info(self, raw: bool = False) -> MirageCliMeta | dict | None: +class FairCliMetaManager(BaseCliMetaManager): + def get_meta_info(self, raw: bool = False) -> FairCliMeta | dict | None: plain_meta = self._get_plain_meta() if not raw and not plain_meta: return None - allowed_fields = set(MirageCliMeta.__dataclass_fields__.keys()) + allowed_fields = set(FairCliMeta.__dataclass_fields__.keys()) clean_plain_meta = {k: v for k, v in plain_meta.items() if k in allowed_fields} if raw: return clean_plain_meta - return MirageCliMeta(**clean_plain_meta) + return FairCliMeta(**clean_plain_meta) - def compose_default_meta(self) -> MirageCliMeta: - return MirageCliMeta( + def compose_default_meta(self) -> FairCliMeta: + return FairCliMeta( version=DEFAULT_VERSION, config_stream=DEFAULT_CONFIG_STREAM, os_id=DEFAULT_OS_ID, @@ -148,5 +148,5 @@ def update_meta( os_version: str, ) -> None: self.ensure_meta() - meta = MirageCliMeta(version, config_stream, os_id, os_version) + meta = FairCliMeta(version, config_stream, os_id, os_version) self.save_meta(meta) diff --git a/node_cli/utils/node_type.py b/node_cli/utils/node_type.py index 341479f4..f35d4640 100644 --- a/node_cli/utils/node_type.py +++ b/node_cli/utils/node_type.py @@ -23,4 +23,4 @@ class NodeType(Enum): REGULAR = 0 SYNC = 1 - MIRAGE = 2 + FAIR = 2 diff --git a/node_cli/utils/print_formatters.py b/node_cli/utils/print_formatters.py index e4c8aabf..1fd1ca33 100644 --- a/node_cli/utils/print_formatters.py +++ b/node_cli/utils/print_formatters.py @@ -46,13 +46,13 @@ def print_wallet_info(wallet): ) -def print_mirage_wallet_info(wallet): +def print_fair_wallet_info(wallet): print( inspect.cleandoc(f""" {LONG_LINE} Address: {wallet['address'].lower()} - Node balance: {wallet['mirage_balance']} MIRAGE - Node balance WEI: {wallet['mirage_balance_wei']} MIRAGE WEI + Node balance: {wallet['fair_balance']} FAIR + Node balance WEI: {wallet['fair_balance_wei']} FAIR WEI {LONG_LINE} """) ) @@ -258,7 +258,7 @@ def print_node_info(node, node_status): ) -def print_node_info_mirage(node): +def print_node_info_fair(node): print( inspect.cleandoc(f""" {LONG_LINE} diff --git a/scripts/build.sh b/scripts/build.sh old mode 100755 new mode 100644 index d99bb45a..810e85b9 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -24,7 +24,7 @@ fi if [ -z "$3" ] then - (>&2 echo 'You should provide type: normal, sync or mirage') + (>&2 echo 'You should provide type: normal, sync or fair') echo $USAGE_MSG exit 1 fi @@ -39,8 +39,8 @@ OS=`uname -s`-`uname -m` if [ "$TYPE" = "sync" ]; then EXECUTABLE_NAME=skale-$VERSION-$OS-sync -elif [ "$TYPE" = "mirage" ]; then - EXECUTABLE_NAME=skale-$VERSION-$OS-mirage +elif [ "$TYPE" = "fair" ]; then + EXECUTABLE_NAME=skale-$VERSION-$OS-fair else EXECUTABLE_NAME=skale-$VERSION-$OS fi diff --git a/scripts/generate_info.sh b/scripts/generate_info.sh old mode 100755 new mode 100644 index f5933f91..f4993b7e --- a/scripts/generate_info.sh +++ b/scripts/generate_info.sh @@ -18,7 +18,7 @@ if [ -z "$BRANCH" ]; then exit 1 fi if [ -z "$TYPE_STR" ]; then - (>&2 echo 'You should provide type: normal, sync or mirage') + (>&2 echo 'You should provide type: normal, sync or fair') echo $USAGE_MSG exit 1 fi @@ -38,11 +38,11 @@ case "$TYPE_STR" in sync) TYPE_ENUM="NodeType.SYNC" ;; - mirage) - TYPE_ENUM="NodeType.MIRAGE" + fair) + TYPE_ENUM="NodeType.FAIR" ;; *) - (>&2 echo "Error: Invalid type '$TYPE_STR'. Must be 'normal', 'sync', or 'mirage'") + (>&2 echo "Error: Invalid type '$TYPE_STR'. Must be 'normal', 'sync', or 'fair'") exit 1 ;; esac diff --git a/tests/cli/mirage_cli_test.py b/tests/cli/fair_cli_test.py similarity index 75% rename from tests/cli/mirage_cli_test.py rename to tests/cli/fair_cli_test.py index fb7462cd..d29ae357 100644 --- a/tests/cli/mirage_cli_test.py +++ b/tests/cli/fair_cli_test.py @@ -3,20 +3,20 @@ from click.testing import CliRunner -from node_cli.cli.mirage_boot import ( +from node_cli.cli.fair_boot import ( init_boot, register_boot, signature_boot, ) -from node_cli.cli.mirage_node import ( +from node_cli.cli.fair_node import ( backup_node, migrate_node, restore_node, ) -@mock.patch('node_cli.cli.mirage_node.restore_mirage') -def test_mirage_node_restore(mock_restore_core, valid_env_file, tmp_path): +@mock.patch('node_cli.cli.fair_node.restore_fair') +def test_fair_node_restore(mock_restore_core, valid_env_file, tmp_path): runner = CliRunner() backup_file = tmp_path / 'backup.tar.gz' backup_file.touch() @@ -28,8 +28,8 @@ def test_mirage_node_restore(mock_restore_core, valid_env_file, tmp_path): mock_restore_core.assert_called_once_with(backup_path, valid_env_file, False) -@mock.patch('node_cli.cli.mirage_node.restore_mirage') -def test_mirage_node_restore_config_only(mock_restore_core, valid_env_file, tmp_path): +@mock.patch('node_cli.cli.fair_node.restore_fair') +def test_fair_node_restore_config_only(mock_restore_core, valid_env_file, tmp_path): runner = CliRunner() backup_file = tmp_path / 'backup_config.tar.gz' backup_file.touch() @@ -41,8 +41,8 @@ def test_mirage_node_restore_config_only(mock_restore_core, valid_env_file, tmp_ mock_restore_core.assert_called_once_with(backup_path, valid_env_file, True) -@mock.patch('node_cli.cli.mirage_node.backup') -def test_mirage_node_backup(mock_backup_core, tmp_path): +@mock.patch('node_cli.cli.fair_node.backup') +def test_fair_node_backup(mock_backup_core, tmp_path): runner = CliRunner() backup_folder = str(tmp_path / 'backups') pathlib.Path(backup_folder).mkdir(exist_ok=True) @@ -53,8 +53,8 @@ def test_mirage_node_backup(mock_backup_core, tmp_path): mock_backup_core.assert_called_once_with(backup_folder) -@mock.patch('node_cli.cli.mirage_boot.register') -def test_mirage_boot_register(mock_register_core): +@mock.patch('node_cli.cli.fair_boot.register') +def test_fair_boot_register(mock_register_core): runner = CliRunner() name = 'test-boot-node' ip = '1.2.3.4' @@ -71,8 +71,8 @@ def test_mirage_boot_register(mock_register_core): ) -@mock.patch('node_cli.cli.mirage_boot.get_node_signature') -def test_mirage_boot_signature(mock_signature_core): +@mock.patch('node_cli.cli.fair_boot.get_node_signature') +def test_fair_boot_signature(mock_signature_core): runner = CliRunner() validator_id = '101' signature_val = '0xdef456' @@ -85,8 +85,8 @@ def test_mirage_boot_signature(mock_signature_core): assert f'Signature: {signature_val}' in result.output -@mock.patch('node_cli.cli.mirage_boot.init') -def test_mirage_boot_init(mock_init_core, valid_env_file): +@mock.patch('node_cli.cli.fair_boot.init') +def test_fair_boot_init(mock_init_core, valid_env_file): runner = CliRunner() result = runner.invoke(init_boot, [valid_env_file]) @@ -94,8 +94,8 @@ def test_mirage_boot_init(mock_init_core, valid_env_file): mock_init_core.assert_called_once_with(valid_env_file) -@mock.patch('node_cli.cli.mirage_node.migrate_from_boot') -def test_mirage_node_migrate(mock_migrate_core, valid_env_file): +@mock.patch('node_cli.cli.fair_node.migrate_from_boot') +def test_fair_node_migrate(mock_migrate_core, valid_env_file): runner = CliRunner() result = runner.invoke(migrate_node, ['--yes', valid_env_file]) diff --git a/tests/cli/node_test.py b/tests/cli/node_test.py index 60344b71..834d85f9 100644 --- a/tests/cli/node_test.py +++ b/tests/cli/node_test.py @@ -326,7 +326,7 @@ def test_backup(): 'node_type,test_user_conf', [ (NodeType.REGULAR, 'regular_user_conf'), - (NodeType.MIRAGE, 'mirage_user_conf'), + (NodeType.FAIR, 'fair_user_conf'), (NodeType.SYNC, 'sync_user_conf'), ], ) diff --git a/tests/configs/configs_env_validate_test.py b/tests/configs/configs_env_validate_test.py index a9703b38..be7d1eb8 100644 --- a/tests/configs/configs_env_validate_test.py +++ b/tests/configs/configs_env_validate_test.py @@ -14,8 +14,8 @@ ) from node_cli.configs.user import ( ALLOWED_ENV_TYPES, - MirageBootUserConfig, - MirageUserConfig, + FairBootUserConfig, + FairUserConfig, SkaleUserConfig, SyncUserConfig, get_user_config_class, @@ -37,17 +37,17 @@ def json(self): @pytest.mark.parametrize( - 'node_type, is_mirage_boot, expected_type', + 'node_type, is_fair_boot, expected_type', [ (NodeType.REGULAR, False, SkaleUserConfig), (NodeType.SYNC, False, SyncUserConfig), - (NodeType.MIRAGE, True, MirageBootUserConfig), - (NodeType.MIRAGE, False, MirageUserConfig), + (NodeType.FAIR, True, FairBootUserConfig), + (NodeType.FAIR, False, FairUserConfig), ], - ids=['regular', 'sync', 'mirage_boot', 'mirage_regular'], + ids=['regular', 'sync', 'fair_boot', 'fair_regular'], ) -def test_build_env_params_keys(node_type, is_mirage_boot, expected_type): - env_type = get_user_config_class(node_type=node_type, is_mirage_boot=is_mirage_boot) +def test_build_env_params_keys(node_type, is_fair_boot, expected_type): + env_type = get_user_config_class(node_type=node_type, is_fair_boot=is_fair_boot) assert env_type == expected_type diff --git a/tests/conftest.py b/tests/conftest.py index c6f71fac..05da0fae 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -324,7 +324,7 @@ def regular_user_conf(tmp_path): @pytest.fixture -def mirage_user_conf(tmp_path): +def fair_user_conf(tmp_path): test_env_path = pathlib.Path(tmp_path / 'test-env') try: test_env = """ @@ -335,7 +335,7 @@ def mirage_user_conf(tmp_path): DISK_MOUNTPOINT=/dev/sss ENV_TYPE='devnet' ENFORCE_BTRFS=False - MIRAGE_CONTRACTS='test-mirage' + FAIR_CONTRACTS='test-fair' """ with open(test_env_path, 'w') as env_file: env_file.write(test_env) @@ -345,7 +345,7 @@ def mirage_user_conf(tmp_path): @pytest.fixture -def mirage_boot_user_conf(tmp_path): +def fair_boot_user_conf(tmp_path): test_env_path = pathlib.Path(tmp_path / 'test-env') try: test_env = """ diff --git a/tests/core/core_checks_test.py b/tests/core/core_checks_test.py index cd3a6acb..a4f7d437 100644 --- a/tests/core/core_checks_test.py +++ b/tests/core/core_checks_test.py @@ -40,7 +40,7 @@ def requirements_data(): @pytest.fixture -def mirage_requirements_data(requirements_data): +def fair_requirements_data(requirements_data): reqs = {k: v.copy() for k, v in requirements_data.items()} reqs['package']['lvm2'] = 'disabled' return reqs @@ -338,16 +338,16 @@ def test_get_checks(requirements_data): assert len(checks) == 2 -def test_get_checks_mirage(mirage_requirements_data): +def test_get_checks_fair(fair_requirements_data): disk = 'test-disk' - mirage_checkers = get_all_checkers(disk, mirage_requirements_data) - - mirage_all_checks = get_checks(mirage_checkers, CheckType.ALL) - mirage_all_names = {f.func.__name__ for f in mirage_all_checks} - assert 'network' in mirage_all_names - assert 'lvm2' not in mirage_all_names - assert 'cpu_total' in mirage_all_names - assert 'btrfs_progs' in mirage_all_names + fair_checkers = get_all_checkers(disk, fair_requirements_data) + + fair_all_checks = get_checks(fair_checkers, CheckType.ALL) + fair_all_names = {f.func.__name__ for f in fair_all_checks} + assert 'network' in fair_all_names + assert 'lvm2' not in fair_all_names + assert 'cpu_total' in fair_all_names + assert 'btrfs_progs' in fair_all_names def test_get_save_report(tmp_dir_path): diff --git a/tests/core/core_node_test.py b/tests/core/core_node_test.py index fb1484d6..894e07b6 100644 --- a/tests/core/core_node_test.py +++ b/tests/core/core_node_test.py @@ -33,15 +33,15 @@ WRONG_CONTAINERS = [ 'WRONG_CONTAINER_1', 'skale_WRONG_CONTAINER_4', - 'mirage_WRONG_CONTAINER_6', + 'fair_WRONG_CONTAINER_6', 'sync_WRONG_CONTAINER_8', ] NODE_TYPE_BOOT_COMBINATIONS: list[tuple[NodeType, bool]] = [ (NodeType.REGULAR, False), (NodeType.SYNC, False), - (NodeType.MIRAGE, True), - (NodeType.MIRAGE, False), + (NodeType.FAIR, True), + (NodeType.FAIR, False), ] alive_test_params = [ @@ -120,7 +120,7 @@ def manage_node_containers(request): indirect=['manage_node_containers'], ) def test_is_base_containers_alive(manage_node_containers, node_type, is_boot): - assert is_base_containers_alive(node_type=node_type, is_mirage_boot=is_boot) is True + assert is_base_containers_alive(node_type=node_type, is_fair_boot=is_boot) is True @pytest.mark.parametrize( @@ -129,7 +129,7 @@ def test_is_base_containers_alive(manage_node_containers, node_type, is_boot): indirect=['manage_node_containers'], ) def test_is_base_containers_alive_wrong(manage_node_containers, node_type, is_boot): - assert is_base_containers_alive(node_type=node_type, is_mirage_boot=is_boot) is False + assert is_base_containers_alive(node_type=node_type, is_fair_boot=is_boot) is False @pytest.mark.parametrize( @@ -138,12 +138,12 @@ def test_is_base_containers_alive_wrong(manage_node_containers, node_type, is_bo indirect=['manage_node_containers'], ) def test_is_base_containers_alive_missing(manage_node_containers, node_type, is_boot): - assert is_base_containers_alive(node_type=node_type, is_mirage_boot=is_boot) is False + assert is_base_containers_alive(node_type=node_type, is_fair_boot=is_boot) is False @pytest.mark.parametrize('node_type, is_boot', NODE_TYPE_BOOT_COMBINATIONS) def test_is_base_containers_alive_empty(node_type, is_boot): - assert is_base_containers_alive(node_type=node_type, is_mirage_boot=is_boot) is False + assert is_base_containers_alive(node_type=node_type, is_fair_boot=is_boot) is False @pytest.mark.parametrize( @@ -183,8 +183,8 @@ def test_is_base_containers_alive_empty(node_type, is_boot): False, ), ( - NodeType.MIRAGE, - 'mirage_boot_user_conf', + NodeType.FAIR, + 'fair_boot_user_conf', True, True, False, @@ -193,8 +193,8 @@ def test_is_base_containers_alive_empty(node_type, is_boot): False, ), ( - NodeType.MIRAGE, - 'mirage_user_conf', + NodeType.FAIR, + 'fair_user_conf', False, True, False, @@ -207,8 +207,8 @@ def test_is_base_containers_alive_empty(node_type, is_boot): 'regular', 'regular_sync_flag', 'sync', - 'mirage_boot', - 'mirage_regular', + 'fair_boot', + 'fair_regular', ], ) def test_compose_node_env( @@ -234,7 +234,7 @@ def test_compose_node_env( inited_node=inited_node, sync_schains=sync_schains, node_type=node_type, - is_mirage_boot=is_boot, + is_fair_boot=is_boot, save=True, ) @@ -358,7 +358,7 @@ def test_update_node(regular_user_conf, mocked_g_config, resource_file, inited_n assert result is None -@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.SYNC, NodeType.MIRAGE]) +@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.SYNC, NodeType.FAIR]) @mock.patch('node_cli.core.node.is_admin_running', return_value=False) @mock.patch('node_cli.core.node.is_api_running', return_value=False) @mock.patch('node_cli.utils.helper.requests.get') @@ -379,7 +379,7 @@ def test_is_update_safe_when_admin_not_running_for_sync( mock_requests_get.assert_not_called() -@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.SYNC, NodeType.MIRAGE]) +@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.SYNC, NodeType.FAIR]) @pytest.mark.parametrize( 'api_is_safe, expected_result', [(True, True), (False, False)], @@ -395,7 +395,7 @@ def test_is_update_safe_when_admin_running( mock_requests_get.assert_called_once() -@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.MIRAGE]) +@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.FAIR]) @pytest.mark.parametrize( 'api_is_safe, expected_result', [(True, True), (False, False)], @@ -417,7 +417,7 @@ def test_is_update_safe_when_only_api_running_for_regular( mock_requests_get.assert_called_once() -@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.SYNC, NodeType.MIRAGE]) +@pytest.mark.parametrize('node_type', [NodeType.REGULAR, NodeType.SYNC, NodeType.FAIR]) @mock.patch('node_cli.core.node.is_admin_running', return_value=True) @mock.patch('node_cli.utils.helper.requests.get') def test_is_update_safe_when_api_call_fails(mock_requests_get, mock_is_admin_running, node_type): diff --git a/tests/core/nginx_test.py b/tests/core/nginx_test.py index b19a21ca..56b6eb49 100644 --- a/tests/core/nginx_test.py +++ b/tests/core/nginx_test.py @@ -63,16 +63,16 @@ def nginx_template(): (NodeType.REGULAR, False, True, False), (NodeType.SYNC, True, True, True), (NodeType.SYNC, False, True, False), - (NodeType.MIRAGE, True, False, True), - (NodeType.MIRAGE, False, False, False), + (NodeType.FAIR, True, False, True), + (NodeType.FAIR, False, False, False), ], ids=[ 'regular_ssl_on', 'regular_ssl_off', 'regular_ssl_on', 'regular_ssl_off', - 'mirage_ssl_on', - 'mirage_ssl_off', + 'fair_ssl_on', + 'fair_ssl_off', ], ) @mock.patch('node_cli.core.nginx.check_ssl_certs') @@ -134,7 +134,7 @@ def test_check_ssl_certs_missing_both(ssl_folder): [ (NodeType.REGULAR, True), (NodeType.SYNC, True), - (NodeType.MIRAGE, False), + (NodeType.FAIR, False), ], ) @mock.patch('node_cli.core.nginx.TYPE') diff --git a/tests/mirage/__init__.py b/tests/fair/__init__.py similarity index 100% rename from tests/mirage/__init__.py rename to tests/fair/__init__.py diff --git a/tests/mirage/mirage_node_test.py b/tests/fair/fair_node_test.py similarity index 61% rename from tests/mirage/mirage_node_test.py rename to tests/fair/fair_node_test.py index f4f9d340..fab00451 100644 --- a/tests/mirage/mirage_node_test.py +++ b/tests/fair/fair_node_test.py @@ -5,19 +5,19 @@ from node_cli.configs import SKALE_DIR from node_cli.configs.user import SKALE_DIR_ENV_FILEPATH -from node_cli.mirage.mirage_boot import init as init_boot -from node_cli.mirage.mirage_boot import update -from node_cli.mirage.mirage_node import cleanup, migrate_from_boot, request_repair, restore_mirage -from node_cli.operations.mirage import MirageUpdateType +from node_cli.fair.fair_boot import init as init_boot +from node_cli.fair.fair_boot import update +from node_cli.fair.fair_node import cleanup, migrate_from_boot, request_repair, restore_fair +from node_cli.operations.fair import FairUpdateType from node_cli.utils.node_type import NodeType from tests.helper import CURRENT_DATETIME, CURRENT_TIMESTAMP -@mock.patch('node_cli.mirage.mirage_node.time.sleep') -@mock.patch('node_cli.mirage.mirage_node.restore_mirage_op') -@mock.patch('node_cli.mirage.mirage_node.save_env_params') -@mock.patch('node_cli.mirage.mirage_node.compose_node_env') -def test_restore_mirage( +@mock.patch('node_cli.fair.fair_node.time.sleep') +@mock.patch('node_cli.fair.fair_node.restore_fair_op') +@mock.patch('node_cli.fair.fair_node.save_env_params') +@mock.patch('node_cli.fair.fair_node.compose_node_env') +def test_restore_fair( mock_compose_env, mock_save_env, mock_restore_op, @@ -30,20 +30,20 @@ def test_restore_mirage( mock_restore_op.return_value = True backup_path = '/fake/backup' - restore_mirage(backup_path, valid_env_file) + restore_fair(backup_path, valid_env_file) - mock_compose_env.assert_called_once_with(valid_env_file, node_type=NodeType.MIRAGE) + mock_compose_env.assert_called_once_with(valid_env_file, node_type=NodeType.FAIR) mock_save_env.assert_called_once_with(valid_env_file) expected_env = {**mock_env, 'SKALE_DIR': SKALE_DIR} mock_restore_op.assert_called_once_with(expected_env, backup_path, config_only=False) mock_sleep.assert_called_once() -@mock.patch('node_cli.mirage.mirage_boot.is_base_containers_alive', return_value=True) -@mock.patch('node_cli.mirage.mirage_boot.time.sleep') -@mock.patch('node_cli.mirage.mirage_boot.init_mirage_boot_op') -@mock.patch('node_cli.mirage.mirage_boot.compose_node_env') -def test_init_mirage_boot( +@mock.patch('node_cli.fair.fair_boot.is_base_containers_alive', return_value=True) +@mock.patch('node_cli.fair.fair_boot.time.sleep') +@mock.patch('node_cli.fair.fair_boot.init_fair_boot_op') +@mock.patch('node_cli.fair.fair_boot.compose_node_env') +def test_init_fair_boot( mock_compose_env, mock_init_op, mock_sleep, @@ -58,20 +58,20 @@ def test_init_mirage_boot( mock_compose_env.assert_called_once_with( valid_env_file, - node_type=NodeType.MIRAGE, - is_mirage_boot=True, + node_type=NodeType.FAIR, + is_fair_boot=True, ) mock_init_op.assert_called_once_with(valid_env_file, mock_env) mock_sleep.assert_called_once() - mock_is_alive.assert_called_once_with(node_type=NodeType.MIRAGE, is_mirage_boot=True) + mock_is_alive.assert_called_once_with(node_type=NodeType.FAIR, is_fair_boot=True) @mock.patch('node_cli.utils.decorators.is_user_valid', return_value=True) -@mock.patch('node_cli.mirage.mirage_boot.is_base_containers_alive', return_value=True) -@mock.patch('node_cli.mirage.mirage_boot.time.sleep') -@mock.patch('node_cli.mirage.mirage_boot.update_mirage_boot_op') -@mock.patch('node_cli.mirage.mirage_boot.compose_node_env') -def test_update_mirage_boot( +@mock.patch('node_cli.fair.fair_boot.is_base_containers_alive', return_value=True) +@mock.patch('node_cli.fair.fair_boot.time.sleep') +@mock.patch('node_cli.fair.fair_boot.update_fair_boot_op') +@mock.patch('node_cli.fair.fair_boot.compose_node_env') +def test_update_fair_boot( mock_compose_env, mock_update_op, mock_sleep, @@ -85,7 +85,7 @@ def test_update_mirage_boot( mock_env = {'ENV_TYPE': 'devnet'} mock_compose_env.return_value = mock_env mock_update_op.return_value = True - pull_config_for_schain = 'mirage' + pull_config_for_schain = 'fair' update(valid_env_file, pull_config_for_schain) @@ -94,16 +94,16 @@ def test_update_mirage_boot( inited_node=True, sync_schains=False, pull_config_for_schain=pull_config_for_schain, - node_type=NodeType.MIRAGE, - is_mirage_boot=True, + node_type=NodeType.FAIR, + is_fair_boot=True, ) mock_update_op.assert_called_once_with(valid_env_file, mock_env) mock_sleep.assert_called_once() - mock_is_alive.assert_called_once_with(node_type=NodeType.MIRAGE, is_mirage_boot=True) + mock_is_alive.assert_called_once_with(node_type=NodeType.FAIR, is_fair_boot=True) -@mock.patch('node_cli.mirage.mirage_node.update_mirage_op') -@mock.patch('node_cli.mirage.mirage_node.compose_node_env') +@mock.patch('node_cli.fair.fair_node.update_fair_op') +@mock.patch('node_cli.fair.fair_node.compose_node_env') @mock.patch('node_cli.utils.decorators.is_user_valid', return_value=True) def test_migrate_from_boot( mock_is_user_valid, @@ -124,17 +124,17 @@ def test_migrate_from_boot( valid_env_file, inited_node=True, sync_schains=False, - node_type=NodeType.MIRAGE, + node_type=NodeType.FAIR, ) mock_migrate_op.assert_called_once_with( - valid_env_file, mock_env, update_type=MirageUpdateType.FROM_BOOT + valid_env_file, mock_env, update_type=FairUpdateType.FROM_BOOT ) @freezegun.freeze_time(CURRENT_DATETIME) -@mock.patch('node_cli.mirage.mirage_node.compose_node_env', return_value={'ENV_TYPE': 'devnet'}) -@mock.patch('node_cli.mirage.record.chain_record.get_mirage_chain_name', return_value='test') -def test_mirage_repair(compose_node_env_mock, get_static_params_mock, redis_client, inited_node): +@mock.patch('node_cli.fair.fair_node.compose_node_env', return_value={'ENV_TYPE': 'devnet'}) +@mock.patch('node_cli.fair.record.chain_record.get_fair_chain_name', return_value='test') +def test_fair_repair(compose_node_env_mock, get_static_params_mock, redis_client, inited_node): request_repair() assert redis_client.get('test_repair_ts') == f'{CURRENT_TIMESTAMP}'.encode('utf-8') assert redis_client.get('test_snapshot_from') == b'' @@ -144,12 +144,12 @@ def test_mirage_repair(compose_node_env_mock, get_static_params_mock, redis_clie @mock.patch('node_cli.utils.decorators.is_user_valid', return_value=True) -@mock.patch('node_cli.mirage.mirage_node.cleanup_docker_configuration') -@mock.patch('node_cli.mirage.mirage_node.cleanup_mirage_op') -@mock.patch('node_cli.mirage.mirage_node.compose_node_env') +@mock.patch('node_cli.fair.fair_node.cleanup_docker_configuration') +@mock.patch('node_cli.fair.fair_node.cleanup_fair_op') +@mock.patch('node_cli.fair.fair_node.compose_node_env') def test_cleanup_success( mock_compose_env, - mock_cleanup_mirage_op, + mock_cleanup_fair_op, mock_cleanup_docker_config, mock_is_user_valid, inited_node, @@ -162,54 +162,54 @@ def test_cleanup_success( cleanup() mock_compose_env.assert_called_once_with( - SKALE_DIR_ENV_FILEPATH, save=False, node_type=NodeType.MIRAGE + SKALE_DIR_ENV_FILEPATH, save=False, node_type=NodeType.FAIR ) - mock_cleanup_mirage_op.assert_called_once_with(mock_env) + mock_cleanup_fair_op.assert_called_once_with(mock_env) mock_cleanup_docker_config.assert_called_once() @mock.patch('node_cli.utils.decorators.is_user_valid', return_value=True) -@mock.patch('node_cli.mirage.mirage_node.cleanup_docker_configuration') -@mock.patch('node_cli.mirage.mirage_node.cleanup_mirage_op') -@mock.patch('node_cli.mirage.mirage_node.compose_node_env') +@mock.patch('node_cli.fair.fair_node.cleanup_docker_configuration') +@mock.patch('node_cli.fair.fair_node.cleanup_fair_op') +@mock.patch('node_cli.fair.fair_node.compose_node_env') def test_cleanup_calls_operations_in_correct_order( mock_compose_env, - mock_cleanup_mirage_op, + mock_cleanup_fair_op, mock_cleanup_docker_config, mock_is_user_valid, inited_node, resource_alloc, meta_file_v3, ): - from node_cli.mirage.mirage_node import cleanup + from node_cli.fair.fair_node import cleanup mock_env = {'ENV_TYPE': 'devnet'} mock_compose_env.return_value = mock_env manager = mock.Mock() manager.attach_mock(mock_compose_env, 'compose_env') - manager.attach_mock(mock_cleanup_mirage_op, 'cleanup_mirage_op') + manager.attach_mock(mock_cleanup_fair_op, 'cleanup_fair_op') manager.attach_mock(mock_cleanup_docker_config, 'cleanup_docker_config') cleanup() expected_calls = [ mock.call.compose_env(mock.ANY, save=False, node_type=mock.ANY), - mock.call.cleanup_mirage_op(mock_env), + mock.call.cleanup_fair_op(mock_env), mock.call.cleanup_docker_config(), ] manager.assert_has_calls(expected_calls, any_order=False) @mock.patch('node_cli.utils.decorators.is_user_valid', return_value=True) -@mock.patch('node_cli.mirage.mirage_node.cleanup_docker_configuration') +@mock.patch('node_cli.fair.fair_node.cleanup_docker_configuration') @mock.patch( - 'node_cli.mirage.mirage_node.cleanup_mirage_op', side_effect=Exception('Cleanup failed') + 'node_cli.fair.fair_node.cleanup_fair_op', side_effect=Exception('Cleanup failed') ) -@mock.patch('node_cli.mirage.mirage_node.compose_node_env') -def test_cleanup_continues_after_mirage_op_error( +@mock.patch('node_cli.fair.fair_node.compose_node_env') +def test_cleanup_continues_after_fair_op_error( mock_compose_env, - mock_cleanup_mirage_op, + mock_cleanup_fair_op, mock_cleanup_docker_config, mock_is_user_valid, inited_node, @@ -223,7 +223,7 @@ def test_cleanup_continues_after_mirage_op_error( cleanup() mock_compose_env.assert_called_once() - mock_cleanup_mirage_op.assert_called_once_with(mock_env) + mock_cleanup_fair_op.assert_called_once_with(mock_env) mock_cleanup_docker_config.assert_not_called() @@ -237,7 +237,7 @@ def test_cleanup_fails_when_user_invalid( """Test that cleanup fails when user validation fails""" import pytest - from node_cli.mirage.mirage_node import cleanup + from node_cli.fair.fair_node import cleanup with pytest.raises(SystemExit): cleanup() @@ -251,14 +251,14 @@ def test_cleanup_fails_when_not_inited(ensure_meta_removed): @mock.patch('node_cli.utils.decorators.is_user_valid', return_value=True) -@mock.patch('node_cli.mirage.mirage_node.cleanup_docker_configuration') -@mock.patch('node_cli.mirage.mirage_node.cleanup_mirage_op') -@mock.patch('node_cli.mirage.mirage_node.compose_node_env') -@mock.patch('node_cli.mirage.mirage_node.logger') +@mock.patch('node_cli.fair.fair_node.cleanup_docker_configuration') +@mock.patch('node_cli.fair.fair_node.cleanup_fair_op') +@mock.patch('node_cli.fair.fair_node.compose_node_env') +@mock.patch('node_cli.fair.fair_node.logger') def test_cleanup_logs_success_message( mock_logger, mock_compose_env, - mock_cleanup_mirage_op, + mock_cleanup_fair_op, mock_cleanup_docker_config, mock_is_user_valid, inited_node, @@ -271,5 +271,5 @@ def test_cleanup_logs_success_message( cleanup() mock_logger.info.assert_called_once_with( - 'Mirage node was cleaned up, all containers and data removed' + 'Fair node was cleaned up, all containers and data removed' ) diff --git a/tests/routes_test.py b/tests/routes_test.py index 2bf8ffd2..872c53e1 100644 --- a/tests/routes_test.py +++ b/tests/routes_test.py @@ -31,8 +31,8 @@ '/api/v1/ssl/upload', '/api/v1/wallet/info', '/api/v1/wallet/send-eth', - '/api/v1/mirage-node/info', - '/api/v1/mirage-node/register', + '/api/v1/fair-node/info', + '/api/v1/fair-node/register', ] diff --git a/tests/tools_meta_test.py b/tests/tools_meta_test.py index 3c252b9c..a2a6a2fc 100644 --- a/tests/tools_meta_test.py +++ b/tests/tools_meta_test.py @@ -7,8 +7,8 @@ DEFAULT_VERSION, CliMeta, CliMetaManager, - MirageCliMeta, - MirageCliMetaManager, + FairCliMeta, + FairCliMetaManager, ) from tests.helper import TEST_META_V1, TEST_META_V2, TEST_META_V3 @@ -121,37 +121,37 @@ def test_ensure_meta(ensure_meta_removed): assert CliMetaManager().get_meta_info() == CliMeta(DEFAULT_VERSION, DEFAULT_CONFIG_STREAM) -def test_mirage_get_meta_info_v1(meta_file_v1): - meta = MirageCliMetaManager().get_meta_info() +def test_fair_get_meta_info_v1(meta_file_v1): + meta = FairCliMetaManager().get_meta_info() assert meta.version == TEST_META_V1['version'] assert meta.config_stream == TEST_META_V1['config_stream'] assert meta.os_id == 'ubuntu' assert meta.os_version == '18.04' -def test_mirage_get_meta_info_v2(meta_file_v2): - meta = MirageCliMetaManager().get_meta_info() +def test_fair_get_meta_info_v2(meta_file_v2): + meta = FairCliMetaManager().get_meta_info() assert meta.version == TEST_META_V2['version'] assert meta.config_stream == TEST_META_V2['config_stream'] assert meta.os_id == 'ubuntu' # default value assert meta.os_version == '18.04' # default value -def test_mirage_get_meta_info_v3(meta_file_v3): - meta = MirageCliMetaManager().get_meta_info() +def test_fair_get_meta_info_v3(meta_file_v3): + meta = FairCliMetaManager().get_meta_info() assert meta.version == TEST_META_V3['version'] assert meta.config_stream == TEST_META_V3['config_stream'] assert meta.os_id == TEST_META_V3['os_id'] assert meta.os_version == TEST_META_V3['os_version'] -def test_mirage_get_meta_info_empty(): - meta = MirageCliMetaManager().get_meta_info() +def test_fair_get_meta_info_empty(): + meta = FairCliMetaManager().get_meta_info() assert meta is None -def test_mirage_compose_default_meta(): - meta = MirageCliMetaManager().compose_default_meta() +def test_fair_compose_default_meta(): + meta = FairCliMetaManager().compose_default_meta() assert meta.version == '1.0.0' assert meta.config_stream == '1.1.0' assert meta.os_id == 'ubuntu' @@ -159,79 +159,79 @@ def test_mirage_compose_default_meta(): assert not hasattr(meta, 'docker_lvmpy_stream') -def test_mirage_save_meta(meta_file_v2): - meta = MirageCliMeta( - version='2.2.2', config_stream='mirage-stable', os_id='debian', os_version='11' +def test_fair_save_meta(meta_file_v2): + meta = FairCliMeta( + version='2.2.2', config_stream='fair-stable', os_id='debian', os_version='11' ) - MirageCliMetaManager().save_meta(meta) + FairCliMetaManager().save_meta(meta) with open(META_FILEPATH) as meta_f: saved_json = json.load(meta_f) assert saved_json == { 'version': '2.2.2', - 'config_stream': 'mirage-stable', + 'config_stream': 'fair-stable', 'os_id': 'debian', 'os_version': '11', } assert 'docker_lvmpy_stream' not in saved_json -def test_mirage_update_meta_from_v2_to_v3(meta_file_v2): - old_meta = MirageCliMetaManager().get_meta_info() - MirageCliMetaManager().update_meta( +def test_fair_update_meta_from_v2_to_v3(meta_file_v2): + old_meta = FairCliMetaManager().get_meta_info() + FairCliMetaManager().update_meta( version='3.3.3', - config_stream='mirage-beta', + config_stream='fair-beta', os_id='debian', os_version='11', ) - meta = MirageCliMetaManager().get_meta_info() + meta = FairCliMetaManager().get_meta_info() assert meta.version == '3.3.3' - assert meta.config_stream == 'mirage-beta' + assert meta.config_stream == 'fair-beta' assert meta.os_id == 'debian' assert meta.os_version == '11' assert meta != old_meta -def test_mirage_update_meta_from_v1(meta_file_v1): - MirageCliMetaManager().update_meta( +def test_fair_update_meta_from_v1(meta_file_v1): + FairCliMetaManager().update_meta( version='4.4.4', - config_stream='mirage-develop', + config_stream='fair-develop', os_id='centos', os_version='8', ) - meta = MirageCliMetaManager().get_meta_info() + meta = FairCliMetaManager().get_meta_info() assert meta.version == '4.4.4' - assert meta.config_stream == 'mirage-develop' + assert meta.config_stream == 'fair-develop' assert meta.os_id == 'centos' assert meta.os_version == '8' -def test_mirage_update_meta_from_v3(meta_file_v3): - MirageCliMetaManager().update_meta( +def test_fair_update_meta_from_v3(meta_file_v3): + FairCliMetaManager().update_meta( version='5.5.5', - config_stream='mirage-stable', + config_stream='fair-stable', os_id='ubuntu', os_version='22.04', ) - meta = MirageCliMetaManager().get_meta_info() + meta = FairCliMetaManager().get_meta_info() assert meta.version == '5.5.5' - assert meta.config_stream == 'mirage-stable' + assert meta.config_stream == 'fair-stable' assert meta.os_id == 'ubuntu' assert meta.os_version == '22.04' -def test_mirage_ensure_meta(ensure_meta_removed): - MirageCliMetaManager().ensure_meta() - assert MirageCliMetaManager().get_meta_info() == MirageCliMeta( +def test_fair_ensure_meta(ensure_meta_removed): + FairCliMetaManager().ensure_meta() + assert FairCliMetaManager().get_meta_info() == FairCliMeta( DEFAULT_VERSION, DEFAULT_CONFIG_STREAM ) - MirageCliMetaManager().ensure_meta(MirageCliMeta(version='1.1.1', config_stream='1.1.1')) - assert MirageCliMetaManager().get_meta_info() == MirageCliMeta( + FairCliMetaManager().ensure_meta(FairCliMeta(version='1.1.1', config_stream='1.1.1')) + assert FairCliMetaManager().get_meta_info() == FairCliMeta( DEFAULT_VERSION, DEFAULT_CONFIG_STREAM ) -def test_mirage_get_meta_info_raw(meta_file_v3): - raw_meta = MirageCliMetaManager().get_meta_info(raw=True) +def test_fair_get_meta_info_raw(meta_file_v3): + raw_meta = FairCliMetaManager().get_meta_info(raw=True) assert isinstance(raw_meta, dict) assert raw_meta['version'] == TEST_META_V3['version'] assert raw_meta['config_stream'] == TEST_META_V3['config_stream'] @@ -240,13 +240,13 @@ def test_mirage_get_meta_info_raw(meta_file_v3): assert 'docker_lvmpy_stream' not in raw_meta -def test_mirage_get_meta_info_raw_empty(): - raw_meta = MirageCliMetaManager().get_meta_info(raw=True) +def test_fair_get_meta_info_raw_empty(): + raw_meta = FairCliMetaManager().get_meta_info(raw=True) assert raw_meta == {} -def test_mirage_asdict(): - meta = MirageCliMeta( +def test_fair_asdict(): + meta = FairCliMeta( version='1.2.3', config_stream='test-stream', os_id='fedora', os_version='35' ) meta_dict = meta.asdict() @@ -260,8 +260,8 @@ def test_mirage_asdict(): assert 'docker_lvmpy_stream' not in meta_dict -def test_mirage_meta_compatibility_with_cli_meta_file(meta_file_v3): - meta = MirageCliMetaManager().get_meta_info() +def test_fair_meta_compatibility_with_cli_meta_file(meta_file_v3): + meta = FairCliMetaManager().get_meta_info() assert meta.version == TEST_META_V3['version'] assert meta.config_stream == TEST_META_V3['config_stream'] assert meta.os_id == TEST_META_V3['os_id'] @@ -270,46 +270,46 @@ def test_mirage_meta_compatibility_with_cli_meta_file(meta_file_v3): assert not hasattr(meta, 'docker_lvmpy_stream') -def test_mirage_save_meta_overwrites_cli_meta(meta_file_v3): +def test_fair_save_meta_overwrites_cli_meta(meta_file_v3): with open(META_FILEPATH) as f: original_data = json.load(f) assert 'docker_lvmpy_stream' in original_data - mirage_meta = MirageCliMeta(version='2.0.0', config_stream='mirage-new') - MirageCliMetaManager().save_meta(mirage_meta) + fair_meta = FairCliMeta(version='2.0.0', config_stream='fair-new') + FairCliMetaManager().save_meta(fair_meta) with open(META_FILEPATH) as f: saved_data = json.load(f) assert 'docker_lvmpy_stream' not in saved_data assert saved_data['version'] == '2.0.0' - assert saved_data['config_stream'] == 'mirage-new' + assert saved_data['config_stream'] == 'fair-new' -def test_mirage_ensure_meta_with_existing_cli_meta(meta_file_v3): - MirageCliMetaManager().ensure_meta() - meta = MirageCliMetaManager().get_meta_info() +def test_fair_ensure_meta_with_existing_cli_meta(meta_file_v3): + FairCliMetaManager().ensure_meta() + meta = FairCliMetaManager().get_meta_info() assert meta.version == TEST_META_V3['version'] assert meta.config_stream == TEST_META_V3['config_stream'] -def test_mirage_meta_defaults(): - meta = MirageCliMeta() +def test_fair_meta_defaults(): + meta = FairCliMeta() assert meta.version == DEFAULT_VERSION assert meta.config_stream == DEFAULT_CONFIG_STREAM assert meta.os_id == 'ubuntu' assert meta.os_version == '18.04' -def test_mirage_meta_partial_initialization(): - meta = MirageCliMeta(version='1.5.0', os_id='alpine') +def test_fair_meta_partial_initialization(): + meta = FairCliMeta(version='1.5.0', os_id='alpine') assert meta.version == '1.5.0' assert meta.config_stream == DEFAULT_CONFIG_STREAM assert meta.os_id == 'alpine' assert meta.os_version == '18.04' -def test_mirage_update_meta_ensure_called(): - manager = MirageCliMetaManager() +def test_fair_update_meta_ensure_called(): + manager = FairCliMetaManager() manager.update_meta(version='1.0.0', config_stream='test', os_id='ubuntu', os_version='20.04') diff --git a/text.yml b/text.yml index 2879b312..c93a743e 100644 --- a/text.yml +++ b/text.yml @@ -77,17 +77,17 @@ lvmpy: help: Run healing procedure for lvmpy server prompt: Are you sure you want run healing procedure? -mirage: +fair: node: repair: - help: Repair mirage chain node - warning: Are you sure you want to repair mirage chain node? In rare cases may cause data loss and require additional maintenance + help: Repair fair chain node + warning: Are you sure you want to repair fair chain node? In rare cases may cause data loss and require additional maintenance snapshot_from: IP of the node to take snapshot from repair_requested: Repair mode is requested not_inited: Node should be initialized to proceed with operation - registered: Node is registered in mirage manager. + registered: Node is registered in fair manager. register: - help: Register node in mirage manager - name: Name of the node in mirage manager - ip: IP address of the node in mirage manager + help: Register node in fair manager + name: Name of the node in fair manager + ip: IP address of the node in fair manager From 5b95fd875253d345884f89c22a3747c05834dd49 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Tue, 15 Jul 2025 13:43:31 +0100 Subject: [PATCH 2/4] Update scripts in test pipeline --- .github/workflows/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9251c723..1a230126 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,7 +41,7 @@ jobs: run: | mkdir -p ./dist docker build . -t node-cli-builder - docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh test test normal + docker run -v /home/ubuntu/dist:/app/dist node-cli-builder bash scripts/build.sh test test normal docker rm -f $(docker ps -aq) - name: Check build - normal @@ -51,7 +51,7 @@ jobs: run: | mkdir -p ./dist docker build . -t node-cli-builder - docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh test test sync + docker run -v /home/ubuntu/dist:/app/dist node-cli-builder bash scripts/build.sh test test sync docker rm -f $(docker ps -aq) - name: Check build - sync @@ -61,7 +61,7 @@ jobs: run: | mkdir -p ./dist docker build . -t node-cli-builder - docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh test test fair + docker run -v /home/ubuntu/dist:/app/dist node-cli-builder bash scripts/build.sh test test fair docker rm -f $(docker ps -aq) - name: Check build - fair @@ -69,11 +69,11 @@ jobs: - name: Run prepare test build run: | - scripts/build.sh test test normal + bash scripts/build.sh test test normal - name: Run redis run: | - ./helper-scripts/redis/run.sh + bash ./helper-scripts/redis/run.sh - name: Run tests run: | From d2d6a939e76220b55495fd677e9f0137e48f2e20 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Tue, 15 Jul 2025 14:46:28 +0100 Subject: [PATCH 3/4] Fix generate info execution --- scripts/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build.sh b/scripts/build.sh index 810e85b9..a1adc516 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -35,7 +35,7 @@ PARENT_DIR="$(dirname "$DIR")" OS=`uname -s`-`uname -m` # Use the new generate_info.sh script -"${DIR}/generate_info.sh" "$VERSION" "$BRANCH" "$TYPE" +bash "${DIR}/generate_info.sh" "$VERSION" "$BRANCH" "$TYPE" if [ "$TYPE" = "sync" ]; then EXECUTABLE_NAME=skale-$VERSION-$OS-sync From 95f7d6525c076f6ffc5011db9e1f420dd7c7c358 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Tue, 15 Jul 2025 15:01:11 +0100 Subject: [PATCH 4/4] Fix backup test --- tests/cli/node_test.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/cli/node_test.py b/tests/cli/node_test.py index 834d85f9..0db1d97a 100644 --- a/tests/cli/node_test.py +++ b/tests/cli/node_test.py @@ -318,8 +318,7 @@ def test_backup(): pathlib.Path(SKALE_DIR).mkdir(parents=True, exist_ok=True) result = run_command(backup_node, ['/tmp']) assert result.exit_code == 0 - print(result.output) - assert 'Backup archive succesfully created ' in result.output + assert 'Backup archive successfully created ' in result.output @pytest.mark.parametrize(