sbcli-dev 3.8.31__zip → 3.8.33__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.
Files changed (149) hide show
  1. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/PKG-INFO +1 -1
  2. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/env_var +1 -1
  3. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_cli/cli.py +9 -0
  5. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/device_controller.py +22 -0
  6. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/kv_store.py +7 -0
  7. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/nvme_device.py +1 -0
  8. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/storage_node_ops.py +8 -6
  9. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/README.md +0 -0
  10. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/pyproject.toml +0 -0
  11. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  12. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  13. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/sbcli_dev.egg-info/entry_points.txt +0 -0
  14. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/sbcli_dev.egg-info/requires.txt +0 -0
  15. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/sbcli_dev.egg-info/top_level.txt +0 -0
  16. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/setup.cfg +0 -0
  17. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/setup.py +0 -0
  18. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_cli/main.py +0 -0
  19. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/__init__.py +0 -0
  20. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/cluster_ops.py +0 -0
  21. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/cnode_client.py +0 -0
  22. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/compute_node_ops.py +0 -0
  23. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/constants.py +0 -0
  24. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  26. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/device_events.py +0 -0
  28. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/events_controller.py +0 -0
  29. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/health_controller.py +0 -0
  30. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/lvol_controller.py +0 -0
  31. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/lvol_events.py +0 -0
  32. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/mgmt_events.py +0 -0
  33. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/pool_controller.py +0 -0
  34. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/pool_events.py +0 -0
  35. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  36. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/snapshot_events.py +0 -0
  37. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/storage_events.py +0 -0
  38. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/tasks_controller.py +0 -0
  39. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/controllers/tasks_events.py +0 -0
  40. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/distr_controller.py +0 -0
  41. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/mgmt_node_ops.py +0 -0
  42. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/__init__.py +0 -0
  43. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/base_model.py +0 -0
  44. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/caching_node.py +0 -0
  45. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/cluster.py +0 -0
  46. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/compute_node.py +0 -0
  47. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/deployer.py +0 -0
  48. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/events.py +0 -0
  49. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/global_settings.py +0 -0
  50. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/iface.py +0 -0
  51. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/job_schedule.py +0 -0
  52. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/lvol_model.py +0 -0
  53. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/mgmt_node.py +0 -0
  54. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/pool.py +0 -0
  55. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/port_stat.py +0 -0
  56. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/snapshot.py +0 -0
  57. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/stats.py +0 -0
  58. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/models/storage_node.py +0 -0
  59. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/pci_utils.py +0 -0
  60. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/rpc_client.py +0 -0
  61. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/__init__.py +0 -0
  62. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  63. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  64. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  65. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/config_docker.sh +0 -0
  66. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/dashboard.yml +0 -0
  67. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  68. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  69. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  70. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  71. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  72. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  73. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/datasource.yml +0 -0
  74. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/db_config_double.sh +0 -0
  75. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/db_config_single.sh +0 -0
  76. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  77. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  78. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  79. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/haproxy.cfg +0 -0
  80. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/install_deps.sh +0 -0
  81. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/objstore.yml +0 -0
  82. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/prometheus.yml +0 -0
  83. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/run_ssh.sh +0 -0
  84. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/set_db_config.sh +0 -0
  85. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  86. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/__init__.py +0 -0
  87. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  88. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/caching_node_monitor.py +0 -0
  89. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/cap_monitor.py +0 -0
  90. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  91. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/device_monitor.py +0 -0
  92. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/distr_event_collector.py +0 -0
  93. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/health_check_service.py +0 -0
  94. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/install_service.sh +0 -0
  95. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/log_agg_service.py +0 -0
  96. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/lvol_monitor.py +0 -0
  97. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  98. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  99. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  100. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/new_device_discovery.py +0 -0
  101. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/port_stat_collector.py +0 -0
  102. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/remove_service.sh +0 -0
  103. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/service_template.service +0 -0
  104. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/storage_node_monitor.py +0 -0
  105. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  106. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  107. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  108. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  109. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  110. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/shell_utils.py +0 -0
  111. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/snode_client.py +0 -0
  112. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_core/utils.py +0 -0
  113. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/__init__.py +0 -0
  114. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/app.py +0 -0
  115. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/auth_middleware.py +0 -0
  116. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/__init__.py +0 -0
  117. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  118. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  119. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  120. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  121. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  122. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/snode_ops.py +0 -0
  123. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  124. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-3.8.31 → sbcli_dev-3.8.33}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.8.31
3
+ Version: 3.8.33
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=3.8.31
2
+ SIMPLY_BLOCK_VERSION=3.8.33
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.8.31
3
+ Version: 3.8.33
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -142,6 +142,13 @@ class CLIWrapper:
142
142
  'io_error_on_unmap', 'io_error_on_all', 'discard_io_all',
143
143
  'hotplug_removal'], default='full_pass_through')
144
144
 
145
+ sub_command = self.add_sub_command(subparser, "jm-device-testing-mode", 'Set device testing mode')
146
+ sub_command.add_argument("device_id", help='Device UUID')
147
+ sub_command.add_argument("mode", help='Testing mode', choices=[
148
+ 'full_pass_through', 'io_error_on_read', 'io_error_on_write',
149
+ 'io_error_on_unmap', 'io_error_on_all', 'discard_io_all',
150
+ 'hotplug_removal'], default='full_pass_through')
151
+
145
152
  sub_command = self.add_sub_command(subparser, "get-device", 'Get storage device by id')
146
153
  sub_command.add_argument("device_id", help='the devices\'s UUID')
147
154
 
@@ -770,6 +777,8 @@ class CLIWrapper:
770
777
 
771
778
  elif sub_command == "device-testing-mode":
772
779
  ret = device_controller.set_device_testing_mode(args.device_id, args.mode)
780
+ elif sub_command == "jm-device-testing-mode":
781
+ ret = device_controller.set_jm_device_testing_mode(args.device_id, args.mode)
773
782
 
774
783
  elif sub_command == "remove-device":
775
784
  ret = device_controller.device_remove(args.device_id, args.force)
@@ -276,6 +276,28 @@ def set_device_testing_mode(device_id, mode):
276
276
  return ret
277
277
 
278
278
 
279
+ def set_jm_device_testing_mode(device_id, mode):
280
+ db_controller = DBController()
281
+ snode = db_controller.get_storage_by_jm_id(device_id)
282
+ if not snode:
283
+ logger.error("node not found")
284
+ return False
285
+ jm_device = snode.jm_device
286
+
287
+ if not snode.enable_test_device:
288
+ logger.error("Test device is disabled on this storage node")
289
+ return False
290
+
291
+ logger.info(f"Set device:{device_id} Test mode:{mode}")
292
+ # creating RPCClient instance
293
+ rpc_client = RPCClient(
294
+ snode.mgmt_ip, snode.rpc_port,
295
+ snode.rpc_username, snode.rpc_password)
296
+
297
+ ret = rpc_client.bdev_passtest_mode(jm_device.testing_bdev, mode)
298
+ return ret
299
+
300
+
279
301
  def device_remove(device_id, force=True):
280
302
  db_controller = DBController()
281
303
  dev = db_controller.get_storage_devices(device_id)
@@ -149,6 +149,13 @@ class DBController:
149
149
  def get_storage_devices(self, id):
150
150
  return self.get_storage_device_by_id(id)
151
151
 
152
+ def get_storage_by_jm_id(self, id):
153
+ nodes = self.get_storage_nodes()
154
+ for node in nodes:
155
+ if node.jm_device.get_id() == id:
156
+ return node
157
+
158
+
152
159
  # Compute node functions
153
160
  def get_compute_node_by_id(self, id):
154
161
  ret = ComputeNode().read_from_db(self.kv_store, id)
@@ -105,6 +105,7 @@ class JMDevice(BaseModel):
105
105
  "raid_bdev": {"type": str, 'default': ""},
106
106
  "nvme_bdev": {"type": str, 'default': ""},
107
107
  "alceml_bdev": {"type": str, 'default': ""},
108
+ "testing_bdev": {"type": str, 'default': ""},
108
109
  "jm_bdev": {"type": str, 'default': ""},
109
110
  "device_data_dict": {"type": dict, 'default': {}},
110
111
 
@@ -254,6 +254,7 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
254
254
  alceml_name = f"alceml_jm_{snode.get_id()}"
255
255
 
256
256
  nvme_bdev = raid_bdev
257
+ test_name = ""
257
258
  if snode.enable_test_device:
258
259
  test_name = f"{raid_bdev}_test"
259
260
  ret = rpc_client.bdev_passtest_create(test_name, raid_bdev)
@@ -330,6 +331,7 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
330
331
  'jm_nvme_bdev_list': jm_nvme_bdevs,
331
332
  'raid_bdev': raid_bdev,
332
333
  'alceml_bdev': alceml_name,
334
+ 'testing_bdev': test_name,
333
335
  'jm_bdev': jm_bdev,
334
336
 
335
337
  'pt_bdev': pt_name,
@@ -345,6 +347,7 @@ def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
345
347
  logger.info(f"adding {alceml_name}")
346
348
 
347
349
  nvme_bdev = nvme.nvme_bdev
350
+ test_name = ""
348
351
  if snode.enable_test_device:
349
352
  test_name = f"{nvme.nvme_bdev}_test"
350
353
  ret = rpc_client.bdev_passtest_create(test_name, nvme.nvme_bdev)
@@ -420,6 +423,7 @@ def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
420
423
  "serial_number": nvme.serial_number,
421
424
  "device_data_dict": nvme.to_dict(),
422
425
  'jm_bdev': jm_bdev,
426
+ 'testing_bdev': test_name,
423
427
 
424
428
  'pt_bdev': pt_name,
425
429
  'nvmf_nqn': subsystem_nqn,
@@ -667,12 +671,11 @@ def _prepare_cluster_devices_on_restart(snode):
667
671
  else:
668
672
  nvme_bdev = jm_device.nvme_bdev
669
673
  if snode.enable_test_device:
670
- test_name = f"{jm_device.nvme_bdev}_test"
671
- ret = rpc_client.bdev_passtest_create(test_name, jm_device.nvme_bdev)
674
+ ret = rpc_client.bdev_passtest_create(jm_device.testing_bdev, jm_device.nvme_bdev)
672
675
  if not ret:
673
- logger.error(f"Failed to create passtest bdev {test_name}")
676
+ logger.error(f"Failed to create passtest bdev {jm_device.testing_bdev}")
674
677
  return False
675
- nvme_bdev = test_name
678
+ nvme_bdev = jm_device.testing_bdev
676
679
  alceml_cpu_mask = ""
677
680
  alceml_worker_cpu_mask = ""
678
681
 
@@ -2514,8 +2517,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
2514
2517
  size = max_size // snode.number_of_distribs
2515
2518
  distr_page_size = (ndcs + npcs) * page_size_in_blocks
2516
2519
  cluster_sz = ndcs * page_size_in_blocks
2517
- strip_size_kb = int((ndcs + npcs) * snode.number_of_distribs * 64)
2518
-
2520
+ strip_size_kb = int((ndcs + npcs) * 64)
2519
2521
  strip_size_kb = utils.nearest_upper_power_of_2(strip_size_kb)
2520
2522
  for _ in range(snode.number_of_distribs):
2521
2523
  distrib_vuid = utils.get_random_vuid()
File without changes
File without changes
File without changes
File without changes