sbcli-dev 18.0.0__tar.gz → 18.0.2__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.0 → sbcli_dev-18.0.2}/PKG-INFO +1 -1
  2. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/sbcli_dev.egg-info/PKG-INFO +1 -1
  3. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/db_controller.py +50 -21
  4. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/env_var +2 -2
  5. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/hublvol.py +1 -1
  6. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/storage_node.py +0 -1
  7. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/utils.py +1 -1
  8. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/README.md +0 -0
  9. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/pyproject.toml +0 -0
  10. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/requirements.txt +0 -0
  11. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  12. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  13. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/sbcli_dev.egg-info/entry_points.txt +0 -0
  14. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/sbcli_dev.egg-info/requires.txt +0 -0
  15. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/sbcli_dev.egg-info/top_level.txt +0 -0
  16. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/setup.cfg +0 -0
  17. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/setup.py +0 -0
  18. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_cli/__init__.py +0 -0
  19. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_cli/cli.py +0 -0
  20. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_cli/clibase.py +0 -0
  21. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_cli/main.py +0 -0
  22. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/__init__.py +0 -0
  23. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/cluster_ops.py +0 -0
  24. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/cnode_client.py +0 -0
  25. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/constants.py +0 -0
  26. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/__init__.py +0 -0
  27. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  28. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/cluster_events.py +0 -0
  29. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/device_controller.py +0 -0
  30. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/device_events.py +0 -0
  31. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/events_controller.py +0 -0
  32. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/health_controller.py +0 -0
  33. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/lvol_controller.py +0 -0
  34. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/lvol_events.py +0 -0
  35. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/mgmt_events.py +0 -0
  36. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/pool_controller.py +0 -0
  37. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/pool_events.py +0 -0
  38. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  39. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/snapshot_events.py +0 -0
  40. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/storage_events.py +0 -0
  41. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/tasks_controller.py +0 -0
  42. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/tasks_events.py +0 -0
  43. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
  44. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/distr_controller.py +0 -0
  45. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/mgmt_node_ops.py +0 -0
  46. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/__init__.py +0 -0
  47. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/base_model.py +0 -0
  48. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/caching_node.py +0 -0
  49. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/cluster.py +0 -0
  50. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/deployer.py +0 -0
  51. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/events.py +0 -0
  52. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/iface.py +0 -0
  53. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/job_schedule.py +0 -0
  54. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/lvol_model.py +0 -0
  55. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/mgmt_node.py +0 -0
  56. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/nvme_device.py +0 -0
  57. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/pool.py +0 -0
  58. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/port_stat.py +0 -0
  59. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/snapshot.py +0 -0
  60. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/models/stats.py +0 -0
  61. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/pci_utils.py +0 -0
  62. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/rpc_client.py +0 -0
  63. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  79. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  80. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  81. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  82. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/foundation.yml +0 -0
  83. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/haproxy.cfg +0 -0
  84. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/helpers/__init__.py +0 -0
  85. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
  86. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
  87. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
  88. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/install_deps.sh +0 -0
  89. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/objstore.yml +0 -0
  90. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  91. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
  92. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/run_ssh.sh +0 -0
  93. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/set_db_config.sh +0 -0
  94. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  95. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/__init__.py +0 -0
  96. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  97. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/caching_node_monitor.py +0 -0
  98. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/cap_monitor.py +0 -0
  99. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  100. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/device_monitor.py +0 -0
  101. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/health_check_service.py +0 -0
  102. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/install_service.sh +0 -0
  103. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/lvol_monitor.py +0 -0
  104. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  105. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  106. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  107. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/new_device_discovery.py +0 -0
  108. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/remove_service.sh +0 -0
  109. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/service_template.service +0 -0
  110. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/spdk/__init__.py +0 -0
  111. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/spdk/client.py +0 -0
  112. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  113. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/spdk_stats_collector.py +0 -0
  114. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/storage_node_monitor.py +0 -0
  115. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  116. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  117. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  118. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  119. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  120. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/shell_utils.py +0 -0
  121. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/snode_client.py +0 -0
  122. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/storage_node_ops.py +0 -0
  123. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/test/test_models.py +0 -0
  124. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/test/test_utils.py +0 -0
  125. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  126. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/README.md +0 -0
  127. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/__init__.py +0 -0
  128. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/app.py +0 -0
  129. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/auth_middleware.py +0 -0
  130. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/__init__.py +0 -0
  131. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  132. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  133. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  134. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  135. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  136. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/snode_ops.py +0 -0
  137. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  138. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
  139. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  140. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  141. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  142. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_device.py +0 -0
  143. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  144. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
  145. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  146. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  147. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  148. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  149. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/node_configure.py +0 -0
  150. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/node_utils.py +0 -0
  151. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/node_utils_k8s.py +0 -0
  152. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/node_webapp.py +0 -0
  153. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/requirements.txt +0 -0
  154. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
  155. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/delete.py +0 -0
  156. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/deploy.py +0 -0
  157. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  158. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  159. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/is_up.py +0 -0
  160. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/list_deps.py +0 -0
  161. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/rpac.yaml +0 -0
  162. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/swagger.yaml +0 -0
  163. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/static/tst.py +0 -0
  164. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  165. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  166. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/test/api/test_lvol.py +0 -0
  167. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/test/api/test_pool.py +0 -0
  168. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/test/api/test_snapshot.py +0 -0
  169. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/test/conftest.py +0 -0
  170. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/test/pytest.ini +0 -0
  171. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/test/requirements.txt +0 -0
  172. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/simplyblock_web/test/util.py +0 -0
  173. {sbcli_dev-18.0.0 → sbcli_dev-18.0.2}/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.0
3
+ Version: 18.0.2
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.0
3
+ Version: 18.0.2
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -3,7 +3,7 @@ import logging
3
3
  import os.path
4
4
 
5
5
  import fdb
6
- from typing import List
6
+ from typing import List, Optional
7
7
 
8
8
  from simplyblock_core import constants
9
9
  from simplyblock_core.models.caching_node import CachingNode
@@ -65,6 +65,13 @@ class DBController(metaclass=Singleton):
65
65
  nodes.append(n)
66
66
  return sorted(nodes, key=lambda x: x.create_dt)
67
67
 
68
+ def get_storage_node_by_system_id(self, system_id) -> Optional[StorageNode]:
69
+ nodes = StorageNode().read_from_db(self.kv_store)
70
+ for node in nodes:
71
+ if node.system_uuid == system_id:
72
+ return node
73
+ return None
74
+
68
75
  def get_storage_nodes_by_system_id(self, system_id) -> List[StorageNode]:
69
76
  return [
70
77
  node for node
@@ -79,10 +86,11 @@ class DBController(metaclass=Singleton):
79
86
  if node.hostname == hostname
80
87
  ]
81
88
 
82
- def get_storage_node_by_id(self, id) -> StorageNode:
89
+ def get_storage_node_by_id(self, id) -> Optional[StorageNode]:
83
90
  ret = StorageNode().read_from_db(self.kv_store, id)
84
91
  if ret:
85
92
  return ret[0]
93
+ return None
86
94
 
87
95
  # todo: change this function for multi cluster
88
96
  def get_caching_nodes(self) -> List[CachingNode]:
@@ -90,29 +98,40 @@ class DBController(metaclass=Singleton):
90
98
  ret = sorted(ret, key=lambda x: x.create_dt)
91
99
  return ret
92
100
 
93
- def get_caching_node_by_id(self, id) -> CachingNode:
101
+ def get_caching_node_by_id(self, id) -> Optional[CachingNode]:
94
102
  ret = CachingNode().read_from_db(self.kv_store, id)
95
103
  if ret:
96
104
  return ret[0]
105
+ return None
97
106
 
98
- def get_caching_node_by_system_id(self, system_id) -> List[CachingNode]:
107
+ def get_caching_node_by_system_id(self, system_id) -> Optional[CachingNode]:
99
108
  nodes = CachingNode().read_from_db(self.kv_store)
100
109
  for node in nodes:
101
110
  if node.system_uuid == system_id:
102
111
  return node
112
+ return None
103
113
 
104
- def get_caching_node_by_hostname(self, hostname) -> CachingNode:
114
+ def get_caching_node_by_hostname(self, hostname) -> Optional[CachingNode]:
105
115
  nodes = self.get_caching_nodes()
106
116
  for node in nodes:
107
117
  if node.hostname == hostname:
108
118
  return node
119
+ return None
120
+
121
+ def get_storage_node_by_hostname(self, hostname) -> Optional[StorageNode]:
122
+ nodes = self.get_storage_nodes()
123
+ for node in nodes:
124
+ if node.hostname == hostname:
125
+ return node
126
+ return None
109
127
 
110
- def get_storage_device_by_id(self, id) -> NVMeDevice:
128
+ def get_storage_device_by_id(self, id) -> Optional[NVMeDevice]:
111
129
  nodes = self.get_storage_nodes()
112
130
  for node in nodes:
113
131
  for dev in node.nvme_devices:
114
132
  if dev.get_id() == id:
115
133
  return dev
134
+ return None
116
135
 
117
136
  def get_pools(self, cluster_id=None) -> List[Pool]:
118
137
  pools = []
@@ -124,16 +143,18 @@ class DBController(metaclass=Singleton):
124
143
  pools = Pool().read_from_db(self.kv_store)
125
144
  return pools
126
145
 
127
- def get_pool_by_id(self, id) -> Pool:
146
+ def get_pool_by_id(self, id) -> Optional[Pool]:
128
147
  ret = Pool().read_from_db(self.kv_store, id)
129
148
  if ret:
130
149
  return ret[0]
150
+ return None
131
151
 
132
- def get_pool_by_name(self, name) -> Pool:
152
+ def get_pool_by_name(self, name) -> Optional[Pool]:
133
153
  pools = Pool().read_from_db(self.kv_store)
134
154
  for pool in pools:
135
155
  if pool.pool_name == name:
136
156
  return pool
157
+ return None
137
158
 
138
159
  def get_lvols(self, cluster_id=None) -> List[LVol]:
139
160
  lvols = self.get_all_lvols()
@@ -181,25 +202,29 @@ class DBController(metaclass=Singleton):
181
202
  ret = SnapShot().read_from_db(self.kv_store)
182
203
  return ret
183
204
 
184
- def get_snapshot_by_id(self, id) -> SnapShot:
205
+ def get_snapshot_by_id(self, id) -> Optional[SnapShot]:
185
206
  ret = SnapShot().read_from_db(self.kv_store, id)
186
207
  if ret:
187
208
  return ret[0]
209
+ return None
188
210
 
189
- def get_lvol_by_id(self, id) -> LVol:
211
+ def get_lvol_by_id(self, id) -> Optional[LVol]:
190
212
  lvols = LVol().read_from_db(self.kv_store, id=id)
191
213
  if lvols:
192
214
  return lvols[0]
215
+ return None
193
216
 
194
- def get_lvol_by_name(self, lvol_name) -> LVol:
217
+ def get_lvol_by_name(self, lvol_name) -> Optional[LVol]:
195
218
  for lvol in self.get_lvols():
196
219
  if lvol.lvol_name == lvol_name:
197
220
  return lvol
221
+ return None
198
222
 
199
- def get_mgmt_node_by_id(self, id) -> MgmtNode:
223
+ def get_mgmt_node_by_id(self, id) -> Optional[MgmtNode]:
200
224
  ret = MgmtNode().read_from_db(self.kv_store, id)
201
225
  if ret:
202
226
  return ret[0]
227
+ return None
203
228
 
204
229
  def get_mgmt_nodes(self, cluster_id=None) -> List[MgmtNode]:
205
230
  nodes = MgmtNode().read_from_db(self.kv_store)
@@ -207,11 +232,12 @@ class DBController(metaclass=Singleton):
207
232
  nodes = [n for n in nodes if n.cluster_id == cluster_id]
208
233
  return sorted(nodes, key=lambda x: x.create_dt)
209
234
 
210
- def get_mgmt_node_by_hostname(self, hostname) -> MgmtNode:
235
+ def get_mgmt_node_by_hostname(self, hostname) -> Optional[MgmtNode]:
211
236
  nodes = self.get_mgmt_nodes()
212
237
  for node in nodes:
213
238
  if node.hostname == hostname:
214
239
  return node
240
+ return None
215
241
 
216
242
  def get_lvol_stats(self, lvol, limit=20) -> List[LVolStatObject]:
217
243
  if isinstance(lvol, str):
@@ -257,18 +283,20 @@ class DBController(metaclass=Singleton):
257
283
  def get_clusters(self) -> List[Cluster]:
258
284
  return Cluster().read_from_db(self.kv_store)
259
285
 
260
- def get_cluster_by_id(self, cluster_id) -> Cluster:
286
+ def get_cluster_by_id(self, cluster_id) -> Optional[Cluster]:
261
287
  ret = Cluster().read_from_db(self.kv_store, id=cluster_id)
262
288
  if ret:
263
289
  return ret[0]
290
+ return None
264
291
 
265
292
  def get_deployers(self) -> List[Deployer]:
266
293
  return Deployer().read_from_db(self.kv_store)
267
294
 
268
- def get_deployer_by_id(self, deployer_id) -> Deployer:
295
+ def get_deployer_by_id(self, deployer_id) -> Optional[Deployer]:
269
296
  ret = Deployer().read_from_db(self.kv_store, id=deployer_id)
270
297
  if ret:
271
298
  return ret[0]
299
+ return None
272
300
 
273
301
  def get_port_stats(self, node_id, port_id, limit=20) -> List[PortStat]:
274
302
  stats = PortStat().read_from_db(self.kv_store, id="%s/%s" % (node_id, port_id), limit=limit, reverse=True)
@@ -280,10 +308,11 @@ class DBController(metaclass=Singleton):
280
308
  def get_job_tasks(self, cluster_id, reverse=True, limit=0) -> List[JobSchedule]:
281
309
  return JobSchedule().read_from_db(self.kv_store, id=cluster_id, reverse=reverse, limit=limit)
282
310
 
283
- def get_task_by_id(self, task_id) -> JobSchedule:
311
+ def get_task_by_id(self, task_id) -> Optional[JobSchedule]:
284
312
  for task in self.get_job_tasks(" "):
285
313
  if task.uuid == task_id:
286
314
  return task
315
+ return None
287
316
 
288
317
  def get_snapshots_by_node_id(self, node_id) -> List[SnapShot]:
289
318
  ret = []
@@ -295,15 +324,15 @@ class DBController(metaclass=Singleton):
295
324
 
296
325
  def get_snode_size(self, node_id) -> int:
297
326
  snode = self.get_storage_node_by_id(node_id)
298
- total_node_capacity = 0
299
- for dev in snode.nvme_devices:
300
- total_node_capacity += dev.size
301
- return total_node_capacity
327
+ if snode is None:
328
+ raise KeyError('Node not found')
329
+ return sum(dev.size for dev in snode.nvme_devices)
302
330
 
303
- def get_jm_device_by_id(self, jm_id) -> JMDevice:
331
+ def get_jm_device_by_id(self, jm_id) -> Optional[JMDevice]:
304
332
  for node in self.get_storage_nodes():
305
333
  if node.jm_device and node.jm_device.get_id() == jm_id:
306
334
  return node.jm_device
335
+ return None
307
336
 
308
337
  def get_primary_storage_nodes_by_cluster_id(self, cluster_id) -> List[StorageNode]:
309
338
  ret = StorageNode().read_from_db(self.kv_store)
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=18.0.0
2
+ SIMPLY_BLOCK_VERSION=18.0.2
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:main
5
- SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=public.ecr.aws/simply-block/ultra:main-latest
5
+ SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=public.ecr.aws/simply-block/ultra:main-latest
@@ -9,7 +9,7 @@ class HubLVol(BaseModel):
9
9
  uuid: str = ""
10
10
  nqn: str = ""
11
11
  bdev_name: str = ""
12
- nvmf_port: int = 9096
12
+ nvmf_port: int = 9060
13
13
  model_number: str = ""
14
14
  nguid: str = ""
15
15
 
@@ -162,7 +162,6 @@ class StorageNode(BaseNodeObject):
162
162
  'bdev_name': f'{self.lvstore}/hublvol',
163
163
  'model_number': str(uuid4()),
164
164
  'nguid': utils.generate_hex_string(16),
165
- 'nvmf_port': utils.next_free_port(self.cluster_id),
166
165
  'nvmf_port': utils.next_free_hublvol_port(self.cluster_id),
167
166
  })
168
167
 
@@ -1088,7 +1088,7 @@ def next_free_hublvol_port(cluster_id):
1088
1088
  from simplyblock_core.db_controller import DBController
1089
1089
  db_controller = DBController()
1090
1090
 
1091
- port = 9096
1091
+ port = 9060
1092
1092
  used_ports = []
1093
1093
  for node in db_controller.get_storage_nodes_by_cluster_id(cluster_id):
1094
1094
  if node.hublvol and node.hublvol.nvmf_port > 0:
File without changes
File without changes
File without changes
File without changes
File without changes