sbcli-dev 4.0.17__zip → 4.0.19__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.
Potentially problematic release.
This version of sbcli-dev might be problematic. Click here for more details.
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/PKG-INFO +1 -1
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/env_var +1 -1
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/health_controller.py +1 -1
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/tasks_controller.py +18 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/rpc_client.py +4 -19
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/health_check_service.py +6 -1
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/main_distr_event_collector.py +3 -2
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/storage_node_monitor.py +6 -2
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/storage_node_ops.py +9 -2
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/README.md +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/pyproject.toml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/setup.cfg +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/setup.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/kv_store.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/app.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/utils.py +0 -0
|
@@ -446,7 +446,7 @@ def check_jm_device(device_id):
|
|
|
446
446
|
try:
|
|
447
447
|
rpc_client = RPCClient(
|
|
448
448
|
snode.mgmt_ip, snode.rpc_port,
|
|
449
|
-
snode.rpc_username, snode.rpc_password)
|
|
449
|
+
snode.rpc_username, snode.rpc_password, timeout=3, retry=2)
|
|
450
450
|
|
|
451
451
|
ret = rpc_client.get_bdevs(jm_device.jm_bdev)
|
|
452
452
|
if ret:
|
|
@@ -52,6 +52,11 @@ def _add_task(function_name, cluster_id, node_id, device_id,
|
|
|
52
52
|
if task_id:
|
|
53
53
|
logger.info(f"Task found, skip adding new task: {task_id}")
|
|
54
54
|
return False
|
|
55
|
+
elif function_name == JobSchedule.FN_DEV_MIG:
|
|
56
|
+
task_id = get_device_mig_task(cluster_id, node_id, function_params['distr_name'])
|
|
57
|
+
if task_id:
|
|
58
|
+
logger.info(f"Task found, skip adding new task: {task_id}")
|
|
59
|
+
return False
|
|
55
60
|
|
|
56
61
|
task_obj = JobSchedule()
|
|
57
62
|
task_obj.uuid = str(uuid.uuid4())
|
|
@@ -72,6 +77,8 @@ def _add_task(function_name, cluster_id, node_id, device_id,
|
|
|
72
77
|
def add_device_mig_task(device_id):
|
|
73
78
|
device = db_controller.get_storage_devices(device_id)
|
|
74
79
|
for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
|
|
80
|
+
if not node.lvols:
|
|
81
|
+
continue
|
|
75
82
|
for bdev in node.lvstore_stack:
|
|
76
83
|
if bdev['type'] == "bdev_distr":
|
|
77
84
|
_add_task(JobSchedule.FN_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
|
|
@@ -190,6 +197,7 @@ def get_active_node_task(cluster_id, node_id):
|
|
|
190
197
|
return task.uuid
|
|
191
198
|
return False
|
|
192
199
|
|
|
200
|
+
|
|
193
201
|
def get_new_device_mig_task(cluster_id, node_id, distr_name):
|
|
194
202
|
tasks = db_controller.get_job_tasks(cluster_id)
|
|
195
203
|
for task in tasks:
|
|
@@ -198,3 +206,13 @@ def get_new_device_mig_task(cluster_id, node_id, distr_name):
|
|
|
198
206
|
and "distr_name" in task.function_params and task.function_params["distr_name"] == distr_name:
|
|
199
207
|
return task.uuid
|
|
200
208
|
return False
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def get_device_mig_task(cluster_id, node_id, distr_name):
|
|
212
|
+
tasks = db_controller.get_job_tasks(cluster_id)
|
|
213
|
+
for task in tasks:
|
|
214
|
+
if task.function_name == JobSchedule.FN_DEV_MIG and task.node_id == node_id:
|
|
215
|
+
if task.status != JobSchedule.STATUS_DONE and task.canceled is False \
|
|
216
|
+
and "distr_name" in task.function_params and task.function_params["distr_name"] == distr_name:
|
|
217
|
+
return task.uuid
|
|
218
|
+
return False
|
|
@@ -482,27 +482,11 @@ class RPCClient:
|
|
|
482
482
|
"trsvcid": str(port),
|
|
483
483
|
"subnqn": nqn,
|
|
484
484
|
"fabrics_connect_timeout_us": 100000,
|
|
485
|
-
"fast_io_fail_timeout_sec": 1,
|
|
485
|
+
# "fast_io_fail_timeout_sec": 1,
|
|
486
486
|
"num_io_queues": 16384,
|
|
487
|
-
"ctrlr_loss_timeout_sec": 1,
|
|
487
|
+
# "ctrlr_loss_timeout_sec": 1,
|
|
488
488
|
"multipath":"disable",
|
|
489
|
-
"reconnect_delay_sec":1
|
|
490
|
-
}
|
|
491
|
-
return self._request("bdev_nvme_attach_controller", params)
|
|
492
|
-
|
|
493
|
-
def bdev_nvme_attach_controller_tcp_jm(self, name, nqn, ip, port):
|
|
494
|
-
params = {
|
|
495
|
-
"name": name,
|
|
496
|
-
"trtype": "tcp",
|
|
497
|
-
"traddr": ip,
|
|
498
|
-
"adrfam": "ipv4",
|
|
499
|
-
"trsvcid": str(port),
|
|
500
|
-
"subnqn": nqn,
|
|
501
|
-
"fast_io_fail_timeout_sec": 1,
|
|
502
|
-
"ctrlr_loss_timeout_sec": 3,
|
|
503
|
-
"reconnect_delay_sec": 1,
|
|
504
|
-
"fabrics_connect_timeout_us": 100000,
|
|
505
|
-
"multipath":"disable"
|
|
489
|
+
# "reconnect_delay_sec":1
|
|
506
490
|
}
|
|
507
491
|
return self._request("bdev_nvme_attach_controller", params)
|
|
508
492
|
|
|
@@ -559,6 +543,7 @@ class RPCClient:
|
|
|
559
543
|
|
|
560
544
|
def bdev_nvme_set_options(self):
|
|
561
545
|
params = {
|
|
546
|
+
# "action_on_timeout": "abort",
|
|
562
547
|
"bdev_retry_count": 0,
|
|
563
548
|
"transport_retry_count": 0,
|
|
564
549
|
"ctrlr_loss_timeout_sec": 2,
|
|
@@ -115,6 +115,8 @@ while True:
|
|
|
115
115
|
connected_devices.append(remote_device.get_id())
|
|
116
116
|
else:
|
|
117
117
|
logger.info(f"Checking bdev: {remote_device.remote_bdev} ... not found")
|
|
118
|
+
ret = rpc_client.bdev_nvme_detach_controller(remote_device.remote_bdev)
|
|
119
|
+
time.sleep(1)
|
|
118
120
|
ret = rpc_client.bdev_nvme_attach_controller_tcp(
|
|
119
121
|
remote_device.remote_bdev, remote_device.nvmf_nqn, remote_device.nvmf_ip, remote_device.nvmf_port)
|
|
120
122
|
if ret:
|
|
@@ -127,7 +129,7 @@ while True:
|
|
|
127
129
|
node_remote_devices_check &= bool(ret)
|
|
128
130
|
|
|
129
131
|
for node in db_controller.get_storage_nodes_by_cluster_id(snode.cluster_id):
|
|
130
|
-
if node.status != StorageNode.STATUS_ONLINE:
|
|
132
|
+
if node.status != StorageNode.STATUS_ONLINE or node.get_id() == snode.get_id():
|
|
131
133
|
continue
|
|
132
134
|
for dev in node.nvme_devices:
|
|
133
135
|
if dev.status == StorageNode.STATUS_ONLINE:
|
|
@@ -135,6 +137,8 @@ while True:
|
|
|
135
137
|
logger.info(f"connecting to online device: {dev.get_id()}")
|
|
136
138
|
name = f"remote_{dev.alceml_bdev}"
|
|
137
139
|
bdev_name = f"{name}n1"
|
|
140
|
+
ret = rpc_client.bdev_nvme_detach_controller(name)
|
|
141
|
+
time.sleep(1)
|
|
138
142
|
ret = rpc_client.bdev_nvme_attach_controller_tcp(
|
|
139
143
|
name, dev.nvmf_nqn, dev.nvmf_ip,
|
|
140
144
|
dev.nvmf_port)
|
|
@@ -200,6 +204,7 @@ while True:
|
|
|
200
204
|
logger.info(f"Checking Distr map ... {is_passed}")
|
|
201
205
|
else:
|
|
202
206
|
logger.error("Failed to parse distr cluster map")
|
|
207
|
+
|
|
203
208
|
lvstore_check &= is_passed
|
|
204
209
|
else:
|
|
205
210
|
logger.info(f"Checking distr bdev : {distr} ... not found")
|
{sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/main_distr_event_collector.py
RENAMED
|
@@ -48,8 +48,9 @@ def process_device_event(event):
|
|
|
48
48
|
device_id = device.get_id()
|
|
49
49
|
node = db_controller.get_storage_node_by_id(node_id)
|
|
50
50
|
if device.node_id != node_id:
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
if event.message != 'SPDK_BDEV_EVENT_REMOVE':
|
|
52
|
+
logger.info(f"Setting storage id: {storage_id} unavailable")
|
|
53
|
+
distr_controller.send_dev_status_event(device, NVMeDevice.STATUS_UNAVAILABLE, node)
|
|
53
54
|
# if device.status == NVMeDevice.STATUS_ONLINE:
|
|
54
55
|
# device_controller.device_set_io_error(device_id, True)
|
|
55
56
|
# device_controller.device_set_unavailable(device_id)
|
|
@@ -154,7 +154,6 @@ while True:
|
|
|
154
154
|
logger.info(f"Check 2: ping mgmt ip {snode.mgmt_ip} ... {ping_check}")
|
|
155
155
|
|
|
156
156
|
# 2- check node API
|
|
157
|
-
|
|
158
157
|
node_api_check = health_controller._check_node_api(snode.mgmt_ip)
|
|
159
158
|
logger.info(f"Check: node API {snode.mgmt_ip}:5000 ... {node_api_check}")
|
|
160
159
|
|
|
@@ -162,7 +161,12 @@ while True:
|
|
|
162
161
|
spdk_process = health_controller._check_spdk_process_up(snode.mgmt_ip)
|
|
163
162
|
logger.info(f"Check: spdk process {snode.mgmt_ip}:5000 ... {spdk_process}")
|
|
164
163
|
|
|
165
|
-
|
|
164
|
+
# 4- check rpc
|
|
165
|
+
node_rpc_check = health_controller._check_node_rpc(
|
|
166
|
+
snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
|
|
167
|
+
logger.info(f"Check: node RPC {snode.mgmt_ip}:{snode.rpc_port} ... {node_rpc_check}")
|
|
168
|
+
|
|
169
|
+
is_node_online = ping_check and node_api_check and spdk_process and node_rpc_check
|
|
166
170
|
if is_node_online:
|
|
167
171
|
set_node_online(snode)
|
|
168
172
|
|
|
@@ -751,7 +751,7 @@ def _connect_to_remote_devs(this_node):
|
|
|
751
751
|
|
|
752
752
|
rpc_client = RPCClient(
|
|
753
753
|
this_node.mgmt_ip, this_node.rpc_port,
|
|
754
|
-
this_node.rpc_username, this_node.rpc_password, timeout=
|
|
754
|
+
this_node.rpc_username, this_node.rpc_password, timeout=5, retry=2)
|
|
755
755
|
|
|
756
756
|
remote_devices = []
|
|
757
757
|
# connect to remote devs
|
|
@@ -771,6 +771,8 @@ def _connect_to_remote_devs(this_node):
|
|
|
771
771
|
if ret:
|
|
772
772
|
logger.info(f"bdev found {bdev_name}")
|
|
773
773
|
else:
|
|
774
|
+
ret = rpc_client.bdev_nvme_detach_controller(name)
|
|
775
|
+
time.sleep(1)
|
|
774
776
|
ret = rpc_client.bdev_nvme_attach_controller_tcp(name, dev.nvmf_nqn, dev.nvmf_ip, dev.nvmf_port)
|
|
775
777
|
if not ret:
|
|
776
778
|
logger.error(f"Failed to connect to device: {dev.get_id()}")
|
|
@@ -786,7 +788,7 @@ def _connect_to_remote_jm_devs(this_node, jm_ids=[]):
|
|
|
786
788
|
|
|
787
789
|
rpc_client = RPCClient(
|
|
788
790
|
this_node.mgmt_ip, this_node.rpc_port,
|
|
789
|
-
this_node.rpc_username, this_node.rpc_password, timeout=
|
|
791
|
+
this_node.rpc_username, this_node.rpc_password, timeout=5, retry=2)
|
|
790
792
|
|
|
791
793
|
node_bdevs = rpc_client.get_bdevs()
|
|
792
794
|
if node_bdevs:
|
|
@@ -2029,6 +2031,11 @@ def resume_storage_node(node_id):
|
|
|
2029
2031
|
if snode.jm_device and snode.jm_device.status == JMDevice.STATUS_UNAVAILABLE:
|
|
2030
2032
|
device_controller.set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_ONLINE)
|
|
2031
2033
|
|
|
2034
|
+
logger.info("Connecting to remote devices")
|
|
2035
|
+
snode = db_controller.get_storage_node_by_id(node_id)
|
|
2036
|
+
snode.remote_devices = _connect_to_remote_devs(snode)
|
|
2037
|
+
snode.write_to_db(db_controller.kv_store)
|
|
2038
|
+
|
|
2032
2039
|
rpc_client = RPCClient(
|
|
2033
2040
|
snode.mgmt_ip, snode.rpc_port,
|
|
2034
2041
|
snode.rpc_username, snode.rpc_password)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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-4.0.17 → sbcli_dev-4.0.19}/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
|
{sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/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-4.0.17 → sbcli_dev-4.0.19}/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-4.0.17 → sbcli_dev-4.0.19}/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-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/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
|