sbcli-pre 25.5.2__tar.gz → 25.5.4__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-pre-25.5.2 → sbcli-pre-25.5.4}/PKG-INFO +1 -1
  2. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/sbcli_pre.egg-info/PKG-INFO +1 -1
  3. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/sbcli_pre.egg-info/entry_points.txt +1 -0
  4. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/setup.py +1 -1
  5. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_cli/cli.py +1 -1
  6. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_cli/clibase.py +2 -2
  7. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/tasks_controller.py +6 -2
  8. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/env_var +2 -2
  9. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/mgmt_node_ops.py +1 -1
  10. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/rpc_client.py +2 -2
  11. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/tasks_runner_failed_migration.py +2 -1
  12. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/tasks_runner_migration.py +2 -1
  13. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/tasks_runner_new_dev_migration.py +2 -1
  14. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/storage_node_ops.py +6 -6
  15. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_storage_node.py +6 -6
  16. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/README.md +0 -0
  17. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/pyproject.toml +0 -0
  18. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/requirements.txt +0 -0
  19. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/sbcli_pre.egg-info/SOURCES.txt +0 -0
  20. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/sbcli_pre.egg-info/dependency_links.txt +0 -0
  21. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/sbcli_pre.egg-info/requires.txt +0 -0
  22. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/sbcli_pre.egg-info/top_level.txt +0 -0
  23. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/setup.cfg +0 -0
  24. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_cli/__init__.py +0 -0
  25. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_cli/main.py +0 -0
  26. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/__init__.py +0 -0
  27. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/cluster_ops.py +0 -0
  28. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/cnode_client.py +0 -0
  29. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/constants.py +0 -0
  30. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/__init__.py +0 -0
  31. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  32. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/cluster_events.py +0 -0
  33. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/device_controller.py +0 -0
  34. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/device_events.py +0 -0
  35. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/events_controller.py +0 -0
  36. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/health_controller.py +0 -0
  37. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/lvol_controller.py +0 -0
  38. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/lvol_events.py +0 -0
  39. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/mgmt_events.py +0 -0
  40. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/pool_controller.py +0 -0
  41. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/pool_events.py +0 -0
  42. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  43. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/snapshot_events.py +0 -0
  44. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/storage_events.py +0 -0
  45. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/tasks_events.py +0 -0
  46. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
  47. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/db_controller.py +0 -0
  48. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/distr_controller.py +0 -0
  49. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/__init__.py +0 -0
  50. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/base_model.py +0 -0
  51. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/caching_node.py +0 -0
  52. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/cluster.py +0 -0
  53. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/deployer.py +0 -0
  54. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/events.py +0 -0
  55. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/hublvol.py +0 -0
  56. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/iface.py +0 -0
  57. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/job_schedule.py +0 -0
  58. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/lvol_model.py +0 -0
  59. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/mgmt_node.py +0 -0
  60. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/nvme_device.py +0 -0
  61. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/pool.py +0 -0
  62. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/port_stat.py +0 -0
  63. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/snapshot.py +0 -0
  64. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/stats.py +0 -0
  65. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/models/storage_node.py +0 -0
  66. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/pci_utils.py +0 -0
  67. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/__init__.py +0 -0
  68. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  69. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  70. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  71. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/config_docker.sh +0 -0
  72. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/dashboard.yml +0 -0
  73. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  74. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  75. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  76. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  77. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  78. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  79. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/datasource.yml +0 -0
  80. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/db_config_double.sh +0 -0
  81. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/db_config_single.sh +0 -0
  82. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  83. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  84. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  85. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  86. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/foundation.yml +0 -0
  87. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/haproxy.cfg +0 -0
  88. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/helpers/__init__.py +0 -0
  89. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
  90. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
  91. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
  92. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/install_deps.sh +0 -0
  93. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/objstore.yml +0 -0
  94. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  95. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
  96. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/run_ssh.sh +0 -0
  97. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/set_db_config.sh +0 -0
  98. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  99. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/__init__.py +0 -0
  100. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  101. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/caching_node_monitor.py +0 -0
  102. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/cap_monitor.py +0 -0
  103. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  104. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/device_monitor.py +0 -0
  105. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/health_check_service.py +0 -0
  106. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/install_service.sh +0 -0
  107. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/lvol_monitor.py +0 -0
  108. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  109. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  110. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  111. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/new_device_discovery.py +0 -0
  112. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/remove_service.sh +0 -0
  113. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/service_template.service +0 -0
  114. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/spdk/__init__.py +0 -0
  115. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/spdk/client.py +0 -0
  116. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  117. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/storage_node_monitor.py +0 -0
  118. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/tasks_cluster_status.py +0 -0
  119. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  120. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  121. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/shell_utils.py +0 -0
  122. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/snode_client.py +0 -0
  123. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/test/test_models.py +0 -0
  124. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/test/test_utils.py +0 -0
  125. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/utils.py +0 -0
  126. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  127. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/README.md +0 -0
  128. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/__init__.py +0 -0
  129. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/app.py +0 -0
  130. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/auth_middleware.py +0 -0
  131. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/__init__.py +0 -0
  132. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  133. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  134. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  135. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  136. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  137. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/snode_ops.py +0 -0
  138. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  139. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
  140. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  141. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  142. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  143. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_device.py +0 -0
  144. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  145. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
  146. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  147. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  148. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  149. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/node_configure.py +0 -0
  150. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/node_utils.py +0 -0
  151. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/node_utils_k8s.py +0 -0
  152. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/node_webapp.py +0 -0
  153. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
  154. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/delete.py +0 -0
  155. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/deploy.py +0 -0
  156. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  157. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  158. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/is_up.py +0 -0
  159. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/list_deps.py +0 -0
  160. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/rpac.yaml +0 -0
  161. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/swagger.yaml +0 -0
  162. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/static/tst.py +0 -0
  163. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  164. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  165. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/api/test_lvol.py +0 -0
  166. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/api/test_pool.py +0 -0
  167. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/api/test_snapshot.py +0 -0
  168. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/api/test_storage_node.py +0 -0
  169. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/conftest.py +0 -0
  170. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/pytest.ini +0 -0
  171. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/requirements.txt +0 -0
  172. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/test/util.py +0 -0
  173. {sbcli-pre-25.5.2 → sbcli-pre-25.5.4}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 25.5.2
3
+ Version: 25.5.4
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.1
2
2
  Name: sbcli-pre
3
- Version: 25.5.2
3
+ Version: 25.5.4
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,3 +1,4 @@
1
1
  [console_scripts]
2
2
  sbcli-pre = simplyblock_cli.cli:main
3
+ sbctl = simplyblock_cli.cli:main
3
4
 
@@ -97,7 +97,7 @@ setup(
97
97
  entry_points={
98
98
  'console_scripts': [
99
99
  f'{COMMAND_NAME}=simplyblock_cli.cli:main',
100
- # 'sbctl=simplyblock_cli.cli:main',
100
+ 'sbctl=simplyblock_cli.cli:main',
101
101
  ]
102
102
  },
103
103
  include_package_data=True,
@@ -100,7 +100,7 @@ class CLIWrapper(CLIWrapperBase):
100
100
  def init_storage_node__add_node(self, subparser):
101
101
  subcommand = self.add_sub_command(subparser, 'add-node', 'Adds a storage node by its IP address')
102
102
  subcommand.add_argument('cluster_id', help='Cluster id', type=str)
103
- subcommand.add_argument('node_ip', help='IP of storage node to add', type=str)
103
+ subcommand.add_argument('node_addr', help='Address of storage node api to add, like <node-ip>:5000', type=str)
104
104
  subcommand.add_argument('ifname', help='Management interface name', type=str)
105
105
  argument = subcommand.add_argument('--journal-partition', help='1: auto-create small partitions for journal on nvme devices. 0: use a separate (the smallest) nvme device of the node for journal. The journal needs a maximum of 3 percent of total available raw disk space.', type=int, default=1, dest='partitions')
106
106
  if self.developer_mode:
@@ -115,7 +115,7 @@ class CLIWrapperBase:
115
115
 
116
116
  def storage_node__add_node(self, sub_command, args):
117
117
  cluster_id = args.cluster_id
118
- node_ip = args.node_ip
118
+ node_addr = args.node_addr
119
119
  ifname = args.ifname
120
120
  data_nics = args.data_nics
121
121
  spdk_image = args.spdk_image
@@ -134,7 +134,7 @@ class CLIWrapperBase:
134
134
 
135
135
  out = storage_ops.add_node(
136
136
  cluster_id=cluster_id,
137
- node_ip=node_ip,
137
+ node_addr=node_addr,
138
138
  iface_name=ifname,
139
139
  data_nics_list=data_nics,
140
140
  max_snap=max_snap,
@@ -179,13 +179,17 @@ def get_active_dev_restart_task(cluster_id, device_id):
179
179
  return False
180
180
 
181
181
 
182
- def get_active_node_mig_task(cluster_id, node_id):
182
+ def get_active_node_mig_task(cluster_id, node_id, distr_name=None):
183
183
  tasks = db.get_job_tasks(cluster_id)
184
184
  for task in tasks:
185
185
  if task.function_name in [JobSchedule.FN_FAILED_DEV_MIG, JobSchedule.FN_DEV_MIG,
186
186
  JobSchedule.FN_NEW_DEV_MIG] and task.node_id == node_id:
187
187
  if task.status == JobSchedule.STATUS_RUNNING and task.canceled is False:
188
- return task.uuid
188
+ if distr_name:
189
+ if "distr_name" in task.function_params and task.function_params["distr_name"] == distr_name:
190
+ return task.uuid
191
+ else:
192
+ return task.uuid
189
193
  return False
190
194
 
191
195
 
@@ -1,6 +1,6 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-pre
2
- SIMPLY_BLOCK_VERSION=25.5.2
2
+ SIMPLY_BLOCK_VERSION=25.5.4
3
3
 
4
4
 
5
- SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:R25.5-Hotfix
5
+ SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
6
6
  SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=simplyblock/spdk:main-latest
@@ -199,7 +199,7 @@ def remove_mgmt_node(uuid):
199
199
 
200
200
  logger.info("Leaving swarm...")
201
201
  node_docker = docker.DockerClient(base_url=f"tcp://{snode.docker_ip_port}", version="auto")
202
- node_docker.swarm.leave()
202
+ node_docker.swarm.leave(force=True)
203
203
 
204
204
  mgmt_events.mgmt_remove(snode)
205
205
  logging.info("done")
@@ -148,8 +148,8 @@ class RPCClient:
148
148
  "max_io_size": 131072,
149
149
  "io_unit_size": 8192,
150
150
  "max_aq_depth": 128,
151
- "num_shared_buffers": 30000,
152
- "buf_cache_size": 1024,
151
+ "num_shared_buffers": 24576,
152
+ "buf_cache_size": 512,
153
153
  "dif_insert_or_strip": False,
154
154
  "c2h_success": True,
155
155
  "sock_priority": 0
@@ -138,7 +138,8 @@ while True:
138
138
  for task in tasks:
139
139
  if task.function_name == JobSchedule.FN_FAILED_DEV_MIG:
140
140
  if task.status in [JobSchedule.STATUS_NEW, JobSchedule.STATUS_SUSPENDED]:
141
- active_task = tasks_controller.get_active_node_mig_task(task.cluster_id, task.node_id)
141
+ active_task = tasks_controller.get_active_node_mig_task(
142
+ task.cluster_id, task.node_id, task.function_params["distr_name"])
142
143
  if active_task:
143
144
  logger.info("task found on same node, retry")
144
145
  continue
@@ -134,7 +134,8 @@ while True:
134
134
  if task.function_name == JobSchedule.FN_DEV_MIG and task.status != JobSchedule.STATUS_DONE:
135
135
  task = db.get_task_by_id(task.uuid)
136
136
  if task.status in [JobSchedule.STATUS_NEW, JobSchedule.STATUS_SUSPENDED]:
137
- active_task = tasks_controller.get_active_node_mig_task(task.cluster_id, task.node_id)
137
+ active_task = tasks_controller.get_active_node_mig_task(
138
+ task.cluster_id, task.node_id, task.function_params["distr_name"])
138
139
  if active_task:
139
140
  logger.info("task found on same node, retry")
140
141
  continue
@@ -149,7 +149,8 @@ while True:
149
149
  for task in tasks:
150
150
  if task.function_name == JobSchedule.FN_NEW_DEV_MIG:
151
151
  if task.status in [JobSchedule.STATUS_NEW, JobSchedule.STATUS_SUSPENDED]:
152
- active_task = tasks_controller.get_active_node_mig_task(task.cluster_id, task.node_id)
152
+ active_task = tasks_controller.get_active_node_mig_task(
153
+ task.cluster_id, task.node_id, task.function_params["distr_name"])
153
154
  if active_task:
154
155
  logger.info("task found on same node, retry")
155
156
  continue
@@ -778,13 +778,13 @@ def _connect_to_remote_jm_devs(this_node, jm_ids=None):
778
778
  return new_devs
779
779
 
780
780
 
781
- def add_node(cluster_id, node_ip, iface_name, data_nics_list,
781
+ def add_node(cluster_id, node_addr, iface_name, data_nics_list,
782
782
  max_snap, spdk_image=None, spdk_debug=False,
783
783
  small_bufsize=0, large_bufsize=0,
784
784
  num_partitions_per_dev=0, jm_percent=0, enable_test_device=False,
785
785
  namespace=None, enable_ha_jm=False, id_device_by_nqn=False,
786
786
  partition_size="", ha_jm_count=3, full_page_unmap=False):
787
- snode_api = SNodeClient(node_ip)
787
+ snode_api = SNodeClient(node_addr)
788
788
  node_info, _ = snode_api.info()
789
789
  if node_info.get("nodes_config") and node_info["nodes_config"].get("nodes"):
790
790
  nodes = node_info["nodes_config"]["nodes"]
@@ -804,7 +804,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
804
804
  logger.error("Cluster not found: %s", cluster_id)
805
805
  return False
806
806
 
807
- logger.info(f"Adding Storage node: {node_ip}")
807
+ logger.info(f"Adding Storage node: {node_addr}")
808
808
 
809
809
  if not node_info:
810
810
  logger.error("SNode API is not reachable")
@@ -908,7 +908,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
908
908
  if ssd_pcie:
909
909
  for ssd in ssd_pcie:
910
910
  for node in db_controller.get_storage_nodes_by_cluster_id(cluster_id):
911
- if node.api_endpoint == node_ip:
911
+ if node.api_endpoint == node_addr:
912
912
  if ssd in node.ssd_pcie:
913
913
  logger.error(f"SSD is being used by other node, ssd: {ssd}, node: {node.get_id()}")
914
914
  return False
@@ -935,7 +935,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
935
935
 
936
936
  total_mem = minimum_hp_memory
937
937
  for n in db_controller.get_storage_nodes_by_cluster_id(cluster_id):
938
- if n.api_endpoint == node_ip:
938
+ if n.api_endpoint == node_addr:
939
939
  total_mem += n.spdk_mem
940
940
  total_mem += utils.parse_size("500m")
941
941
  logger.info("Deploying SPDK")
@@ -999,7 +999,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
999
999
  snode.rpc_username = rpc_user
1000
1000
  snode.rpc_password = rpc_pass
1001
1001
  snode.cluster_id = cluster_id
1002
- snode.api_endpoint = node_ip
1002
+ snode.api_endpoint = node_addr
1003
1003
  snode.host_secret = utils.generate_string(20)
1004
1004
  snode.ctrl_secret = utils.generate_string(20)
1005
1005
  snode.number_of_distribs = number_of_distribs
@@ -182,14 +182,14 @@ def storage_node_add():
182
182
  if 'cluster_id' not in req_data:
183
183
  return utils.get_response_error("missing required param: cluster_id", 400)
184
184
 
185
- if 'node_ip' not in req_data:
186
- return utils.get_response_error("missing required param: node_ip", 400)
185
+ if 'node_addr' not in req_data:
186
+ return utils.get_response_error("missing required param: node_addr", 400)
187
187
 
188
188
  if 'ifname' not in req_data:
189
189
  return utils.get_response_error("missing required param: ifname", 400)
190
190
 
191
191
  cluster_id = req_data['cluster_id']
192
- node_ip = req_data['node_ip']
192
+ node_addr = req_data['node_addr']
193
193
  ifname = req_data['ifname']
194
194
  max_snap = int(req_data.get('max_snap', 500))
195
195
 
@@ -201,9 +201,9 @@ def storage_node_add():
201
201
  enable_test_device = False
202
202
  param = req_data.get('enable_test_device')
203
203
  if param:
204
- if type(param) == bool:
204
+ if isinstance(param, bool):
205
205
  enable_test_device = param
206
- elif type(param) == str:
206
+ elif isinstance(param, str):
207
207
  enable_test_device = param == "true"
208
208
 
209
209
  spdk_image = None
@@ -245,7 +245,7 @@ def storage_node_add():
245
245
 
246
246
  tasks_controller.add_node_add_task(cluster_id, {
247
247
  "cluster_id": cluster_id,
248
- "node_ip": node_ip,
248
+ "node_addr": node_addr,
249
249
  "iface_name": ifname,
250
250
  "data_nics_list": data_nics,
251
251
  "max_snap": max_snap,
File without changes
File without changes
File without changes
File without changes