sbcli-dev 4.0.21__zip → 4.0.23__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.21 → sbcli_dev-4.0.23}/PKG-INFO +1 -1
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/env_var +1 -1
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/device_controller.py +89 -28
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/lvol_controller.py +8 -2
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/storage_node_monitor.py +5 -5
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_failed_migration.py +1 -4
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/storage_node_ops.py +3 -1
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/auth_middleware.py +0 -3
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_cluster.py +8 -18
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/README.md +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/pyproject.toml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/setup.cfg +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/setup.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/kv_store.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/app.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_web/utils.py +0 -0
|
@@ -171,14 +171,6 @@ def _def_create_device_stack(device_obj, snode, force=False):
|
|
|
171
171
|
logger.info(f"Adding {pt_name} to the subsystem")
|
|
172
172
|
ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
|
|
173
173
|
|
|
174
|
-
if hasattr(device_obj, 'jm_bdev') and device_obj.jm_bdev:
|
|
175
|
-
ret = rpc_client.bdev_jm_create(device_obj.jm_bdev, device_obj.alceml_bdev,
|
|
176
|
-
jm_cpu_mask=snode.jm_cpu_mask)
|
|
177
|
-
if not ret:
|
|
178
|
-
logger.error(f"Failed to create jm bdev: {device_obj.jm_bdev}")
|
|
179
|
-
if not force:
|
|
180
|
-
return False
|
|
181
|
-
|
|
182
174
|
if snode.enable_test_device:
|
|
183
175
|
device_obj.testing_bdev = test_name
|
|
184
176
|
device_obj.alceml_bdev = alceml_name
|
|
@@ -820,29 +812,98 @@ def restart_jm_device(device_id, force=False, format_alceml=False):
|
|
|
820
812
|
return False
|
|
821
813
|
|
|
822
814
|
# add to jm raid
|
|
823
|
-
if snode.jm_device
|
|
815
|
+
if snode.jm_device:
|
|
824
816
|
rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
if dev_part
|
|
833
|
-
jm_nvme_bdevs
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
817
|
+
if snode.jm_device.raid_bdev:
|
|
818
|
+
bdevs_names = [d['name'] for d in rpc_client.get_bdevs()]
|
|
819
|
+
jm_nvme_bdevs = []
|
|
820
|
+
for dev in snode.nvme_devices:
|
|
821
|
+
if dev.status != NVMeDevice.STATUS_ONLINE:
|
|
822
|
+
continue
|
|
823
|
+
dev_part = f"{dev.nvme_bdev[:-2]}p1"
|
|
824
|
+
if dev_part in bdevs_names:
|
|
825
|
+
if dev_part not in jm_nvme_bdevs:
|
|
826
|
+
jm_nvme_bdevs.append(dev_part)
|
|
827
|
+
|
|
828
|
+
if len(jm_nvme_bdevs) > 0:
|
|
829
|
+
new_jm = storage_node_ops._create_jm_stack_on_raid(
|
|
830
|
+
rpc_client, jm_nvme_bdevs, snode, after_restart=not format_alceml)
|
|
831
|
+
if not new_jm:
|
|
832
|
+
logger.error("failed to create jm stack")
|
|
833
|
+
return False
|
|
834
|
+
|
|
835
|
+
else:
|
|
836
|
+
snode = db_controller.get_storage_node_by_id(snode.get_id())
|
|
837
|
+
snode.jm_device = new_jm
|
|
838
|
+
snode.write_to_db(db_controller.kv_store)
|
|
839
|
+
set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_ONLINE)
|
|
840
|
+
else:
|
|
841
|
+
nvme_bdev = jm_device.nvme_bdev
|
|
842
|
+
if snode.enable_test_device:
|
|
843
|
+
ret = rpc_client.bdev_passtest_create(jm_device.testing_bdev, jm_device.nvme_bdev)
|
|
844
|
+
if not ret:
|
|
845
|
+
logger.error(f"Failed to create passtest bdev {jm_device.testing_bdev}")
|
|
846
|
+
return False
|
|
847
|
+
nvme_bdev = jm_device.testing_bdev
|
|
848
|
+
alceml_cpu_mask = ""
|
|
849
|
+
alceml_worker_cpu_mask = ""
|
|
850
|
+
|
|
851
|
+
if snode.alceml_cpu_cores:
|
|
852
|
+
alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
|
|
853
|
+
snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
|
|
854
|
+
|
|
855
|
+
if snode.alceml_worker_cpu_cores:
|
|
856
|
+
alceml_worker_cpu_mask = utils.decimal_to_hex_power_of_2(
|
|
857
|
+
snode.alceml_worker_cpu_cores[snode.alceml_worker_cpu_index])
|
|
858
|
+
snode.alceml_worker_cpu_index = (snode.alceml_worker_cpu_index + 1) % len(snode.alceml_worker_cpu_cores)
|
|
859
|
+
|
|
860
|
+
ret = rpc_client.bdev_alceml_create(jm_device.alceml_bdev, nvme_bdev, jm_device.get_id(),
|
|
861
|
+
pba_init_mode=1, alceml_cpu_mask=alceml_cpu_mask,
|
|
862
|
+
alceml_worker_cpu_mask=alceml_worker_cpu_mask)
|
|
863
|
+
|
|
864
|
+
if not ret:
|
|
865
|
+
logger.error(f"Failed to create alceml bdev: {jm_device.alceml_bdev}")
|
|
866
|
+
return False
|
|
867
|
+
|
|
868
|
+
jm_bdev = f"jm_{snode.get_id()}"
|
|
869
|
+
ret = rpc_client.bdev_jm_create(jm_bdev, jm_device.alceml_bdev, jm_cpu_mask=snode.jm_cpu_mask)
|
|
870
|
+
if not ret:
|
|
871
|
+
logger.error(f"Failed to create {jm_bdev}")
|
|
840
872
|
return False
|
|
841
873
|
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
874
|
+
if snode.enable_ha_jm:
|
|
875
|
+
# add pass through
|
|
876
|
+
pt_name = f"{jm_bdev}_PT"
|
|
877
|
+
ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
|
|
878
|
+
if not ret:
|
|
879
|
+
logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
|
|
880
|
+
return False
|
|
881
|
+
|
|
882
|
+
subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
|
|
883
|
+
logger.info("creating subsystem %s", subsystem_nqn)
|
|
884
|
+
ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
|
|
885
|
+
IP = None
|
|
886
|
+
for iface in snode.data_nics:
|
|
887
|
+
if iface.ip4_address:
|
|
888
|
+
tr_type = iface.get_transport_type()
|
|
889
|
+
ret = rpc_client.transport_list()
|
|
890
|
+
found = False
|
|
891
|
+
if ret:
|
|
892
|
+
for ty in ret:
|
|
893
|
+
if ty['trtype'] == tr_type:
|
|
894
|
+
found = True
|
|
895
|
+
if found is False:
|
|
896
|
+
ret = rpc_client.transport_create(tr_type)
|
|
897
|
+
logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
|
|
898
|
+
ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
|
|
899
|
+
IP = iface.ip4_address
|
|
900
|
+
break
|
|
901
|
+
logger.info(f"add {pt_name} to subsystem")
|
|
902
|
+
ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
|
|
903
|
+
if not ret:
|
|
904
|
+
logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
|
|
905
|
+
return False
|
|
906
|
+
|
|
846
907
|
set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_ONLINE)
|
|
847
908
|
|
|
848
909
|
return True
|
|
@@ -167,7 +167,7 @@ def validate_add_lvol_func(name, size, host_id_or_name, pool_id_or_name,
|
|
|
167
167
|
|
|
168
168
|
def _get_next_3_nodes(cluster_id, lvol_size=0):
|
|
169
169
|
snodes = db_controller.get_storage_nodes_by_cluster_id(cluster_id)
|
|
170
|
-
|
|
170
|
+
online_nodes = []
|
|
171
171
|
node_stats = {}
|
|
172
172
|
for node in snodes:
|
|
173
173
|
if node.status == node.STATUS_ONLINE:
|
|
@@ -182,7 +182,7 @@ def _get_next_3_nodes(cluster_id, lvol_size=0):
|
|
|
182
182
|
# logger.warning(error)
|
|
183
183
|
# continue
|
|
184
184
|
#
|
|
185
|
-
|
|
185
|
+
online_nodes.append(node)
|
|
186
186
|
# node_stat_list = db_controller.get_node_stats(node, limit=1000)
|
|
187
187
|
# combined_record = utils.sum_records(node_stat_list)
|
|
188
188
|
node_st = {
|
|
@@ -539,9 +539,11 @@ def add_lvol_ha(name, size, host_id_or_name, ha_type, pool_id_or_name, use_comp,
|
|
|
539
539
|
return ret, error
|
|
540
540
|
lvol.nodes = nodes_ids
|
|
541
541
|
|
|
542
|
+
host_node = db_controller.get_storage_node_by_id(host_node.get_id())
|
|
542
543
|
host_node.lvols.append(lvol.uuid)
|
|
543
544
|
host_node.write_to_db(db_controller.kv_store)
|
|
544
545
|
|
|
546
|
+
pool = db_controller.get_pool_by_id(pool.get_id())
|
|
545
547
|
lvol.pool_uuid = pool.id
|
|
546
548
|
pool.lvols.append(lvol.uuid)
|
|
547
549
|
pool.write_to_db(db_controller.kv_store)
|
|
@@ -852,11 +854,15 @@ def delete_lvol(id_or_name, force_delete=False):
|
|
|
852
854
|
return False
|
|
853
855
|
|
|
854
856
|
# remove from storage node
|
|
857
|
+
snode = db_controller.get_storage_node_by_id(lvol.node_id)
|
|
858
|
+
logger.debug(snode)
|
|
859
|
+
logger.debug(f"removing lvol: {lvol.get_id()} from node lvol list: {str(snode.lvols)}")
|
|
855
860
|
if lvol.get_id() in snode.lvols:
|
|
856
861
|
snode.lvols.remove(lvol.get_id())
|
|
857
862
|
snode.write_to_db(db_controller.kv_store)
|
|
858
863
|
|
|
859
864
|
# remove from pool
|
|
865
|
+
pool = db_controller.get_pool_by_id(lvol.pool_uuid)
|
|
860
866
|
if lvol.get_id() in pool.lvols:
|
|
861
867
|
pool.lvols.remove(lvol.get_id())
|
|
862
868
|
pool.write_to_db(db_controller.kv_store)
|
|
@@ -106,8 +106,8 @@ def set_node_online(node):
|
|
|
106
106
|
device_controller.device_set_online(dev.get_id())
|
|
107
107
|
|
|
108
108
|
# set jm dev online
|
|
109
|
-
if
|
|
110
|
-
device_controller.set_jm_device_state(
|
|
109
|
+
if node.jm_device.status == JMDevice.STATUS_UNAVAILABLE:
|
|
110
|
+
device_controller.set_jm_device_state(node.jm_device.get_id(), JMDevice.STATUS_ONLINE)
|
|
111
111
|
|
|
112
112
|
# set node online
|
|
113
113
|
storage_node_ops.set_node_status(node.get_id(), StorageNode.STATUS_ONLINE)
|
|
@@ -116,7 +116,7 @@ def set_node_online(node):
|
|
|
116
116
|
def set_node_offline(node):
|
|
117
117
|
if node.status != StorageNode.STATUS_UNREACHABLE:
|
|
118
118
|
# set node unavailable
|
|
119
|
-
storage_node_ops.set_node_status(
|
|
119
|
+
storage_node_ops.set_node_status(node.get_id(), StorageNode.STATUS_UNREACHABLE)
|
|
120
120
|
|
|
121
121
|
# set devices unavailable
|
|
122
122
|
for dev in node.nvme_devices:
|
|
@@ -124,8 +124,8 @@ def set_node_offline(node):
|
|
|
124
124
|
device_controller.device_set_unavailable(dev.get_id())
|
|
125
125
|
|
|
126
126
|
# set jm dev offline
|
|
127
|
-
if
|
|
128
|
-
device_controller.set_jm_device_state(
|
|
127
|
+
if node.jm_device.status != JMDevice.STATUS_UNAVAILABLE:
|
|
128
|
+
device_controller.set_jm_device_state(node.jm_device.get_id(), JMDevice.STATUS_UNAVAILABLE)
|
|
129
129
|
|
|
130
130
|
|
|
131
131
|
logger.info("Starting node monitor")
|
{sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
@@ -65,10 +65,7 @@ def task_runner(task):
|
|
|
65
65
|
task.write_to_db(db_controller.kv_store)
|
|
66
66
|
return False
|
|
67
67
|
|
|
68
|
-
task.function_params = {
|
|
69
|
-
"migration": {
|
|
70
|
-
"name": distr_name}
|
|
71
|
-
}
|
|
68
|
+
task.function_params['migration'] = {"name": distr_name}
|
|
72
69
|
task.write_to_db(db_controller.kv_store)
|
|
73
70
|
time.sleep(3)
|
|
74
71
|
|
|
@@ -16,6 +16,7 @@ from simplyblock_core import constants, scripts, distr_controller
|
|
|
16
16
|
from simplyblock_core import utils
|
|
17
17
|
from simplyblock_core.controllers import lvol_controller, storage_events, snapshot_controller, device_events, \
|
|
18
18
|
device_controller, tasks_controller, health_controller
|
|
19
|
+
from simplyblock_core.controllers.device_controller import set_jm_device_state
|
|
19
20
|
from simplyblock_core.kv_store import DBController, KVStore
|
|
20
21
|
from simplyblock_core import shell_utils
|
|
21
22
|
from simplyblock_core.models.iface import IFace
|
|
@@ -743,7 +744,8 @@ def _prepare_cluster_devices_on_restart(snode):
|
|
|
743
744
|
logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
|
|
744
745
|
return False
|
|
745
746
|
|
|
746
|
-
|
|
747
|
+
set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_ONLINE)
|
|
748
|
+
return True
|
|
747
749
|
|
|
748
750
|
|
|
749
751
|
def _connect_to_remote_devs(this_node):
|
|
@@ -10,9 +10,6 @@ from simplyblock_core import kv_store
|
|
|
10
10
|
def token_required(f):
|
|
11
11
|
@wraps(f)
|
|
12
12
|
def decorated(*args, **kwargs):
|
|
13
|
-
#TODO: added for e2e tests automation
|
|
14
|
-
if request.method == "GET" and request.path.startswith("/cluster"):
|
|
15
|
-
return f(*args, **kwargs)
|
|
16
13
|
cluster_id = None
|
|
17
14
|
cluster_secret = None
|
|
18
15
|
if "Authorization" in request.headers:
|
|
@@ -55,24 +55,14 @@ def add_cluster():
|
|
|
55
55
|
@bp.route('/cluster', methods=['GET'], defaults={'uuid': None})
|
|
56
56
|
@bp.route('/cluster/<string:uuid>', methods=['GET'])
|
|
57
57
|
def list_clusters(uuid):
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
cls = db_controller.get_clusters()
|
|
67
|
-
if cls:
|
|
68
|
-
clusters_list.extend(cls)
|
|
69
|
-
|
|
70
|
-
data = []
|
|
71
|
-
for cluster in clusters_list:
|
|
72
|
-
d = cluster.get_clean_dict()
|
|
73
|
-
d['status_code'] = cluster.get_status_code()
|
|
74
|
-
data.append(d)
|
|
75
|
-
return utils.get_response(data)
|
|
58
|
+
cluster_id = utils.get_cluster_id(request)
|
|
59
|
+
cluster = db_controller.get_cluster_by_id(cluster_id)
|
|
60
|
+
if not cluster:
|
|
61
|
+
return utils.get_response_error(f"Cluster not found: {cluster_id}", 404)
|
|
62
|
+
|
|
63
|
+
d = cluster.get_clean_dict()
|
|
64
|
+
d['status_code'] = cluster.get_status_code()
|
|
65
|
+
return utils.get_response(d)
|
|
76
66
|
|
|
77
67
|
|
|
78
68
|
@bp.route('/cluster/capacity/<string:uuid>/history/<string:history>', methods=['GET'])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.21 → sbcli_dev-4.0.23}/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-4.0.21 → sbcli_dev-4.0.23}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/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.21 → sbcli_dev-4.0.23}/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.21 → sbcli_dev-4.0.23}/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.21 → sbcli_dev-4.0.23}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/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
|
{sbcli_dev-4.0.21 → sbcli_dev-4.0.23}/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-4.0.21 → sbcli_dev-4.0.23}/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
|