sbcli-dev 4.0.22__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.

Files changed (149) hide show
  1. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/PKG-INFO +1 -1
  2. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/env_var +1 -1
  3. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/device_controller.py +89 -28
  5. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/storage_node_ops.py +3 -1
  6. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/auth_middleware.py +0 -3
  7. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_cluster.py +8 -18
  8. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/README.md +0 -0
  9. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/pyproject.toml +0 -0
  10. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  11. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  12. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/entry_points.txt +0 -0
  13. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/requires.txt +0 -0
  14. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/sbcli_dev.egg-info/top_level.txt +0 -0
  15. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/setup.cfg +0 -0
  16. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/setup.py +0 -0
  17. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_cli/cli.py +0 -0
  18. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_cli/main.py +0 -0
  19. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/__init__.py +0 -0
  20. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/cluster_ops.py +0 -0
  21. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/cnode_client.py +0 -0
  22. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/compute_node_ops.py +0 -0
  23. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/constants.py +0 -0
  24. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  26. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/device_events.py +0 -0
  28. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/events_controller.py +0 -0
  29. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/health_controller.py +0 -0
  30. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/lvol_controller.py +0 -0
  31. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/lvol_events.py +0 -0
  32. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/mgmt_events.py +0 -0
  33. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/pool_controller.py +0 -0
  34. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/pool_events.py +0 -0
  35. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  36. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/snapshot_events.py +0 -0
  37. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/storage_events.py +0 -0
  38. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/tasks_controller.py +0 -0
  39. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/controllers/tasks_events.py +0 -0
  40. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/distr_controller.py +0 -0
  41. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/kv_store.py +0 -0
  42. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/mgmt_node_ops.py +0 -0
  43. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/__init__.py +0 -0
  44. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/base_model.py +0 -0
  45. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/caching_node.py +0 -0
  46. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/cluster.py +0 -0
  47. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/compute_node.py +0 -0
  48. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/deployer.py +0 -0
  49. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/events.py +0 -0
  50. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/global_settings.py +0 -0
  51. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/iface.py +0 -0
  52. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/job_schedule.py +0 -0
  53. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/lvol_model.py +0 -0
  54. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/mgmt_node.py +0 -0
  55. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/nvme_device.py +0 -0
  56. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/pool.py +0 -0
  57. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/port_stat.py +0 -0
  58. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/snapshot.py +0 -0
  59. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/stats.py +0 -0
  60. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/models/storage_node.py +0 -0
  61. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/pci_utils.py +0 -0
  62. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/rpc_client.py +0 -0
  63. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  79. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  80. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  81. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/haproxy.cfg +0 -0
  82. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/install_deps.sh +0 -0
  83. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/objstore.yml +0 -0
  84. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/prometheus.yml +0 -0
  85. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/run_ssh.sh +0 -0
  86. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/set_db_config.sh +0 -0
  87. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  88. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/__init__.py +0 -0
  89. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  90. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/health_check_service.py +0 -0
  95. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/install_service.sh +0 -0
  96. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/log_agg_service.py +0 -0
  97. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/lvol_monitor.py +0 -0
  98. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  99. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  100. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  101. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/new_device_discovery.py +0 -0
  102. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/port_stat_collector.py +0 -0
  103. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/remove_service.sh +0 -0
  104. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/service_template.service +0 -0
  105. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  106. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/storage_node_monitor.py +0 -0
  107. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  108. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  109. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  110. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  111. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  112. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/snode_client.py +0 -0
  114. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_core/utils.py +0 -0
  115. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/__init__.py +0 -0
  116. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/app.py +0 -0
  117. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/__init__.py +0 -0
  118. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  119. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  120. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  121. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  122. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  123. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/snode_ops.py +0 -0
  124. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  125. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  126. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-4.0.22 → sbcli_dev-4.0.23}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 4.0.22
3
+ Version: 4.0.23
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=4.0.22
2
+ SIMPLY_BLOCK_VERSION=4.0.23
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main-dev
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 4.0.22
3
+ Version: 4.0.23
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -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 and snode.jm_device.raid_bdev:
815
+ if snode.jm_device:
824
816
  rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
825
- bdevs_names = [d['name'] for d in rpc_client.get_bdevs()]
826
- jm_nvme_bdevs = []
827
- for dev in snode.nvme_devices:
828
- if dev.status != NVMeDevice.STATUS_ONLINE:
829
- continue
830
- dev_part = f"{dev.nvme_bdev[:-2]}p1"
831
- if dev_part in bdevs_names:
832
- if dev_part not in jm_nvme_bdevs:
833
- jm_nvme_bdevs.append(dev_part)
834
-
835
- if len(jm_nvme_bdevs) > 0:
836
- new_jm = storage_node_ops._create_jm_stack_on_raid(
837
- rpc_client, jm_nvme_bdevs, snode, after_restart=not format_alceml)
838
- if not new_jm:
839
- logger.error("failed to create jm stack")
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
- else:
843
- snode = db_controller.get_storage_node_by_id(snode.get_id())
844
- snode.jm_device = new_jm
845
- snode.write_to_db(db_controller.kv_store)
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
@@ -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
- return True
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
- clusters_list = []
59
- if uuid:
60
- cl = db_controller.get_cluster_by_id(uuid)
61
- if cl:
62
- clusters_list.append(cl)
63
- else:
64
- return utils.get_response_error(f"Cluster not found: {uuid}", 404)
65
- else:
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