sbcli-pre 25.6.6__tar.gz → 25.6.7__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.6.6 → sbcli-pre-25.6.7}/PKG-INFO +1 -1
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/PKG-INFO +1 -1
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/distr_controller.py +26 -2
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/env_var +1 -1
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/storage_node_monitor.py +4 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/storage_node_ops.py +4 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/utils.py +6 -5
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/caching_node_ops.py +1 -1
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/snode_ops.py +2 -2
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/README.md +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/pyproject.toml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/requirements.txt +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/SOURCES.txt +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/dependency_links.txt +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/entry_points.txt +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/requires.txt +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/top_level.txt +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/setup.cfg +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/setup.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/cli.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/clibase.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/main.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/cnode_client.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/constants.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/db_controller.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/base_model.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/cluster.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/deployer.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/events.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/hublvol.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/iface.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/pool.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/stats.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/pci_utils.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/rpc_client.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/service_template.service +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/spdk/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/spdk/client.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_cluster_status.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_port_allow.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/shell_utils.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/snode_client.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/test/test_models.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/test/test_utils.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/README.md +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/app.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_configure.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_utils.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_utils_k8s.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_webapp.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/delete.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/deploy.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/is_up.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/swagger.yaml +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/tst.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_lvol.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_pool.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_snapshot.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_storage_node.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/conftest.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/pytest.ini +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/requirements.txt +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/util.py +0 -0
- {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/utils.py +0 -0
@@ -25,12 +25,24 @@ def send_node_status_event(node, node_status, target_node=None):
|
|
25
25
|
"status": node_status}
|
26
26
|
events = {"events": [node_status_event]}
|
27
27
|
logger.debug(node_status_event)
|
28
|
+
skipped_nodes = []
|
28
29
|
if target_node:
|
29
30
|
snodes = [target_node]
|
30
31
|
else:
|
31
32
|
snodes = db_controller.get_storage_nodes_by_cluster_id(node.cluster_id)
|
33
|
+
for node in snodes:
|
34
|
+
if node.status == StorageNode.STATUS_SCHEDULABLE:
|
35
|
+
skipped_nodes.append(node)
|
36
|
+
|
32
37
|
for node in snodes:
|
33
|
-
if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED]:
|
38
|
+
if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED, StorageNode.STATUS_DOWN]:
|
39
|
+
continue
|
40
|
+
node_found_same_host = False
|
41
|
+
for n in skipped_nodes:
|
42
|
+
if node.mgmt_ip == n.mgmt_ip:
|
43
|
+
node_found_same_host = True
|
44
|
+
break
|
45
|
+
if node_found_same_host:
|
34
46
|
continue
|
35
47
|
logger.info(f"Sending to: {node.get_id()}")
|
36
48
|
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=3, retry=1)
|
@@ -44,14 +56,26 @@ def send_dev_status_event(device, status, target_node=None):
|
|
44
56
|
return
|
45
57
|
db_controller = DBController()
|
46
58
|
storage_ID = device.cluster_device_order
|
59
|
+
skipped_nodes = []
|
60
|
+
|
47
61
|
if target_node:
|
48
62
|
snodes = [db_controller.get_storage_node_by_id(target_node.get_id())]
|
49
63
|
else:
|
50
64
|
snodes = db_controller.get_storage_nodes_by_cluster_id(device.cluster_id)
|
65
|
+
for node in snodes:
|
66
|
+
if node.status == StorageNode.STATUS_SCHEDULABLE:
|
67
|
+
skipped_nodes.append(node)
|
68
|
+
|
51
69
|
for node in snodes:
|
52
70
|
if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED, StorageNode.STATUS_DOWN]:
|
53
71
|
continue
|
54
|
-
|
72
|
+
node_found_same_host = False
|
73
|
+
for n in skipped_nodes:
|
74
|
+
if node.mgmt_ip == n.mgmt_ip:
|
75
|
+
node_found_same_host = True
|
76
|
+
break
|
77
|
+
if node_found_same_host:
|
78
|
+
continue
|
55
79
|
dev_status = status
|
56
80
|
|
57
81
|
if status == NVMeDevice.STATUS_ONLINE and node.get_id() != device.node_id:
|
@@ -248,6 +248,10 @@ while True:
|
|
248
248
|
|
249
249
|
nodes = db.get_storage_nodes_by_cluster_id(cluster_id)
|
250
250
|
for snode in nodes:
|
251
|
+
|
252
|
+
# get fresh node object, something could have changed until the last for loop is reached
|
253
|
+
snode = db.get_storage_node_by_id(snode.get_id())
|
254
|
+
|
251
255
|
if snode.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_UNREACHABLE,
|
252
256
|
StorageNode.STATUS_SCHEDULABLE, StorageNode.STATUS_DOWN]:
|
253
257
|
logger.info(f"Node status is: {snode.status}, skipping")
|
@@ -3080,6 +3080,10 @@ def add_lvol_thread(lvol, snode, lvol_ana_state="optimized"):
|
|
3080
3080
|
lvol_obj.io_error = False
|
3081
3081
|
lvol_obj.health_check = True
|
3082
3082
|
lvol_obj.write_to_db()
|
3083
|
+
# set QOS
|
3084
|
+
if lvol.rw_ios_per_sec or lvol.rw_mbytes_per_sec or lvol.r_mbytes_per_sec or lvol.w_mbytes_per_sec :
|
3085
|
+
lvol_controller.set_lvol(lvol.uuid, lvol.rw_ios_per_sec, lvol.rw_mbytes_per_sec,
|
3086
|
+
lvol.r_mbytes_per_sec , lvol.w_mbytes_per_sec)
|
3083
3087
|
return True, None
|
3084
3088
|
|
3085
3089
|
|
@@ -518,7 +518,7 @@ def calculate_minimum_hp_memory(small_pool_count, large_pool_count, lvol_count,
|
|
518
518
|
return: minimum_hp_memory in bytes
|
519
519
|
'''
|
520
520
|
pool_consumption = (small_pool_count * 8 + large_pool_count * 128) / 1024 + 1092
|
521
|
-
memory_consumption = (4 * cpu_count + 1.0277 * pool_consumption +
|
521
|
+
memory_consumption = (4 * cpu_count + 1.0277 * pool_consumption + 20 * lvol_count) * (1024 * 1024) + (
|
522
522
|
250 * 1024 * 1024) * 1.1 * convert_size(max_prov, 'TiB') + constants.EXTRA_HUGE_PAGE_MEMORY
|
523
523
|
return int(1.2*memory_consumption)
|
524
524
|
|
@@ -1753,15 +1753,16 @@ def get_k8s_core_client():
|
|
1753
1753
|
return client.CoreV1Api()
|
1754
1754
|
|
1755
1755
|
|
1756
|
-
def remove_container(client: docker.DockerClient, name,
|
1756
|
+
def remove_container(client: docker.DockerClient, name, graceful_timeout=3):
|
1757
1757
|
try:
|
1758
1758
|
container = client.containers.get(name)
|
1759
|
-
|
1760
|
-
|
1759
|
+
if graceful_timeout:
|
1760
|
+
container.stop(timeout=graceful_timeout)
|
1761
|
+
container.remove(force=(not graceful_timeout))
|
1761
1762
|
except docker.errors.NotFound:
|
1762
1763
|
pass
|
1763
1764
|
except docker.errors.APIError as e:
|
1764
|
-
if 'Conflict ("removal of container {container.id} is already in progress")' != e.response.reason:
|
1765
|
+
if e.response and 'Conflict ("removal of container {container.id} is already in progress")' != e.response.reason:
|
1765
1766
|
raise
|
1766
1767
|
|
1767
1768
|
def render_and_deploy_alerting_configs(contact_point, grafana_endpoint, cluster_uuid, cluster_secret):
|
@@ -76,7 +76,7 @@ def spdk_process_start():
|
|
76
76
|
|
77
77
|
node_docker = get_docker_client()
|
78
78
|
for name in {f"/spdk_{rpc_port}", f"/spdk_proxy_{rpc_port}"}:
|
79
|
-
core_utils.remove_container(node_docker, name)
|
79
|
+
core_utils.remove_container(node_docker, name, graceful_timeout=0)
|
80
80
|
|
81
81
|
spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
|
82
82
|
|
@@ -157,7 +157,7 @@ def spdk_process_start(body: SPDKParams):
|
|
157
157
|
|
158
158
|
node_docker = get_docker_client(timeout=60 * 3)
|
159
159
|
for name in {f"/spdk_{body.rpc_port}", f"/spdk_proxy_{body.rpc_port}"}:
|
160
|
-
core_utils.remove_container(node_docker, name)
|
160
|
+
core_utils.remove_container(node_docker, name, graceful_timeout=0)
|
161
161
|
|
162
162
|
if body.cluster_ip is not None:
|
163
163
|
log_config = LogConfig(type=LogConfig.types.GELF, config={"gelf-address": f"tcp://{body.cluster_ip}:12202"})
|
@@ -232,7 +232,7 @@ def spdk_process_start(body: SPDKParams):
|
|
232
232
|
})
|
233
233
|
def spdk_process_kill(query: _RPCPortQuery):
|
234
234
|
for name in {f"/spdk_{query.rpc_port}", f"/spdk_proxy_{query.rpc_port}"}:
|
235
|
-
core_utils.remove_container(get_docker_client(), name)
|
235
|
+
core_utils.remove_container(get_docker_client(), name, graceful_timeout=0)
|
236
236
|
return utils.get_response(True)
|
237
237
|
|
238
238
|
|
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.6.6 → sbcli-pre-25.6.7}/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.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
File without changes
|
File without changes
|
{sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/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.6.6 → sbcli-pre-25.6.7}/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.6.6 → sbcli-pre-25.6.7}/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.6.6 → sbcli-pre-25.6.7}/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.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/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
|
{sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
File without changes
|
File without changes
|
{sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/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
|
{sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/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
|