sbcli-dev 3.8.58__zip → 3.8.59__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.58 → sbcli_dev-3.8.59}/PKG-INFO +1 -1
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/env_var +1 -1
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/device_controller.py +94 -5
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/README.md +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/pyproject.toml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/setup.cfg +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/setup.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/kv_store.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/distr_event_collector.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/storage_node_ops.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/app.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_web/utils.py +0 -0
|
@@ -4,7 +4,8 @@ import logging
|
|
|
4
4
|
from simplyblock_core import distr_controller, utils, storage_node_ops
|
|
5
5
|
from simplyblock_core.controllers import device_events, lvol_controller, tasks_controller
|
|
6
6
|
from simplyblock_core.kv_store import DBController
|
|
7
|
-
from simplyblock_core.models.nvme_device import NVMeDevice
|
|
7
|
+
from simplyblock_core.models.nvme_device import NVMeDevice, JMDevice
|
|
8
|
+
from simplyblock_core.models.storage_node import StorageNode
|
|
8
9
|
from simplyblock_core.rpc_client import RPCClient
|
|
9
10
|
|
|
10
11
|
|
|
@@ -248,6 +249,53 @@ def restart_device(device_id, force=False):
|
|
|
248
249
|
logger.info("Setting device online")
|
|
249
250
|
device_set_online(device_id)
|
|
250
251
|
device_events.device_restarted(device_obj)
|
|
252
|
+
|
|
253
|
+
# add to jm raid
|
|
254
|
+
if snode.jm_device and snode.jm_device.raid_bdev:
|
|
255
|
+
nvme_controller = device_obj.nvme_controller
|
|
256
|
+
jm_part = None
|
|
257
|
+
for part in snode.jm_device.jm_nvme_bdev_list:
|
|
258
|
+
if part.startswith(nvme_controller):
|
|
259
|
+
jm_part = part
|
|
260
|
+
break
|
|
261
|
+
if snode.jm_device.status == NVMeDevice.STATUS_ONLINE:
|
|
262
|
+
set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_UNAVAILABLE)
|
|
263
|
+
# delete jm stack
|
|
264
|
+
if snode.enable_ha_jm:
|
|
265
|
+
ret = rpc_client.subsystem_delete(snode.jm_device.nvmf_nqn)
|
|
266
|
+
|
|
267
|
+
if snode.jm_device.pt_bdev:
|
|
268
|
+
ret = rpc_client.bdev_PT_NoExcl_delete(snode.jm_device.pt_bdev)
|
|
269
|
+
|
|
270
|
+
ret = rpc_client.bdev_jm_delete(snode.jm_device.jm_bdev)
|
|
271
|
+
if snode.jm_device.testing_bdev:
|
|
272
|
+
ret = rpc_client.bdev_passtest_delete(snode.jm_device.testing_bdev)
|
|
273
|
+
ret = rpc_client.bdev_alceml_delete(snode.jm_device.alceml_bdev)
|
|
274
|
+
if len(snode.jm_device.jm_nvme_bdev_list) == 2:
|
|
275
|
+
ret = rpc_client.bdev_raid_delete(snode.jm_device.raid_bdev)
|
|
276
|
+
|
|
277
|
+
# create jm
|
|
278
|
+
jm_nvme_bdevs = snode.jm_device.jm_nvme_bdev_list
|
|
279
|
+
if jm_part not in jm_nvme_bdevs:
|
|
280
|
+
jm_nvme_bdevs.append(jm_part)
|
|
281
|
+
new_jm = storage_node_ops._create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart=True)
|
|
282
|
+
if new_jm:
|
|
283
|
+
snode = db_controller.get_storage_node_by_id(snode.get_id())
|
|
284
|
+
snode.jm_device = new_jm
|
|
285
|
+
snode.write_to_db(db_controller.kv_store)
|
|
286
|
+
set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_ONLINE)
|
|
287
|
+
|
|
288
|
+
# make other nodes connect to new jm
|
|
289
|
+
if snode.enable_ha_jm:
|
|
290
|
+
logger.info("Make other nodes connect to the new devices")
|
|
291
|
+
snodes = db_controller.get_storage_nodes_by_cluster_id(snode.cluster_id)
|
|
292
|
+
for node_index, node in enumerate(snodes):
|
|
293
|
+
if node.get_id() == snode.get_id() or node.status != StorageNode.STATUS_ONLINE:
|
|
294
|
+
continue
|
|
295
|
+
node.remote_jm_devices = storage_node_ops._connect_to_remote_jm_devs(node)
|
|
296
|
+
node.write_to_db(db_controller.kv_store)
|
|
297
|
+
logger.info(f"connected to devices count: {len(node.remote_devices)}")
|
|
298
|
+
|
|
251
299
|
return "Done"
|
|
252
300
|
|
|
253
301
|
|
|
@@ -377,10 +425,51 @@ def device_remove(device_id, force=True):
|
|
|
377
425
|
break
|
|
378
426
|
|
|
379
427
|
if dev_to_remove:
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
snode.jm_device.
|
|
383
|
-
|
|
428
|
+
if len(snode.jm_device.jm_nvme_bdev_list) <= 2:
|
|
429
|
+
|
|
430
|
+
set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_UNAVAILABLE)
|
|
431
|
+
|
|
432
|
+
# delete jm stack
|
|
433
|
+
if snode.enable_ha_jm:
|
|
434
|
+
ret = rpc_client.subsystem_delete(snode.jm_device.nvmf_nqn)
|
|
435
|
+
|
|
436
|
+
if snode.jm_device.pt_bdev:
|
|
437
|
+
ret = rpc_client.bdev_PT_NoExcl_delete(snode.jm_device.pt_bdev)
|
|
438
|
+
|
|
439
|
+
ret = rpc_client.bdev_jm_delete(snode.jm_device.jm_bdev)
|
|
440
|
+
if snode.jm_device.testing_bdev:
|
|
441
|
+
ret = rpc_client.bdev_passtest_delete(snode.jm_device.testing_bdev)
|
|
442
|
+
ret = rpc_client.bdev_alceml_delete(snode.jm_device.alceml_bdev)
|
|
443
|
+
if len(snode.jm_device.jm_nvme_bdev_list) == 2:
|
|
444
|
+
ret = rpc_client.bdev_raid_delete(snode.jm_device.raid_bdev)
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
# create jm
|
|
448
|
+
jm_nvme_bdevs = snode.jm_device.jm_nvme_bdev_list
|
|
449
|
+
jm_nvme_bdevs.remove(dev_to_remove)
|
|
450
|
+
if len(jm_nvme_bdevs) > 0:
|
|
451
|
+
new_jm = storage_node_ops._create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart=True)
|
|
452
|
+
snode.jm_device = new_jm
|
|
453
|
+
snode.write_to_db(db_controller.kv_store)
|
|
454
|
+
set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_ONLINE)
|
|
455
|
+
|
|
456
|
+
# make other nodes connect to new jm
|
|
457
|
+
if snode.enable_ha_jm:
|
|
458
|
+
logger.info("Make other nodes connect to the new devices")
|
|
459
|
+
snodes = db_controller.get_storage_nodes_by_cluster_id(snode.cluster_id)
|
|
460
|
+
for node_index, node in enumerate(snodes):
|
|
461
|
+
if node.get_id() == snode.get_id() or node.status != StorageNode.STATUS_ONLINE:
|
|
462
|
+
continue
|
|
463
|
+
node.remote_jm_devices = storage_node_ops._connect_to_remote_jm_devs(node)
|
|
464
|
+
node.write_to_db(db_controller.kv_store)
|
|
465
|
+
logger.info(f"connected to devices count: {len(node.remote_devices)}")
|
|
466
|
+
time.sleep(3)
|
|
467
|
+
|
|
468
|
+
elif len(snode.jm_device.jm_nvme_bdev_list) > 2:
|
|
469
|
+
ret = rpc_client.bdev_raid_remove_base_bdev(snode.jm_device.raid_bdev, dev_to_remove)
|
|
470
|
+
if ret:
|
|
471
|
+
snode.jm_device.jm_nvme_bdev_list.remove(dev_to_remove)
|
|
472
|
+
snode.write_to_db(db_controller.kv_store)
|
|
384
473
|
|
|
385
474
|
return True
|
|
386
475
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.58 → sbcli_dev-3.8.59}/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_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/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.58 → sbcli_dev-3.8.59}/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.58 → sbcli_dev-3.8.59}/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.58 → sbcli_dev-3.8.59}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/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.58 → sbcli_dev-3.8.59}/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
|
{sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.58 → sbcli_dev-3.8.59}/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
|
|
File without changes
|