sbcli-pre 25.6.6__tar.gz → 25.6.7__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 (174) hide show
  1. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/PKG-INFO +1 -1
  2. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/PKG-INFO +1 -1
  3. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/distr_controller.py +26 -2
  4. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/env_var +1 -1
  5. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/storage_node_monitor.py +4 -0
  6. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/storage_node_ops.py +4 -0
  7. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/utils.py +6 -5
  8. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/caching_node_ops.py +1 -1
  9. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/snode_ops.py +2 -2
  10. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/README.md +0 -0
  11. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/pyproject.toml +0 -0
  12. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/requirements.txt +0 -0
  13. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/SOURCES.txt +0 -0
  14. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/dependency_links.txt +0 -0
  15. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/entry_points.txt +0 -0
  16. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/requires.txt +0 -0
  17. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/sbcli_pre.egg-info/top_level.txt +0 -0
  18. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/setup.cfg +0 -0
  19. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/setup.py +0 -0
  20. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/__init__.py +0 -0
  21. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/cli.py +0 -0
  22. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/clibase.py +0 -0
  23. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_cli/main.py +0 -0
  24. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/__init__.py +0 -0
  25. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/cluster_ops.py +0 -0
  26. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/cnode_client.py +0 -0
  27. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/constants.py +0 -0
  28. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/__init__.py +0 -0
  29. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  30. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/cluster_events.py +0 -0
  31. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/device_controller.py +0 -0
  32. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/device_events.py +0 -0
  33. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/events_controller.py +0 -0
  34. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/health_controller.py +0 -0
  35. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/lvol_controller.py +0 -0
  36. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/lvol_events.py +0 -0
  37. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/mgmt_events.py +0 -0
  38. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/pool_controller.py +0 -0
  39. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/pool_events.py +0 -0
  40. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  41. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/snapshot_events.py +0 -0
  42. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/storage_events.py +0 -0
  43. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/tasks_controller.py +0 -0
  44. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/tasks_events.py +0 -0
  45. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
  46. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/db_controller.py +0 -0
  47. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/mgmt_node_ops.py +0 -0
  48. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/__init__.py +0 -0
  49. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/base_model.py +0 -0
  50. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/caching_node.py +0 -0
  51. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/cluster.py +0 -0
  52. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/deployer.py +0 -0
  53. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/events.py +0 -0
  54. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/hublvol.py +0 -0
  55. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/iface.py +0 -0
  56. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/job_schedule.py +0 -0
  57. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/lvol_model.py +0 -0
  58. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/mgmt_node.py +0 -0
  59. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/nvme_device.py +0 -0
  60. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/pool.py +0 -0
  61. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/port_stat.py +0 -0
  62. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/snapshot.py +0 -0
  63. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/stats.py +0 -0
  64. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/models/storage_node.py +0 -0
  65. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/pci_utils.py +0 -0
  66. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/rpc_client.py +0 -0
  67. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/__init__.py +0 -0
  68. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  69. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  70. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  71. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/config_docker.sh +0 -0
  72. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboard.yml +0 -0
  73. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  74. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  75. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  76. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  77. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  78. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  79. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/datasource.yml +0 -0
  80. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/db_config_double.sh +0 -0
  81. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/db_config_single.sh +0 -0
  82. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  83. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  84. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  85. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  86. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/foundation.yml +0 -0
  87. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/haproxy.cfg +0 -0
  88. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/__init__.py +0 -0
  89. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
  90. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
  91. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
  92. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/install_deps.sh +0 -0
  93. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/objstore.yml +0 -0
  94. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  95. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
  96. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/run_ssh.sh +0 -0
  97. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/set_db_config.sh +0 -0
  98. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  99. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/__init__.py +0 -0
  100. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  101. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/caching_node_monitor.py +0 -0
  102. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/cap_monitor.py +0 -0
  103. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  104. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/device_monitor.py +0 -0
  105. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/health_check_service.py +0 -0
  106. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/install_service.sh +0 -0
  107. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/lvol_monitor.py +0 -0
  108. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  109. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  110. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  111. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/new_device_discovery.py +0 -0
  112. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/remove_service.sh +0 -0
  113. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/service_template.service +0 -0
  114. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/spdk/__init__.py +0 -0
  115. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/spdk/client.py +0 -0
  116. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  117. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_cluster_status.py +0 -0
  118. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  119. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  120. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  121. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  122. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_port_allow.py +0 -0
  123. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  124. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/shell_utils.py +0 -0
  125. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/snode_client.py +0 -0
  126. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/test/test_models.py +0 -0
  127. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/test/test_utils.py +0 -0
  128. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  129. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/README.md +0 -0
  130. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/__init__.py +0 -0
  131. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/app.py +0 -0
  132. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/auth_middleware.py +0 -0
  133. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/__init__.py +0 -0
  134. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  135. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  136. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  137. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  138. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  139. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
  140. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  141. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  142. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  143. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_device.py +0 -0
  144. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  145. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
  146. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  147. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  148. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  149. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  150. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_configure.py +0 -0
  151. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_utils.py +0 -0
  152. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_utils_k8s.py +0 -0
  153. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/node_webapp.py +0 -0
  154. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
  155. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/delete.py +0 -0
  156. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/deploy.py +0 -0
  157. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  158. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  159. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/is_up.py +0 -0
  160. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/list_deps.py +0 -0
  161. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/rpac.yaml +0 -0
  162. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/swagger.yaml +0 -0
  163. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/static/tst.py +0 -0
  164. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  165. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  166. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_lvol.py +0 -0
  167. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_pool.py +0 -0
  168. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_snapshot.py +0 -0
  169. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/api/test_storage_node.py +0 -0
  170. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/conftest.py +0 -0
  171. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/pytest.ini +0 -0
  172. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/requirements.txt +0 -0
  173. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/test/util.py +0 -0
  174. {sbcli-pre-25.6.6 → sbcli-pre-25.6.7}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 25.6.6
3
+ Version: 25.6.7
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.6.6
3
+ Version: 25.6.7
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -25,12 +25,24 @@ def send_node_status_event(node, node_status, target_node=None):
25
25
  "status": node_status}
26
26
  events = {"events": [node_status_event]}
27
27
  logger.debug(node_status_event)
28
+ skipped_nodes = []
28
29
  if target_node:
29
30
  snodes = [target_node]
30
31
  else:
31
32
  snodes = db_controller.get_storage_nodes_by_cluster_id(node.cluster_id)
33
+ for node in snodes:
34
+ if node.status == StorageNode.STATUS_SCHEDULABLE:
35
+ skipped_nodes.append(node)
36
+
32
37
  for node in snodes:
33
- if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED]:
38
+ if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED, StorageNode.STATUS_DOWN]:
39
+ continue
40
+ node_found_same_host = False
41
+ for n in skipped_nodes:
42
+ if node.mgmt_ip == n.mgmt_ip:
43
+ node_found_same_host = True
44
+ break
45
+ if node_found_same_host:
34
46
  continue
35
47
  logger.info(f"Sending to: {node.get_id()}")
36
48
  rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=3, retry=1)
@@ -44,14 +56,26 @@ def send_dev_status_event(device, status, target_node=None):
44
56
  return
45
57
  db_controller = DBController()
46
58
  storage_ID = device.cluster_device_order
59
+ skipped_nodes = []
60
+
47
61
  if target_node:
48
62
  snodes = [db_controller.get_storage_node_by_id(target_node.get_id())]
49
63
  else:
50
64
  snodes = db_controller.get_storage_nodes_by_cluster_id(device.cluster_id)
65
+ for node in snodes:
66
+ if node.status == StorageNode.STATUS_SCHEDULABLE:
67
+ skipped_nodes.append(node)
68
+
51
69
  for node in snodes:
52
70
  if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED, StorageNode.STATUS_DOWN]:
53
71
  continue
54
-
72
+ node_found_same_host = False
73
+ for n in skipped_nodes:
74
+ if node.mgmt_ip == n.mgmt_ip:
75
+ node_found_same_host = True
76
+ break
77
+ if node_found_same_host:
78
+ continue
55
79
  dev_status = status
56
80
 
57
81
  if status == NVMeDevice.STATUS_ONLINE and node.get_id() != device.node_id:
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-pre
2
- SIMPLY_BLOCK_VERSION=25.6.6
2
+ SIMPLY_BLOCK_VERSION=25.6.7
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:R25.6-PRE
@@ -248,6 +248,10 @@ while True:
248
248
 
249
249
  nodes = db.get_storage_nodes_by_cluster_id(cluster_id)
250
250
  for snode in nodes:
251
+
252
+ # get fresh node object, something could have changed until the last for loop is reached
253
+ snode = db.get_storage_node_by_id(snode.get_id())
254
+
251
255
  if snode.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_UNREACHABLE,
252
256
  StorageNode.STATUS_SCHEDULABLE, StorageNode.STATUS_DOWN]:
253
257
  logger.info(f"Node status is: {snode.status}, skipping")
@@ -3080,6 +3080,10 @@ def add_lvol_thread(lvol, snode, lvol_ana_state="optimized"):
3080
3080
  lvol_obj.io_error = False
3081
3081
  lvol_obj.health_check = True
3082
3082
  lvol_obj.write_to_db()
3083
+ # set QOS
3084
+ if lvol.rw_ios_per_sec or lvol.rw_mbytes_per_sec or lvol.r_mbytes_per_sec or lvol.w_mbytes_per_sec :
3085
+ lvol_controller.set_lvol(lvol.uuid, lvol.rw_ios_per_sec, lvol.rw_mbytes_per_sec,
3086
+ lvol.r_mbytes_per_sec , lvol.w_mbytes_per_sec)
3083
3087
  return True, None
3084
3088
 
3085
3089
 
@@ -518,7 +518,7 @@ def calculate_minimum_hp_memory(small_pool_count, large_pool_count, lvol_count,
518
518
  return: minimum_hp_memory in bytes
519
519
  '''
520
520
  pool_consumption = (small_pool_count * 8 + large_pool_count * 128) / 1024 + 1092
521
- memory_consumption = (4 * cpu_count + 1.0277 * pool_consumption + 12 * lvol_count) * (1024 * 1024) + (
521
+ memory_consumption = (4 * cpu_count + 1.0277 * pool_consumption + 20 * lvol_count) * (1024 * 1024) + (
522
522
  250 * 1024 * 1024) * 1.1 * convert_size(max_prov, 'TiB') + constants.EXTRA_HUGE_PAGE_MEMORY
523
523
  return int(1.2*memory_consumption)
524
524
 
@@ -1753,15 +1753,16 @@ def get_k8s_core_client():
1753
1753
  return client.CoreV1Api()
1754
1754
 
1755
1755
 
1756
- def remove_container(client: docker.DockerClient, name, timeout=3):
1756
+ def remove_container(client: docker.DockerClient, name, graceful_timeout=3):
1757
1757
  try:
1758
1758
  container = client.containers.get(name)
1759
- container.stop(timeout=timeout)
1760
- container.remove()
1759
+ if graceful_timeout:
1760
+ container.stop(timeout=graceful_timeout)
1761
+ container.remove(force=(not graceful_timeout))
1761
1762
  except docker.errors.NotFound:
1762
1763
  pass
1763
1764
  except docker.errors.APIError as e:
1764
- if 'Conflict ("removal of container {container.id} is already in progress")' != e.response.reason:
1765
+ if e.response and 'Conflict ("removal of container {container.id} is already in progress")' != e.response.reason:
1765
1766
  raise
1766
1767
 
1767
1768
  def render_and_deploy_alerting_configs(contact_point, grafana_endpoint, cluster_uuid, cluster_secret):
@@ -76,7 +76,7 @@ def spdk_process_start():
76
76
 
77
77
  node_docker = get_docker_client()
78
78
  for name in {f"/spdk_{rpc_port}", f"/spdk_proxy_{rpc_port}"}:
79
- core_utils.remove_container(node_docker, name)
79
+ core_utils.remove_container(node_docker, name, graceful_timeout=0)
80
80
 
81
81
  spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
82
82
 
@@ -157,7 +157,7 @@ def spdk_process_start(body: SPDKParams):
157
157
 
158
158
  node_docker = get_docker_client(timeout=60 * 3)
159
159
  for name in {f"/spdk_{body.rpc_port}", f"/spdk_proxy_{body.rpc_port}"}:
160
- core_utils.remove_container(node_docker, name)
160
+ core_utils.remove_container(node_docker, name, graceful_timeout=0)
161
161
 
162
162
  if body.cluster_ip is not None:
163
163
  log_config = LogConfig(type=LogConfig.types.GELF, config={"gelf-address": f"tcp://{body.cluster_ip}:12202"})
@@ -232,7 +232,7 @@ def spdk_process_start(body: SPDKParams):
232
232
  })
233
233
  def spdk_process_kill(query: _RPCPortQuery):
234
234
  for name in {f"/spdk_{query.rpc_port}", f"/spdk_proxy_{query.rpc_port}"}:
235
- core_utils.remove_container(get_docker_client(), name)
235
+ core_utils.remove_container(get_docker_client(), name, graceful_timeout=0)
236
236
  return utils.get_response(True)
237
237
 
238
238
 
File without changes
File without changes
File without changes
File without changes
File without changes