sbcli-dev 3.8.45__zip → 3.8.47__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.45 → sbcli_dev-3.8.47}/PKG-INFO +1 -1
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/env_var +1 -1
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/constants.py +0 -1
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/health_controller.py +3 -3
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/distr_controller.py +1 -1
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/storage_node_monitor.py +4 -4
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/storage_node_ops.py +100 -94
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/README.md +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/pyproject.toml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/setup.cfg +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/setup.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/kv_store.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/distr_event_collector.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/app.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/utils.py +0 -0
|
@@ -58,7 +58,6 @@ TASK_EXEC_INTERVAL_SEC = 30
|
|
|
58
58
|
TASK_EXEC_RETRY_COUNT = 8
|
|
59
59
|
|
|
60
60
|
SIMPLY_BLOCK_SPDK_CORE_IMAGE = "simplyblock/spdk-core:latest"
|
|
61
|
-
SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64 = "simplyblock/spdk-core:latest-arm64"
|
|
62
61
|
SIMPLY_BLOCK_SPDK_ULTRA_IMAGE = "simplyblock/spdk:main-latest"
|
|
63
62
|
SIMPLY_BLOCK_SPDK_ULTRA_IMAGE_JM = "simplyblock/spdk:feature-journal-ha-latest"
|
|
64
63
|
|
|
@@ -66,11 +66,11 @@ def _check_node_docker_api(ip):
|
|
|
66
66
|
# return False
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
def _check_node_rpc(rpc_ip, rpc_port, rpc_username, rpc_password):
|
|
69
|
+
def _check_node_rpc(rpc_ip, rpc_port, rpc_username, rpc_password, timeout=60, retry=3):
|
|
70
70
|
try:
|
|
71
71
|
rpc_client = RPCClient(
|
|
72
72
|
rpc_ip, rpc_port, rpc_username, rpc_password,
|
|
73
|
-
timeout=
|
|
73
|
+
timeout=timeout, retry=retry)
|
|
74
74
|
ret = rpc_client.get_version()
|
|
75
75
|
if ret:
|
|
76
76
|
logger.debug(f"SPDK version: {ret['version']}")
|
|
@@ -319,7 +319,7 @@ def check_remote_device(device_id):
|
|
|
319
319
|
if node.get_id() == snode.get_id():
|
|
320
320
|
continue
|
|
321
321
|
logger.info(f"Connecting to node: {node.get_id()}")
|
|
322
|
-
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
|
|
322
|
+
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
323
323
|
name = f"remote_{device.alceml_bdev}n1"
|
|
324
324
|
ret = rpc_client.get_bdevs(name)
|
|
325
325
|
if ret:
|
|
@@ -60,7 +60,7 @@ def disconnect_device(device):
|
|
|
60
60
|
if node.status != node.STATUS_ONLINE:
|
|
61
61
|
continue
|
|
62
62
|
new_remote_devices = []
|
|
63
|
-
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
|
|
63
|
+
rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
64
64
|
for rem_dev in node.remote_devices:
|
|
65
65
|
if rem_dev.get_id() == device.get_id():
|
|
66
66
|
ctrl_name = rem_dev.remote_bdev[:-2]
|
|
@@ -152,11 +152,11 @@ while True:
|
|
|
152
152
|
spdk_process = health_controller._check_spdk_process_up(snode.mgmt_ip)
|
|
153
153
|
logger.info(f"Check: spdk process {snode.mgmt_ip}:5000 ... {spdk_process}")
|
|
154
154
|
|
|
155
|
-
node_rpc_check = True
|
|
155
|
+
# node_rpc_check = True
|
|
156
156
|
# 3- check node RPC
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
node_rpc_check = health_controller._check_node_rpc(
|
|
158
|
+
snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password, timeout=5, retry=1)
|
|
159
|
+
logger.info(f"Check: node RPC {snode.mgmt_ip}:{snode.rpc_port} ... {node_rpc_check}")
|
|
160
160
|
|
|
161
161
|
# 4- docker API
|
|
162
162
|
node_docker_check = health_controller._check_node_docker_api(snode.mgmt_ip)
|
|
@@ -286,40 +286,42 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
|
|
|
286
286
|
logger.error(f"Failed to create {jm_bdev}")
|
|
287
287
|
return False
|
|
288
288
|
|
|
289
|
-
|
|
290
289
|
alceml_id = str(uuid.uuid4())
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
if
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
IP = None
|
|
302
|
-
for iface in snode.data_nics:
|
|
303
|
-
if iface.ip4_address:
|
|
304
|
-
tr_type = iface.get_transport_type()
|
|
305
|
-
ret = rpc_client.transport_list()
|
|
306
|
-
found = False
|
|
307
|
-
if ret:
|
|
308
|
-
for ty in ret:
|
|
309
|
-
if ty['trtype'] == tr_type:
|
|
310
|
-
found = True
|
|
311
|
-
if found is False:
|
|
312
|
-
ret = rpc_client.transport_create(tr_type)
|
|
313
|
-
logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
|
|
314
|
-
ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
|
|
315
|
-
IP = iface.ip4_address
|
|
316
|
-
break
|
|
317
|
-
logger.info(f"add {pt_name} to subsystem")
|
|
318
|
-
ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
|
|
319
|
-
if not ret:
|
|
320
|
-
logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
|
|
321
|
-
return False
|
|
290
|
+
pt_name = ""
|
|
291
|
+
subsystem_nqn = ""
|
|
292
|
+
IP = ""
|
|
293
|
+
if snode.enable_ha_jm:
|
|
294
|
+
# add pass through
|
|
295
|
+
pt_name = f"{jm_bdev}_PT"
|
|
296
|
+
ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
|
|
297
|
+
if not ret:
|
|
298
|
+
logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
|
|
299
|
+
return False
|
|
322
300
|
|
|
301
|
+
subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
|
|
302
|
+
logger.info("creating subsystem %s", subsystem_nqn)
|
|
303
|
+
ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
|
|
304
|
+
IP = None
|
|
305
|
+
for iface in snode.data_nics:
|
|
306
|
+
if iface.ip4_address:
|
|
307
|
+
tr_type = iface.get_transport_type()
|
|
308
|
+
ret = rpc_client.transport_list()
|
|
309
|
+
found = False
|
|
310
|
+
if ret:
|
|
311
|
+
for ty in ret:
|
|
312
|
+
if ty['trtype'] == tr_type:
|
|
313
|
+
found = True
|
|
314
|
+
if found is False:
|
|
315
|
+
ret = rpc_client.transport_create(tr_type)
|
|
316
|
+
logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
|
|
317
|
+
ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
|
|
318
|
+
IP = iface.ip4_address
|
|
319
|
+
break
|
|
320
|
+
logger.info(f"add {pt_name} to subsystem")
|
|
321
|
+
ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
|
|
322
|
+
if not ret:
|
|
323
|
+
logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
|
|
324
|
+
return False
|
|
323
325
|
|
|
324
326
|
ret = rpc_client.get_bdevs(raid_bdev)
|
|
325
327
|
|
|
@@ -380,38 +382,41 @@ def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
|
|
|
380
382
|
logger.error(f"Failed to create {jm_bdev}")
|
|
381
383
|
return False
|
|
382
384
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
if
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
IP = None
|
|
394
|
-
for iface in snode.data_nics:
|
|
395
|
-
if iface.ip4_address:
|
|
396
|
-
tr_type = iface.get_transport_type()
|
|
397
|
-
ret = rpc_client.transport_list()
|
|
398
|
-
found = False
|
|
399
|
-
if ret:
|
|
400
|
-
for ty in ret:
|
|
401
|
-
if ty['trtype'] == tr_type:
|
|
402
|
-
found = True
|
|
403
|
-
if found is False:
|
|
404
|
-
ret = rpc_client.transport_create(tr_type)
|
|
405
|
-
logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
|
|
406
|
-
ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
|
|
407
|
-
IP = iface.ip4_address
|
|
408
|
-
break
|
|
409
|
-
logger.info(f"add {pt_name} to subsystem")
|
|
410
|
-
ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
|
|
411
|
-
if not ret:
|
|
412
|
-
logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
|
|
413
|
-
return False
|
|
385
|
+
pt_name = ""
|
|
386
|
+
subsystem_nqn = ""
|
|
387
|
+
IP = ""
|
|
388
|
+
if snode.enable_ha_jm:
|
|
389
|
+
# add pass through
|
|
390
|
+
pt_name = f"{jm_bdev}_PT"
|
|
391
|
+
ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
|
|
392
|
+
if not ret:
|
|
393
|
+
logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
|
|
394
|
+
return False
|
|
414
395
|
|
|
396
|
+
subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
|
|
397
|
+
logger.info("creating subsystem %s", subsystem_nqn)
|
|
398
|
+
ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
|
|
399
|
+
IP = None
|
|
400
|
+
for iface in snode.data_nics:
|
|
401
|
+
if iface.ip4_address:
|
|
402
|
+
tr_type = iface.get_transport_type()
|
|
403
|
+
ret = rpc_client.transport_list()
|
|
404
|
+
found = False
|
|
405
|
+
if ret:
|
|
406
|
+
for ty in ret:
|
|
407
|
+
if ty['trtype'] == tr_type:
|
|
408
|
+
found = True
|
|
409
|
+
if found is False:
|
|
410
|
+
ret = rpc_client.transport_create(tr_type)
|
|
411
|
+
logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
|
|
412
|
+
ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
|
|
413
|
+
IP = iface.ip4_address
|
|
414
|
+
break
|
|
415
|
+
logger.info(f"add {pt_name} to subsystem")
|
|
416
|
+
ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
|
|
417
|
+
if not ret:
|
|
418
|
+
logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
|
|
419
|
+
return False
|
|
415
420
|
|
|
416
421
|
return JMDevice({
|
|
417
422
|
'uuid': alceml_id,
|
|
@@ -701,37 +706,38 @@ def _prepare_cluster_devices_on_restart(snode):
|
|
|
701
706
|
logger.error(f"Failed to create {jm_bdev}")
|
|
702
707
|
return False
|
|
703
708
|
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
709
|
+
if snode.enable_ha_jm:
|
|
710
|
+
# add pass through
|
|
711
|
+
pt_name = f"{jm_bdev}_PT"
|
|
712
|
+
ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
|
|
713
|
+
if not ret:
|
|
714
|
+
logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
|
|
715
|
+
return False
|
|
710
716
|
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
717
|
+
subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
|
|
718
|
+
logger.info("creating subsystem %s", subsystem_nqn)
|
|
719
|
+
ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
|
|
720
|
+
IP = None
|
|
721
|
+
for iface in snode.data_nics:
|
|
722
|
+
if iface.ip4_address:
|
|
723
|
+
tr_type = iface.get_transport_type()
|
|
724
|
+
ret = rpc_client.transport_list()
|
|
725
|
+
found = False
|
|
726
|
+
if ret:
|
|
727
|
+
for ty in ret:
|
|
728
|
+
if ty['trtype'] == tr_type:
|
|
729
|
+
found = True
|
|
730
|
+
if found is False:
|
|
731
|
+
ret = rpc_client.transport_create(tr_type)
|
|
732
|
+
logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
|
|
733
|
+
ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
|
|
734
|
+
IP = iface.ip4_address
|
|
735
|
+
break
|
|
736
|
+
logger.info(f"add {pt_name} to subsystem")
|
|
737
|
+
ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
|
|
738
|
+
if not ret:
|
|
739
|
+
logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
|
|
740
|
+
return False
|
|
735
741
|
|
|
736
742
|
return True
|
|
737
743
|
|
|
@@ -1847,7 +1853,7 @@ def shutdown_storage_node(node_id, force=False):
|
|
|
1847
1853
|
storage_events.snode_status_change(snode, snode.status, old_status)
|
|
1848
1854
|
|
|
1849
1855
|
rpc_client = RPCClient(
|
|
1850
|
-
snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
|
|
1856
|
+
snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password, timeout=10, retry=1)
|
|
1851
1857
|
|
|
1852
1858
|
logger.debug("Removing LVols")
|
|
1853
1859
|
_remove_bdev_stack(snode.lvstore_stack, rpc_client, remove_distr_only=True)
|
|
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.45 → sbcli_dev-3.8.47}/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.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/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.45 → sbcli_dev-3.8.47}/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.45 → sbcli_dev-3.8.47}/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.45 → sbcli_dev-3.8.47}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/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.45 → sbcli_dev-3.8.47}/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
|
{sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|