sbcli-dev 3.8.47__zip → 3.8.49__zip
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_dev-3.8.47 → sbcli_dev-3.8.49}/PKG-INFO +1 -1
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/env_var +1 -1
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_cli/cli.py +3 -1
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/distr_controller.py +8 -5
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/storage_node.py +1 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/storage_node_monitor.py +9 -13
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/tasks_runner_failed_migration.py +8 -1
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/tasks_runner_migration.py +10 -2
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/tasks_runner_new_dev_migration.py +6 -1
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/storage_node_ops.py +2 -1
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/README.md +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/pyproject.toml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/setup.cfg +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/setup.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/kv_store.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/distr_event_collector.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/app.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_web/utils.py +0 -0
|
@@ -96,6 +96,8 @@ class CLIWrapper:
|
|
|
96
96
|
sub_command.add_argument("--iobuf_small_bufsize", help='bdev_set_options param', dest='small_bufsize', type=int, default=0)
|
|
97
97
|
sub_command.add_argument("--iobuf_large_bufsize", help='bdev_set_options param', dest='large_bufsize', type=int, default=0)
|
|
98
98
|
|
|
99
|
+
sub_command.add_argument("--force", help='Force restart', required=False, action='store_true')
|
|
100
|
+
|
|
99
101
|
# sub_command.add_argument("-t", '--test', help='Run smart test on the NVMe devices', action='store_true')
|
|
100
102
|
|
|
101
103
|
# Shutdown storage node
|
|
@@ -773,7 +775,7 @@ class CLIWrapper:
|
|
|
773
775
|
ret = storage_ops.restart_storage_node(
|
|
774
776
|
node_id, max_lvol, max_snap, max_prov,
|
|
775
777
|
spdk_image, spdk_debug,
|
|
776
|
-
small_bufsize, large_bufsize, number_of_devices, node_ip=args.node_ip)
|
|
778
|
+
small_bufsize, large_bufsize, number_of_devices, node_ip=args.node_ip, force=args.force)
|
|
777
779
|
|
|
778
780
|
elif sub_command == "list-devices":
|
|
779
781
|
ret = self.storage_node_list_devices(args)
|
|
@@ -27,7 +27,7 @@ def send_node_status_event(node, node_status):
|
|
|
27
27
|
if node.status != node.STATUS_ONLINE:
|
|
28
28
|
continue
|
|
29
29
|
logger.info(f"Sending to: {node.get_id()}")
|
|
30
|
-
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
|
|
30
|
+
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
31
31
|
ret = rpc_client.distr_status_events_update(events)
|
|
32
32
|
|
|
33
33
|
|
|
@@ -47,7 +47,7 @@ def send_dev_status_event(device, dev_status):
|
|
|
47
47
|
if node.status != node.STATUS_ONLINE:
|
|
48
48
|
continue
|
|
49
49
|
logger.info(f"Sending to: {node.get_id()}")
|
|
50
|
-
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
|
|
50
|
+
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
51
51
|
ret = rpc_client.distr_status_events_update(events)
|
|
52
52
|
if not ret:
|
|
53
53
|
logger.warning("Failed to send event update")
|
|
@@ -108,8 +108,11 @@ def get_distr_cluster_map(snodes, target_node):
|
|
|
108
108
|
dev_w_map.append({
|
|
109
109
|
"weight": dev_w,
|
|
110
110
|
"id": dev.cluster_device_order})
|
|
111
|
+
node_status = snode.status
|
|
112
|
+
if node_status == StorageNode.STATUS_SCHEDULABLE:
|
|
113
|
+
node_status = StorageNode.STATUS_UNREACHABLE
|
|
111
114
|
map_cluster[snode.get_id()] = {
|
|
112
|
-
"status":
|
|
115
|
+
"status": node_status,
|
|
113
116
|
"devices": dev_map}
|
|
114
117
|
map_prob.append({
|
|
115
118
|
"weight": node_w,
|
|
@@ -186,7 +189,7 @@ def parse_distr_cluster_map(map_string):
|
|
|
186
189
|
def send_cluster_map_to_node(node):
|
|
187
190
|
db_controller = DBController()
|
|
188
191
|
snodes = db_controller.get_storage_nodes_by_cluster_id(node.cluster_id)
|
|
189
|
-
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
|
|
192
|
+
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
190
193
|
cluster_map_data = get_distr_cluster_map(snodes, node)
|
|
191
194
|
cluster_map_data['UUID_node_target'] = node.get_id()
|
|
192
195
|
ret = rpc_client.distr_send_cluster_map(cluster_map_data)
|
|
@@ -204,7 +207,7 @@ def send_cluster_map_add_node(snode):
|
|
|
204
207
|
if node.status != node.STATUS_ONLINE:
|
|
205
208
|
continue
|
|
206
209
|
logger.info(f"Sending to: {node.get_id()}")
|
|
207
|
-
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
|
|
210
|
+
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
208
211
|
|
|
209
212
|
cluster_map_data = get_distr_cluster_map([snode], node)
|
|
210
213
|
cl_map = {
|
|
@@ -107,20 +107,7 @@ def set_node_offline(node):
|
|
|
107
107
|
if node.status != StorageNode.STATUS_UNREACHABLE:
|
|
108
108
|
for dev in node.nvme_devices:
|
|
109
109
|
device_controller.device_set_unavailable(dev.get_id())
|
|
110
|
-
|
|
111
110
|
storage_node_ops.set_node_status(snode.get_id(), StorageNode.STATUS_UNREACHABLE)
|
|
112
|
-
# add node to auto restart
|
|
113
|
-
tasks_controller.add_node_to_auto_restart(node)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
def set_jm_device_status(node):
|
|
117
|
-
if node.status != StorageNode.STATUS_UNREACHABLE:
|
|
118
|
-
for dev in node.nvme_devices:
|
|
119
|
-
device_controller.device_set_unavailable(dev.get_id())
|
|
120
|
-
|
|
121
|
-
storage_node_ops.set_node_status(snode.get_id(), StorageNode.STATUS_UNREACHABLE)
|
|
122
|
-
# add node to auto restart
|
|
123
|
-
tasks_controller.add_node_to_auto_restart(node)
|
|
124
111
|
|
|
125
112
|
|
|
126
113
|
logger.info("Starting node monitor")
|
|
@@ -167,6 +154,15 @@ while True:
|
|
|
167
154
|
set_node_online(snode)
|
|
168
155
|
else:
|
|
169
156
|
set_node_offline(snode)
|
|
157
|
+
if ping_check and node_api_check and not spdk_process:
|
|
158
|
+
# add node to auto restart
|
|
159
|
+
if cluster.status != Cluster.STATUS_UNREADY:
|
|
160
|
+
tasks_controller.add_node_to_auto_restart(snode)
|
|
161
|
+
|
|
162
|
+
if not ping_check and not node_api_check and not spdk_process:
|
|
163
|
+
# restart on new node
|
|
164
|
+
storage_node_ops.set_node_status(snode.get_id(), StorageNode.STATUS_SCHEDULABLE)
|
|
165
|
+
continue
|
|
170
166
|
|
|
171
167
|
# check JM device
|
|
172
168
|
if snode.jm_device:
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
@@ -20,7 +20,11 @@ from simplyblock_core.rpc_client import RPCClient
|
|
|
20
20
|
def task_runner(task):
|
|
21
21
|
|
|
22
22
|
snode = db_controller.get_storage_node_by_id(task.node_id)
|
|
23
|
-
|
|
23
|
+
if not snode:
|
|
24
|
+
task.status = JobSchedule.STATUS_DONE
|
|
25
|
+
task.function_result = f"Node not found: {task.node_id}"
|
|
26
|
+
task.write_to_db(db_controller.kv_store)
|
|
27
|
+
return True
|
|
24
28
|
|
|
25
29
|
if task.canceled:
|
|
26
30
|
task.function_result = "canceled"
|
|
@@ -40,6 +44,8 @@ def task_runner(task):
|
|
|
40
44
|
task.write_to_db(db_controller.kv_store)
|
|
41
45
|
return False
|
|
42
46
|
|
|
47
|
+
rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password,
|
|
48
|
+
timeout=5, retry=2)
|
|
43
49
|
if "migration" not in task.function_params:
|
|
44
50
|
device = db_controller.get_storage_devices(task.device_id)
|
|
45
51
|
distr_name = task.function_params["distr_name"]
|
|
@@ -50,6 +56,7 @@ def task_runner(task):
|
|
|
50
56
|
task.write_to_db(db_controller.kv_store)
|
|
51
57
|
return True
|
|
52
58
|
|
|
59
|
+
|
|
53
60
|
rsp = rpc_client.distr_migration_failure_start(distr_name, device.cluster_device_order)
|
|
54
61
|
if not rsp:
|
|
55
62
|
logger.error(f"Failed to start device migration task, storage_ID: {device.cluster_device_order}")
|
|
@@ -17,7 +17,11 @@ from simplyblock_core.rpc_client import RPCClient
|
|
|
17
17
|
def task_runner(task):
|
|
18
18
|
|
|
19
19
|
snode = db_controller.get_storage_node_by_id(task.node_id)
|
|
20
|
-
|
|
20
|
+
if not snode:
|
|
21
|
+
task.status = JobSchedule.STATUS_DONE
|
|
22
|
+
task.function_result = f"Node not found: {task.node_id}"
|
|
23
|
+
task.write_to_db(db_controller.kv_store)
|
|
24
|
+
return True
|
|
21
25
|
|
|
22
26
|
if task.canceled:
|
|
23
27
|
task.function_result = "canceled"
|
|
@@ -37,11 +41,15 @@ def task_runner(task):
|
|
|
37
41
|
task.write_to_db(db_controller.kv_store)
|
|
38
42
|
return False
|
|
39
43
|
|
|
44
|
+
rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password,
|
|
45
|
+
timeout=5, retry=2)
|
|
40
46
|
if "migration" not in task.function_params:
|
|
41
47
|
all_devs_online = True
|
|
42
48
|
for node in db_controller.get_storage_nodes_by_cluster_id(task.cluster_id):
|
|
43
49
|
for dev in node.nvme_devices:
|
|
44
|
-
if dev.status not in [NVMeDevice.STATUS_ONLINE,
|
|
50
|
+
if dev.status not in [NVMeDevice.STATUS_ONLINE,
|
|
51
|
+
NVMeDevice.STATUS_FAILED,
|
|
52
|
+
NVMeDevice.STATUS_FAILED_AND_MIGRATED]:
|
|
45
53
|
all_devs_online = False
|
|
46
54
|
break
|
|
47
55
|
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/tasks_runner_new_dev_migration.py
RENAMED
|
@@ -20,7 +20,11 @@ from simplyblock_core.rpc_client import RPCClient
|
|
|
20
20
|
def task_runner(task):
|
|
21
21
|
|
|
22
22
|
snode = db_controller.get_storage_node_by_id(task.node_id)
|
|
23
|
-
|
|
23
|
+
if not snode:
|
|
24
|
+
task.status = JobSchedule.STATUS_DONE
|
|
25
|
+
task.function_result = f"Node not found: {task.node_id}"
|
|
26
|
+
task.write_to_db(db_controller.kv_store)
|
|
27
|
+
return True
|
|
24
28
|
|
|
25
29
|
if task.canceled:
|
|
26
30
|
task.function_result = "canceled"
|
|
@@ -40,6 +44,7 @@ def task_runner(task):
|
|
|
40
44
|
task.write_to_db(db_controller.kv_store)
|
|
41
45
|
return False
|
|
42
46
|
|
|
47
|
+
rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password, timeout=5, retry=2)
|
|
43
48
|
if "migration" not in task.function_params:
|
|
44
49
|
all_devs_online = True
|
|
45
50
|
for node in db_controller.get_storage_nodes_by_cluster_id(task.cluster_id):
|
|
@@ -1372,7 +1372,8 @@ def restart_storage_node(
|
|
|
1372
1372
|
|
|
1373
1373
|
if snode.status == StorageNode.STATUS_RESTARTING:
|
|
1374
1374
|
logger.error(f"Node is in restart: {node_id}")
|
|
1375
|
-
|
|
1375
|
+
if force is False:
|
|
1376
|
+
return False
|
|
1376
1377
|
|
|
1377
1378
|
task_id = tasks_controller.get_active_node_restart_task(snode.cluster_id, snode.get_id())
|
|
1378
1379
|
if task_id:
|
|
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_dev-3.8.47 → sbcli_dev-3.8.49}/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
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/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_dev-3.8.47 → sbcli_dev-3.8.49}/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
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/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
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.47 → sbcli_dev-3.8.49}/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
|
|
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
|