sbcli-dev 18.0.76__tar.gz → 18.0.78__tar.gz

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 (173) hide show
  1. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/PKG-INFO +1 -1
  2. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/sbcli_dev.egg-info/PKG-INFO +1 -1
  3. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/device_controller.py +10 -32
  4. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/env_var +1 -1
  5. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/storage_node.py +20 -0
  6. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/storage_node_ops.py +25 -72
  7. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/snode_ops.py +2 -1
  8. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/snode_ops_k8s.py +1 -1
  9. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/README.md +0 -0
  10. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/pyproject.toml +0 -0
  11. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/requirements.txt +0 -0
  12. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  13. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  14. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/sbcli_dev.egg-info/entry_points.txt +0 -0
  15. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/sbcli_dev.egg-info/requires.txt +0 -0
  16. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/sbcli_dev.egg-info/top_level.txt +0 -0
  17. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/setup.cfg +0 -0
  18. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/setup.py +0 -0
  19. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_cli/__init__.py +0 -0
  20. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_cli/cli.py +0 -0
  21. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_cli/clibase.py +0 -0
  22. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_cli/main.py +0 -0
  23. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/__init__.py +0 -0
  24. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/cluster_ops.py +0 -0
  25. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/cnode_client.py +0 -0
  26. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/constants.py +0 -0
  27. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/__init__.py +0 -0
  28. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  29. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/cluster_events.py +0 -0
  30. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/device_events.py +0 -0
  31. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/events_controller.py +0 -0
  32. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/health_controller.py +0 -0
  33. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/lvol_controller.py +0 -0
  34. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/lvol_events.py +0 -0
  35. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/mgmt_events.py +0 -0
  36. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/pool_controller.py +0 -0
  37. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/pool_events.py +0 -0
  38. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  39. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/snapshot_events.py +0 -0
  40. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/storage_events.py +0 -0
  41. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/tasks_controller.py +0 -0
  42. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/tasks_events.py +0 -0
  43. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
  44. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/db_controller.py +0 -0
  45. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/distr_controller.py +0 -0
  46. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/mgmt_node_ops.py +0 -0
  47. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/__init__.py +0 -0
  48. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/base_model.py +0 -0
  49. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/caching_node.py +0 -0
  50. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/cluster.py +0 -0
  51. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/deployer.py +0 -0
  52. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/events.py +0 -0
  53. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/hublvol.py +0 -0
  54. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/iface.py +0 -0
  55. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/job_schedule.py +0 -0
  56. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/lvol_model.py +0 -0
  57. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/mgmt_node.py +0 -0
  58. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/nvme_device.py +0 -0
  59. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/pool.py +0 -0
  60. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/port_stat.py +0 -0
  61. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/snapshot.py +0 -0
  62. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/models/stats.py +0 -0
  63. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/pci_utils.py +0 -0
  64. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/rpc_client.py +0 -0
  65. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/__init__.py +0 -0
  66. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  67. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  68. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  69. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/config_docker.sh +0 -0
  70. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/dashboard.yml +0 -0
  71. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  72. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  73. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  74. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  75. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  76. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  77. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/datasource.yml +0 -0
  78. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/db_config_double.sh +0 -0
  79. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/db_config_single.sh +0 -0
  80. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  81. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  82. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  83. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  84. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/foundation.yml +0 -0
  85. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/haproxy.cfg +0 -0
  86. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/helpers/__init__.py +0 -0
  87. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
  88. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
  89. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
  90. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/install_deps.sh +0 -0
  91. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/objstore.yml +0 -0
  92. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  93. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
  94. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/run_ssh.sh +0 -0
  95. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/set_db_config.sh +0 -0
  96. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  97. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/__init__.py +0 -0
  98. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  99. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/caching_node_monitor.py +0 -0
  100. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/cap_monitor.py +0 -0
  101. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  102. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/device_monitor.py +0 -0
  103. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/health_check_service.py +0 -0
  104. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/install_service.sh +0 -0
  105. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/lvol_monitor.py +0 -0
  106. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  107. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  108. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  109. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/new_device_discovery.py +0 -0
  110. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/remove_service.sh +0 -0
  111. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/service_template.service +0 -0
  112. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/spdk/__init__.py +0 -0
  113. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/spdk/client.py +0 -0
  114. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  115. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/storage_node_monitor.py +0 -0
  116. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/tasks_cluster_status.py +0 -0
  117. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  118. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  119. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  120. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  121. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  122. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/shell_utils.py +0 -0
  123. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/snode_client.py +0 -0
  124. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/test/test_models.py +0 -0
  125. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/test/test_utils.py +0 -0
  126. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/utils.py +0 -0
  127. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  128. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/README.md +0 -0
  129. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/__init__.py +0 -0
  130. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/app.py +0 -0
  131. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/auth_middleware.py +0 -0
  132. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/__init__.py +0 -0
  133. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  134. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  135. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  136. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  137. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  138. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
  139. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  140. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  141. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  142. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_device.py +0 -0
  143. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  144. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
  145. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  146. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  147. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  148. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  149. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/node_configure.py +0 -0
  150. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/node_utils.py +0 -0
  151. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/node_utils_k8s.py +0 -0
  152. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/node_webapp.py +0 -0
  153. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
  154. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/delete.py +0 -0
  155. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/deploy.py +0 -0
  156. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  157. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  158. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/is_up.py +0 -0
  159. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/list_deps.py +0 -0
  160. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/rpac.yaml +0 -0
  161. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/swagger.yaml +0 -0
  162. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/static/tst.py +0 -0
  163. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  164. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  165. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/api/test_lvol.py +0 -0
  166. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/api/test_pool.py +0 -0
  167. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/api/test_snapshot.py +0 -0
  168. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/api/test_storage_node.py +0 -0
  169. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/conftest.py +0 -0
  170. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/pytest.ini +0 -0
  171. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/requirements.txt +0 -0
  172. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/test/util.py +0 -0
  173. {sbcli_dev-18.0.76 → sbcli_dev-18.0.78}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sbcli-dev
3
- Version: 18.0.76
3
+ Version: 18.0.78
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sbcli-dev
3
- Version: 18.0.76
3
+ Version: 18.0.78
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -144,24 +144,13 @@ def _def_create_device_stack(device_obj, snode, force=False):
144
144
  alceml_name = get_alceml_name(alceml_id)
145
145
 
146
146
  cluster = db_controller.get_cluster_by_id(snode.cluster_id)
147
- write_protection = False
148
- if cluster.distr_ndcs > 1:
149
- write_protection = True
150
147
  if alceml_name not in bdev_names:
151
- logger.info(f"adding {alceml_name}")
152
- if snode.alceml_cpu_cores:
153
- alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
154
- ret = rpc_client.bdev_alceml_create(
155
- alceml_name, nvme_bdev, alceml_id, pba_init_mode=2, alceml_cpu_mask=alceml_cpu_mask,
156
- pba_page_size=cluster.page_size_in_blocks, write_protection=write_protection,
157
- full_page_unmap=snode.full_page_unmap
158
- )
159
- snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
160
- else:
161
- ret = rpc_client.bdev_alceml_create(
162
- alceml_name, nvme_bdev, alceml_id, pba_init_mode=2, pba_page_size=cluster.page_size_in_blocks,
163
- write_protection=write_protection, full_page_unmap=snode.full_page_unmap
164
- )
148
+ ret = snode.create_alceml(
149
+ alceml_name, nvme_bdev, alceml_id,
150
+ pba_init_mode=2,
151
+ write_protection=cluster.distr_ndcs > 1,
152
+ pba_page_size=cluster.page_size_in_blocks,
153
+ )
165
154
 
166
155
  if not ret:
167
156
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
@@ -899,23 +888,12 @@ def restart_jm_device(device_id, force=False, format_alceml=False):
899
888
  # logger.error(f"Failed to create passtest bdev {jm_device.testing_bdev}")
900
889
  # # return False
901
890
  # nvme_bdev = jm_device.testing_bdev
902
- alceml_cpu_mask = ""
903
- alceml_worker_cpu_mask = ""
904
891
  #
905
- if snode.alceml_cpu_cores:
906
- alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
907
- snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
908
-
909
- if snode.alceml_worker_cpu_cores:
910
- alceml_worker_cpu_mask = utils.decimal_to_hex_power_of_2(
911
- snode.alceml_worker_cpu_cores[snode.alceml_worker_cpu_index])
912
- snode.alceml_worker_cpu_index = (snode.alceml_worker_cpu_index + 1) % len(snode.alceml_worker_cpu_cores)
913
-
914
892
  cluster = db_controller.get_cluster_by_id(snode.cluster_id)
915
- ret = rpc_client.bdev_alceml_create(
916
- jm_device.alceml_bdev, nvme_bdev, jm_device.get_id(), pba_init_mode=1, alceml_cpu_mask=alceml_cpu_mask,
917
- alceml_worker_cpu_mask=alceml_worker_cpu_mask, pba_page_size=cluster.page_size_in_blocks,
918
- full_page_unmap=snode.full_page_unmap
893
+ ret = snode.create_alceml(
894
+ jm_device.alceml_bdev, nvme_bdev, jm_device.get_id(),
895
+ pba_init_mode=1,
896
+ pba_page_size=cluster.page_size_in_blocks,
919
897
  )
920
898
 
921
899
  if not ret:
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=18.0.76
2
+ SIMPLY_BLOCK_VERSION=18.0.78
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
@@ -258,3 +258,23 @@ class StorageNode(BaseNodeObject):
258
258
  if not rpc_client.bdev_lvol_connect_hublvol(primary_node.lvstore, remote_bdev):
259
259
  pass
260
260
  # raise RPCException('Failed to connect secondary lvstore to primary')
261
+
262
+ def create_alceml(self, name, nvme_bdev, uuid, **kwargs):
263
+ logger.info(f"Adding {name}")
264
+ alceml_cpu_mask = ""
265
+ alceml_worker_cpu_mask = ""
266
+ if self.alceml_cpu_cores:
267
+ alceml_cpu_mask = utils.decimal_to_hex_power_of_2(self.alceml_cpu_cores[self.alceml_cpu_index])
268
+ self.alceml_cpu_index = (self.alceml_cpu_index + 1) % len(self.alceml_cpu_cores)
269
+ if self.alceml_worker_cpu_cores:
270
+ alceml_worker_cpu_mask = utils.decimal_to_hex_power_of_2(
271
+ self.alceml_worker_cpu_cores[self.alceml_worker_cpu_index])
272
+ self.alceml_worker_cpu_index = (self.alceml_worker_cpu_index + 1) % len(self.alceml_worker_cpu_cores)
273
+
274
+ return self.rpc_client().bdev_alceml_create(
275
+ name, nvme_bdev, uuid,
276
+ alceml_cpu_mask=alceml_cpu_mask,
277
+ alceml_worker_cpu_mask=alceml_worker_cpu_mask,
278
+ full_page_unmap=self.full_page_unmap,
279
+ **kwargs,
280
+ )
@@ -93,25 +93,15 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
93
93
  alceml_id = snode.get_id()
94
94
  alceml_name = f"alceml_jm_{snode.get_id()}"
95
95
  nvme_bdev = raid_bdev
96
- pba_init_mode = 3
97
- if after_restart:
98
- pba_init_mode = 1
99
- alceml_cpu_mask = ""
100
- alceml_worker_cpu_mask = ""
101
- if snode.alceml_cpu_cores:
102
- alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
103
- snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
104
- if snode.alceml_worker_cpu_cores:
105
- alceml_worker_cpu_mask = utils.decimal_to_hex_power_of_2(
106
- snode.alceml_worker_cpu_cores[snode.alceml_worker_cpu_index])
107
- snode.alceml_worker_cpu_index = (snode.alceml_worker_cpu_index + 1) % len(snode.alceml_worker_cpu_cores)
108
96
 
109
97
  db_controller = DBController()
110
98
  cluster = db_controller.get_cluster_by_id(snode.cluster_id)
111
- ret = rpc_client.bdev_alceml_create(alceml_name, nvme_bdev, alceml_id, pba_init_mode=pba_init_mode,
112
- alceml_cpu_mask=alceml_cpu_mask, alceml_worker_cpu_mask=alceml_worker_cpu_mask,
113
- pba_page_size=cluster.page_size_in_blocks,
114
- full_page_unmap=snode.full_page_unmap)
99
+ ret = snode.create_alceml(
100
+ alceml_name, nvme_bdev, alceml_id,
101
+ pba_init_mode=1 if after_restart else 3,
102
+ pba_page_size=cluster.page_size_in_blocks,
103
+ )
104
+
115
105
  if not ret:
116
106
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
117
107
  return False
@@ -173,7 +163,6 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
173
163
  def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
174
164
  alceml_id = nvme.get_id()
175
165
  alceml_name = device_controller.get_alceml_name(alceml_id)
176
- logger.info(f"adding {alceml_name}")
177
166
  db_controller = DBController()
178
167
  nvme_bdev = nvme.nvme_bdev
179
168
  test_name = ""
@@ -184,24 +173,13 @@ def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
184
173
  logger.error(f"Failed to create passtest bdev {test_name}")
185
174
  return False
186
175
  nvme_bdev = test_name
187
- pba_init_mode = 3
188
- if after_restart:
189
- pba_init_mode = 1
190
- alceml_cpu_mask = ""
191
- alceml_worker_cpu_mask = ""
192
- if snode.alceml_cpu_cores:
193
- alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
194
- snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
195
- if snode.alceml_worker_cpu_cores:
196
- alceml_worker_cpu_mask = utils.decimal_to_hex_power_of_2(
197
- snode.alceml_worker_cpu_cores[snode.alceml_worker_cpu_index])
198
- snode.alceml_worker_cpu_index = (snode.alceml_worker_cpu_index + 1) % len(snode.alceml_worker_cpu_cores)
199
176
 
200
177
  cluster = db_controller.get_cluster_by_id(snode.cluster_id)
201
- ret = rpc_client.bdev_alceml_create(
202
- alceml_name, nvme_bdev, alceml_id, pba_init_mode=pba_init_mode, alceml_cpu_mask=alceml_cpu_mask,
203
- alceml_worker_cpu_mask=alceml_worker_cpu_mask, pba_page_size=cluster.page_size_in_blocks,
204
- full_page_unmap=snode.full_page_unmap)
178
+ ret = snode.create_alceml(
179
+ alceml_name, nvme_bdev, alceml_id,
180
+ pba_init_mode=1 if after_restart else 3,
181
+ pba_page_size=cluster.page_size_in_blocks,
182
+ )
205
183
 
206
184
  if not ret:
207
185
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
@@ -273,29 +251,16 @@ def _create_storage_device_stack(rpc_client, nvme, snode, after_restart):
273
251
  nvme_bdev = test_name
274
252
  alceml_id = nvme.get_id()
275
253
  alceml_name = device_controller.get_alceml_name(alceml_id)
276
- logger.info(f"adding {alceml_name}")
277
- pba_init_mode = 3
278
- if after_restart and nvme.status != NVMeDevice.STATUS_NEW:
279
- pba_init_mode = 1
280
- alceml_cpu_mask = ""
281
- alceml_worker_cpu_mask = ""
282
-
283
- if snode.alceml_cpu_cores:
284
- alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
285
- snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
286
- if snode.alceml_worker_cpu_cores:
287
- alceml_worker_cpu_mask = utils.decimal_to_hex_power_of_2(
288
- snode.alceml_worker_cpu_cores[snode.alceml_worker_cpu_index])
289
- snode.alceml_worker_cpu_index = (snode.alceml_worker_cpu_index + 1) % len(snode.alceml_worker_cpu_cores)
290
254
 
291
255
  cluster = db_controller.get_cluster_by_id(snode.cluster_id)
292
- write_protection = False
293
- if cluster.distr_ndcs > 1:
294
- write_protection = True
295
- ret = rpc_client.bdev_alceml_create(alceml_name, nvme_bdev, alceml_id, pba_init_mode=pba_init_mode,
296
- alceml_cpu_mask=alceml_cpu_mask, alceml_worker_cpu_mask=alceml_worker_cpu_mask,
297
- pba_page_size=cluster.page_size_in_blocks, write_protection=write_protection,
298
- full_page_unmap=snode.full_page_unmap)
256
+
257
+ ret = snode.create_alceml(
258
+ alceml_name, nvme_bdev, alceml_id,
259
+ pba_init_mode=1 if (after_restart and nvme.status != NVMeDevice.STATUS_NEW) else 3,
260
+ write_protection=cluster.distr_ndcs > 1,
261
+ pba_page_size=cluster.page_size_in_blocks,
262
+ )
263
+
299
264
  if not ret:
300
265
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
301
266
  return None
@@ -564,25 +529,13 @@ def _prepare_cluster_devices_on_restart(snode, clear_data=False):
564
529
  logger.error(f"Failed to create passtest bdev {jm_device.testing_bdev}")
565
530
  return False
566
531
  nvme_bdev = jm_device.testing_bdev
567
- alceml_cpu_mask = ""
568
- alceml_worker_cpu_mask = ""
569
- if snode.alceml_cpu_cores:
570
- alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
571
- snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
572
-
573
- if snode.alceml_worker_cpu_cores:
574
- alceml_worker_cpu_mask = utils.decimal_to_hex_power_of_2(
575
- snode.alceml_worker_cpu_cores[snode.alceml_worker_cpu_index])
576
- snode.alceml_worker_cpu_index = (snode.alceml_worker_cpu_index + 1) % len(snode.alceml_worker_cpu_cores)
577
-
578
- pba_init_mode = 3
579
- if not clear_data:
580
- pba_init_mode = 1
532
+
581
533
  cluster = db_controller.get_cluster_by_id(snode.cluster_id)
582
- ret = rpc_client.bdev_alceml_create(
583
- jm_device.alceml_bdev, nvme_bdev, jm_device.get_id(), pba_init_mode=pba_init_mode,
584
- alceml_cpu_mask=alceml_cpu_mask, alceml_worker_cpu_mask=alceml_worker_cpu_mask,
585
- pba_page_size=cluster.page_size_in_blocks, full_page_unmap=snode.full_page_unmap)
534
+ ret = snode.create_alceml(
535
+ jm_device.alceml_bdev, nvme_bdev, jm_device.get_id(),
536
+ pba_init_mode=3 if clear_data else 1,
537
+ pba_page_size=cluster.page_size_in_blocks,
538
+ )
586
539
 
587
540
  if not ret:
588
541
  logger.error(f"Failed to create alceml bdev: {jm_device.alceml_bdev}")
@@ -251,6 +251,7 @@ def spdk_process_is_up(query: _RPCPortQuery):
251
251
  try:
252
252
  node_docker = get_docker_client()
253
253
  for cont in node_docker.containers.list(all=True):
254
+ logger.debug(f"Container: {cont.attrs['Name']} status: {cont.attrs['State']}")
254
255
  if cont.attrs['Name'] == f"/spdk_{query.rpc_port}":
255
256
  status = cont.attrs['State']["Status"]
256
257
  is_running = cont.attrs['State']["Running"]
@@ -260,7 +261,7 @@ def spdk_process_is_up(query: _RPCPortQuery):
260
261
  return utils.get_response(False, f"SPDK container status: {status}, is running: {is_running}")
261
262
  except Exception as e:
262
263
  logger.error(e)
263
- return utils.get_response(True)
264
+ return utils.get_response(False, f"container not found: /spdk_{query.rpc_port}")
264
265
 
265
266
 
266
267
 
@@ -449,7 +449,7 @@ def get_file_content(path: FilePath):
449
449
 
450
450
 
451
451
  class _FirewallParams(BaseModel):
452
- port_id: str
452
+ port_id: int
453
453
  port_type: str
454
454
  action: str
455
455
 
File without changes
File without changes
File without changes
File without changes