sbcli-hmdi 0.0.49__tar.gz → 0.0.51__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/PKG-INFO +2 -1
  2. sbcli_hmdi-0.0.49/sbcli_hmdi.egg-info/requires.txt → sbcli_hmdi-0.0.51/requirements.txt +1 -0
  3. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/sbcli_hmdi.egg-info/PKG-INFO +2 -1
  4. sbcli_hmdi-0.0.49/requirements.txt → sbcli_hmdi-0.0.51/sbcli_hmdi.egg-info/requires.txt +2 -1
  5. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/health_controller.py +20 -0
  6. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/pool_controller.py +4 -3
  7. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/env_var +1 -1
  8. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/install_deps.sh +0 -6
  9. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/health_check_service.py +27 -0
  10. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/snode_ops.py +2 -1
  11. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_pool.py +5 -2
  12. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/README.md +0 -0
  13. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/pyproject.toml +0 -0
  14. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/sbcli_hmdi.egg-info/SOURCES.txt +0 -0
  15. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/sbcli_hmdi.egg-info/dependency_links.txt +0 -0
  16. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/sbcli_hmdi.egg-info/entry_points.txt +0 -0
  17. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/sbcli_hmdi.egg-info/top_level.txt +0 -0
  18. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/setup.cfg +0 -0
  19. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/setup.py +0 -0
  20. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_cli/__init__.py +0 -0
  21. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_cli/cli.py +0 -0
  22. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_cli/main.py +0 -0
  23. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/__init__.py +0 -0
  24. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/cluster_ops.py +0 -0
  25. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/cnode_client.py +0 -0
  26. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/constants.py +0 -0
  27. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/__init__.py +0 -0
  28. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  29. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/cluster_events.py +0 -0
  30. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/device_controller.py +0 -0
  31. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/device_events.py +0 -0
  32. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/events_controller.py +0 -0
  33. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/lvol_controller.py +0 -0
  34. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/lvol_events.py +0 -0
  35. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/mgmt_events.py +0 -0
  36. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/pool_events.py +0 -0
  37. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  38. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/snapshot_events.py +0 -0
  39. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/storage_events.py +0 -0
  40. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/tasks_controller.py +0 -0
  41. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/controllers/tasks_events.py +0 -0
  42. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/db_controller.py +0 -0
  43. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/distr_controller.py +0 -0
  44. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/mgmt_node_ops.py +0 -0
  45. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/__init__.py +0 -0
  46. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/base_model.py +0 -0
  47. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/caching_node.py +0 -0
  48. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/cluster.py +0 -0
  49. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/deployer.py +0 -0
  50. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/events.py +0 -0
  51. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/iface.py +0 -0
  52. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/job_schedule.py +0 -0
  53. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/lvol_model.py +0 -0
  54. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/mgmt_node.py +0 -0
  55. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/nvme_device.py +0 -0
  56. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/pool.py +0 -0
  57. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/port_stat.py +0 -0
  58. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/snapshot.py +0 -0
  59. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/stats.py +0 -0
  60. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/models/storage_node.py +0 -0
  61. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/pci_utils.py +0 -0
  62. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/rpc_client.py +0 -0
  63. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  79. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  80. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  81. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  82. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/foundation.yml +0 -0
  83. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/haproxy.cfg +0 -0
  84. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/objstore.yml +0 -0
  85. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  86. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/prometheus.yml +0 -0
  87. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/run_ssh.sh +0 -0
  88. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/set_db_config.sh +0 -0
  89. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  90. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/__init__.py +0 -0
  91. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  92. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/caching_node_monitor.py +0 -0
  93. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/cap_monitor.py +0 -0
  94. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  95. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/device_monitor.py +0 -0
  96. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/install_service.sh +0 -0
  97. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/log_agg_service.py +0 -0
  98. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/lvol_monitor.py +0 -0
  99. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  100. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  101. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  102. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/new_device_discovery.py +0 -0
  103. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/port_stat_collector.py +0 -0
  104. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/remove_service.sh +0 -0
  105. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/service_template.service +0 -0
  106. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/spdk/__init__.py +0 -0
  107. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/spdk/client.py +0 -0
  108. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  109. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/spdk_stats_collector.py +0 -0
  110. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/storage_node_monitor.py +0 -0
  111. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  112. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  113. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  114. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  115. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  116. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/shell_utils.py +0 -0
  117. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/snode_client.py +0 -0
  118. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/storage_node_ops.py +0 -0
  119. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/utils.py +0 -0
  120. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  121. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/README.md +0 -0
  122. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/__init__.py +0 -0
  123. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/app.py +0 -0
  124. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/auth_middleware.py +0 -0
  125. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/__init__.py +0 -0
  126. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  127. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  128. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  129. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  130. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  131. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  132. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  133. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  134. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  135. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_device.py +0 -0
  136. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  137. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  138. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  139. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  140. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/caching_node_app.py +0 -0
  141. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/caching_node_app_k8s.py +0 -0
  142. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/node_utils.py +0 -0
  143. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/node_webapp.py +0 -0
  144. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/requirements.txt +0 -0
  145. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/snode_app.py +0 -0
  146. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/snode_app_k8s.py +0 -0
  147. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/delete.py +0 -0
  148. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/deploy.py +0 -0
  149. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  150. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  151. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/is_up.py +0 -0
  152. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/list_deps.py +0 -0
  153. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/rpac.yaml +0 -0
  154. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/static/tst.py +0 -0
  155. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  156. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  157. {sbcli_hmdi-0.0.49 → sbcli_hmdi-0.0.51}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-hmdi
3
- Version: 0.0.49
3
+ Version: 0.0.51
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -24,6 +24,7 @@ Requires-Dist: graypy==2.1.0
24
24
  Requires-Dist: boto3
25
25
  Requires-Dist: jinja2
26
26
  Requires-Dist: argcomplete
27
+ Requires-Dist: jc
27
28
  Dynamic: author
28
29
  Dynamic: author-email
29
30
  Dynamic: description
@@ -16,3 +16,4 @@ graypy==2.1.0
16
16
  boto3
17
17
  jinja2
18
18
  argcomplete
19
+ jc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-hmdi
3
- Version: 0.0.49
3
+ Version: 0.0.51
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -24,6 +24,7 @@ Requires-Dist: graypy==2.1.0
24
24
  Requires-Dist: boto3
25
25
  Requires-Dist: jinja2
26
26
  Requires-Dist: argcomplete
27
+ Requires-Dist: jc
27
28
  Dynamic: author
28
29
  Dynamic: author-email
29
30
  Dynamic: description
@@ -15,4 +15,5 @@ urllib3
15
15
  graypy==2.1.0
16
16
  boto3
17
17
  jinja2
18
- argcomplete
18
+ argcomplete
19
+ jc
@@ -1,4 +1,5 @@
1
1
  # coding=utf-8
2
+ import jc
2
3
 
3
4
  from simplyblock_core import utils, distr_controller, storage_node_ops
4
5
  from simplyblock_core.db_controller import DBController
@@ -102,6 +103,25 @@ def _check_spdk_process_up(ip):
102
103
  return False
103
104
 
104
105
 
106
+ def _check_port_on_node(snode, port_id):
107
+ try:
108
+ snode_api = SNodeClient(f"{snode.mgmt_ip}:5000", timeout=3, retry=2)
109
+ iptables_command_output = snode_api.get_firewall()
110
+ result = jc.parse('iptables', iptables_command_output)
111
+ for chain in result:
112
+ if chain['chain'] in ["INPUT", "OUTPUT"]:
113
+ for rule in chain['rules']:
114
+ if str(port_id) in rule['options']:
115
+ action = rule['target']
116
+ if action == "DROP":
117
+ return False
118
+
119
+ return True
120
+ except Exception as e:
121
+ logger.debug(e)
122
+ return True
123
+
124
+
105
125
  def _check_node_ping(ip):
106
126
  res = utils.ping_host(ip)
107
127
  if res:
@@ -129,9 +129,10 @@ def delete_pool(uuid):
129
129
  logger.error(f"Pool is disabled")
130
130
  return False
131
131
 
132
- # if pool.lvols:
133
- # logger.error(f"Pool is not empty {uuid}")
134
- # return False
132
+ lvols = db_controller.get_lvols_by_pool_id(uuid)
133
+ if lvols and len(lvols) > 0:
134
+ logger.error(f"Pool {uuid} is not empty, lvols found {len(lvols)}")
135
+ return False
135
136
 
136
137
  logger.info(f"Deleting pool {pool.get_id()}")
137
138
  pool_events.pool_remove(pool)
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-hmdi
2
- SIMPLY_BLOCK_VERSION=0.0.49
2
+ SIMPLY_BLOCK_VERSION=0.0.51
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:hmdi
5
5
  DOCKER_USER=hamdysimplyblock
@@ -37,9 +37,3 @@ sudo chmod 777 /etc/simplyblock
37
37
  sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
38
38
 
39
39
  sudo sed -i 's/ProcessSizeMax=.*/ProcessSizeMax=5G/' /etc/systemd/coredump.conf
40
-
41
- sudo iptables -F
42
- sudo iptables -X
43
- sudo iptables -P INPUT ACCEPT
44
- sudo iptables -P FORWARD ACCEPT
45
- sudo iptables -P OUTPUT ACCEPT
@@ -9,6 +9,7 @@ from simplyblock_core.models.nvme_device import NVMeDevice
9
9
  from simplyblock_core.models.storage_node import StorageNode
10
10
  from simplyblock_core.rpc_client import RPCClient
11
11
  from simplyblock_core import constants, db_controller, utils, distr_controller
12
+ from simplyblock_core.snode_client import SNodeClient
12
13
 
13
14
  logger = utils.get_logger(__name__)
14
15
 
@@ -43,6 +44,8 @@ def set_device_health_check(cluster_id, device, health_check_status):
43
44
  # get DB controller
44
45
  db_controller = db_controller.DBController()
45
46
 
47
+ nodes_ports_blocked = {}
48
+
46
49
  logger.info("Starting health check service")
47
50
  while True:
48
51
  clusters = db_controller.get_clusters()
@@ -286,14 +289,38 @@ while True:
286
289
  if second_node_1 and second_node_1.status == StorageNode.STATUS_ONLINE:
287
290
  lvstore_check &= health_controller._check_node_lvstore(lvstore_stack, second_node_1, auto_fix=True)
288
291
 
292
+ lvol_port_check = False
293
+ if node_api_check:
294
+ lvol_port_check = health_controller._check_port_on_node(snode, snode.lvol_subsys_port)
295
+ logger.info(
296
+ f"Check: node {snode.mgmt_ip}:{snode.rpc_port}, port: {snode.lvol_subsys_port} ... {lvol_port_check}")
297
+ if not lvol_port_check:
298
+ nodes_ports_blocked[snode.get_id()] = nodes_ports_blocked.get(snode.get_id(), []).append(
299
+ snode.lvol_subsys_port)
300
+
289
301
  if snode.is_secondary_node:
290
302
  for node in db_controller.get_storage_nodes():
291
303
  if node.secondary_node_id == snode.get_id() and node.status == StorageNode.STATUS_ONLINE:
292
304
  logger.info(f"Checking stack from node : {node.get_id()}")
293
305
  lvstore_check &= health_controller._check_node_lvstore(node.lvstore_stack, snode, auto_fix=True)
306
+ lvol_port_check = False
307
+ if node_api_check:
308
+ lvol_port_check = health_controller._check_port_on_node(snode, node.lvol_subsys_port)
309
+ logger.info(
310
+ f"Check: node {snode.mgmt_ip}:{snode.rpc_port}, port: {node.lvol_subsys_port} ... {lvol_port_check}")
311
+ if not lvol_port_check:
312
+ nodes_ports_blocked[snode.get_id()] = nodes_ports_blocked.get(snode.get_id(), []).append(node.lvol_subsys_port)
294
313
 
295
314
  health_check_status = is_node_online and node_devices_check and node_remote_devices_check and lvstore_check
296
315
  set_node_health_check(snode, health_check_status)
297
316
 
298
317
  time.sleep(constants.HEALTH_CHECK_INTERVAL_SEC)
299
318
 
319
+ for node_id, port_lst in nodes_ports_blocked.items():
320
+ snode = db_controller.get_storage_node_by_id(node_id)
321
+ snode_api = SNodeClient(f"{snode.mgmt_ip}:5000", timeout=3, retry=2)
322
+ for port in port_lst:
323
+ iptables_command_output = snode_api.firewall_set_port(port, "tcp", "allow")
324
+
325
+ nodes_ports_blocked = {}
326
+
@@ -155,7 +155,8 @@ def spdk_process_start():
155
155
  spdk_image = constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE
156
156
  if 'spdk_image' in data and data['spdk_image']:
157
157
  spdk_image = data['spdk_image']
158
- # node_docker.images.pull(spdk_image)
158
+
159
+ node_docker.images.pull(spdk_image)
159
160
 
160
161
  if "cluster_ip" in data and data['cluster_ip']:
161
162
  cluster_ip = data['cluster_ip']
@@ -103,8 +103,11 @@ def delete_pool(uuid):
103
103
  if req_secret != pool.secret:
104
104
  return utils.get_response_error(f"Pool secret doesn't mach the value in the request header", 400)
105
105
 
106
- # if pool.lvols:
107
- # return utils.get_response_error(f"Can not delete Pool with LVols", 400)
106
+ lvols = db_controller.get_lvols_by_pool_id(uuid)
107
+ if lvols and len(lvols) > 0:
108
+ msg = f"Pool {uuid} is not empty, lvols found {len(lvols)}"
109
+ logger.error(msg)
110
+ return utils.get_response_error(msg, 400)
108
111
 
109
112
  pool.remove(db_controller.kv_store)
110
113
  return utils.get_response("Done")
File without changes
File without changes
File without changes
File without changes