sbcli-pre 25.5.4__tar.gz → 25.5.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/PKG-INFO +1 -1
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/sbcli_pre.egg-info/PKG-INFO +1 -1
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/cluster_ops.py +25 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/env_var +2 -2
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/storage_node.py +9 -2
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/health_check_service.py +1 -1
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/storage_node_ops.py +32 -14
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/README.md +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/pyproject.toml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/requirements.txt +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/sbcli_pre.egg-info/SOURCES.txt +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/sbcli_pre.egg-info/dependency_links.txt +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/sbcli_pre.egg-info/entry_points.txt +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/sbcli_pre.egg-info/requires.txt +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/sbcli_pre.egg-info/top_level.txt +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/setup.cfg +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/setup.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_cli/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_cli/cli.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_cli/clibase.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_cli/main.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/cnode_client.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/constants.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/db_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/distr_controller.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/base_model.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/cluster.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/deployer.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/events.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/hublvol.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/iface.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/pool.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/models/stats.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/pci_utils.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/rpc_client.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/helpers/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/service_template.service +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/spdk/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/spdk/client.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_cluster_status.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/shell_utils.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/snode_client.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/test/test_models.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/test/test_utils.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/utils.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/README.md +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/app.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/node_configure.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/node_utils.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/node_utils_k8s.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/node_webapp.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/delete.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/deploy.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/is_up.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/swagger.yaml +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/tst.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/api/test_lvol.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/api/test_pool.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/api/test_snapshot.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/api/test_storage_node.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/conftest.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/pytest.ini +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/requirements.txt +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/test/util.py +0 -0
- {sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/utils.py +0 -0
@@ -683,6 +683,31 @@ def cluster_activate(cl_id, force=False, force_lvstore_create=False):
|
|
683
683
|
set_cluster_status(cl_id, ols_status)
|
684
684
|
return False
|
685
685
|
|
686
|
+
snodes = db_controller.get_storage_nodes_by_cluster_id(cl_id)
|
687
|
+
for snode in snodes:
|
688
|
+
if snode.status != StorageNode.STATUS_ONLINE:
|
689
|
+
continue
|
690
|
+
|
691
|
+
if not snode.is_secondary_node:
|
692
|
+
continue
|
693
|
+
|
694
|
+
logger.info(f"recreating secondary node {snode.get_id()}")
|
695
|
+
ret = storage_node_ops.recreate_lvstore_on_sec(snode)
|
696
|
+
|
697
|
+
snode = db_controller.get_storage_node_by_id(snode.get_id())
|
698
|
+
if ret:
|
699
|
+
snode.lvstore_status = "ready"
|
700
|
+
snode.write_to_db()
|
701
|
+
|
702
|
+
else:
|
703
|
+
snode.lvstore_status = "failed"
|
704
|
+
snode.write_to_db()
|
705
|
+
logger.error(f"Failed to restore lvstore on node {snode.get_id()}")
|
706
|
+
if not force:
|
707
|
+
logger.error("Failed to activate cluster")
|
708
|
+
set_cluster_status(cl_id, ols_status)
|
709
|
+
return False
|
710
|
+
|
686
711
|
|
687
712
|
if not cluster.cluster_max_size:
|
688
713
|
cluster = db_controller.get_cluster_by_id(cl_id)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
SIMPLY_BLOCK_COMMAND_NAME=sbcli-pre
|
2
|
-
SIMPLY_BLOCK_VERSION=25.5.
|
2
|
+
SIMPLY_BLOCK_VERSION=25.5.5
|
3
3
|
|
4
4
|
|
5
|
-
SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:
|
5
|
+
SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:R25.5-PRE
|
6
6
|
SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=simplyblock/spdk:main-latest
|
@@ -146,7 +146,7 @@ class StorageNode(BaseNodeObject):
|
|
146
146
|
#
|
147
147
|
# raise
|
148
148
|
|
149
|
-
def create_hublvol(self
|
149
|
+
def create_hublvol(self):
|
150
150
|
"""Create a hublvol for this node's lvstore
|
151
151
|
"""
|
152
152
|
logger.info(f'Creating hublvol on {self.get_id()}')
|
@@ -159,7 +159,7 @@ class StorageNode(BaseNodeObject):
|
|
159
159
|
raise RPCException('Failed to create hublvol')
|
160
160
|
self.hublvol = HubLVol({
|
161
161
|
'uuid': hublvol_uuid,
|
162
|
-
'nqn': f'{
|
162
|
+
'nqn': f'{self.host_nqn}:lvol:{hublvol_uuid}',
|
163
163
|
'bdev_name': f'{self.lvstore}/hublvol',
|
164
164
|
'model_number': str(uuid4()),
|
165
165
|
'nguid': utils.generate_hex_string(16),
|
@@ -212,6 +212,13 @@ class StorageNode(BaseNodeObject):
|
|
212
212
|
return True
|
213
213
|
except RPCException:
|
214
214
|
pass
|
215
|
+
else:
|
216
|
+
try:
|
217
|
+
self.create_hublvol()
|
218
|
+
return True
|
219
|
+
except RPCException as e:
|
220
|
+
logger.error("Error establishing hublvol: %s", e.message)
|
221
|
+
# return False
|
215
222
|
|
216
223
|
return self.hublvol
|
217
224
|
|
@@ -197,7 +197,7 @@ while True:
|
|
197
197
|
connected_jms.append(remote_device.get_id())
|
198
198
|
|
199
199
|
for jm_id in snode.jm_ids:
|
200
|
-
if jm_id not in connected_jms:
|
200
|
+
if jm_id and jm_id not in connected_jms:
|
201
201
|
for nd in db.get_storage_nodes():
|
202
202
|
if nd.jm_device and nd.jm_device.get_id() == jm_id:
|
203
203
|
if nd.status == StorageNode.STATUS_ONLINE:
|
@@ -1761,6 +1761,15 @@ def restart_storage_node(
|
|
1761
1761
|
if devs:
|
1762
1762
|
dev = db_controller.get_jm_device_by_id(devs[0])
|
1763
1763
|
snode.remote_jm_devices.append(dev)
|
1764
|
+
if not snode.jm_ids:
|
1765
|
+
snode.jm_ids = []
|
1766
|
+
for rem_jm in snode.remote_jm_devices:
|
1767
|
+
if rem_jm.get_id():
|
1768
|
+
snode.jm_ids.append(rem_jm.get_id())
|
1769
|
+
|
1770
|
+
snode.jm_ids = snode.jm_ids[:constants.HA_JM_COUNT-1]
|
1771
|
+
snode.write_to_db(db_controller.kv_store)
|
1772
|
+
|
1764
1773
|
snode.remote_jm_devices = _connect_to_remote_jm_devs(snode)
|
1765
1774
|
snode.health_check = True
|
1766
1775
|
snode.lvstore_status = ""
|
@@ -3088,30 +3097,37 @@ def add_lvol_thread(lvol, snode, lvol_ana_state="optimized"):
|
|
3088
3097
|
def get_sorted_ha_jms(current_node):
|
3089
3098
|
db_controller = DBController()
|
3090
3099
|
jm_count = {}
|
3091
|
-
|
3100
|
+
jm_dev_to_mgmt_ip = {}
|
3101
|
+
|
3092
3102
|
for node in db_controller.get_storage_nodes_by_cluster_id(current_node.cluster_id):
|
3093
|
-
if
|
3094
|
-
continue
|
3095
|
-
if node.mgmt_ip == current_node.mgmt_ip:
|
3096
|
-
continue
|
3097
|
-
if node.mgmt_ip in mgmt_ips:
|
3103
|
+
if node.get_id() == current_node.get_id(): # pass
|
3098
3104
|
continue
|
3099
3105
|
|
3100
|
-
if node.jm_device and node.jm_device.status == JMDevice.STATUS_ONLINE:
|
3101
|
-
jm_count[node.jm_device.get_id()] =
|
3102
|
-
|
3106
|
+
if node.jm_device and node.jm_device.status == JMDevice.STATUS_ONLINE and node.jm_device.get_id():
|
3107
|
+
jm_count[node.jm_device.get_id()] = 0
|
3108
|
+
jm_dev_to_mgmt_ip[node.jm_device.get_id()] = node.mgmt_ip
|
3103
3109
|
|
3104
3110
|
for node in db_controller.get_storage_nodes_by_cluster_id(current_node.cluster_id):
|
3105
|
-
if
|
3111
|
+
if node.get_id() == current_node.get_id(): # pass
|
3106
3112
|
continue
|
3107
|
-
if
|
3113
|
+
if not node.jm_ids:
|
3108
3114
|
continue
|
3109
3115
|
for rem_jm_id in node.jm_ids:
|
3110
3116
|
if rem_jm_id in jm_count:
|
3111
3117
|
jm_count[rem_jm_id] += 1
|
3112
3118
|
|
3119
|
+
mgmt_ips = []
|
3113
3120
|
jm_count = dict(sorted(jm_count.items(), key=lambda x: x[1]))
|
3114
|
-
|
3121
|
+
out = []
|
3122
|
+
for jm_id in jm_count.keys():
|
3123
|
+
if jm_id:
|
3124
|
+
if jm_dev_to_mgmt_ip[jm_id] in mgmt_ips:
|
3125
|
+
continue
|
3126
|
+
if jm_dev_to_mgmt_ip[jm_id] == current_node.mgmt_ip:
|
3127
|
+
continue
|
3128
|
+
mgmt_ips.append(jm_dev_to_mgmt_ip[jm_id])
|
3129
|
+
out.append(jm_count)
|
3130
|
+
return out[:constants.HA_JM_COUNT-1]
|
3115
3131
|
|
3116
3132
|
|
3117
3133
|
def get_node_jm_names(current_node, remote_node=None):
|
@@ -3126,6 +3142,9 @@ def get_node_jm_names(current_node, remote_node=None):
|
|
3126
3142
|
|
3127
3143
|
if current_node.enable_ha_jm:
|
3128
3144
|
for jm_id in current_node.jm_ids:
|
3145
|
+
if not jm_id:
|
3146
|
+
continue
|
3147
|
+
|
3129
3148
|
if remote_node:
|
3130
3149
|
if remote_node.jm_device.get_id() == jm_id:
|
3131
3150
|
jm_list.append(remote_node.jm_device.jm_bdev)
|
@@ -3298,9 +3317,8 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
|
|
3298
3317
|
sec_rpc_client.bdev_examine(snode.raid)
|
3299
3318
|
sec_rpc_client.bdev_wait_for_examine()
|
3300
3319
|
|
3301
|
-
cluster_nqn = db_controller.get_cluster_by_id(snode.cluster_id).nqn
|
3302
3320
|
try:
|
3303
|
-
snode.create_hublvol(
|
3321
|
+
snode.create_hublvol()
|
3304
3322
|
|
3305
3323
|
except RPCException as e:
|
3306
3324
|
logger.error("Error establishing hublvol: %s", e.message)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/controllers/caching_node_controller.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/clean_local_storage_deploy.sh
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/dashboards/node-exporter.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/main_distr_event_collector.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_core/services/tasks_runner_new_dev_migration.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.5.4 → sbcli-pre-25.5.5}/simplyblock_web/static/SimplyBlock-API.postman_collection.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|