sbcli-hmdi 0.0.54__tar.gz → 0.0.56__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.54 → sbcli_hmdi-0.0.56}/PKG-INFO +1 -1
  2. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/sbcli_hmdi.egg-info/PKG-INFO +1 -1
  3. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_cli/cli.py +3 -1
  4. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/cluster_ops.py +35 -20
  5. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/env_var +1 -1
  6. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/storage_node_ops.py +8 -5
  7. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/node_utils.py +22 -16
  8. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/requirements.txt +3 -1
  9. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/README.md +0 -0
  10. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/pyproject.toml +0 -0
  11. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/requirements.txt +0 -0
  12. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/sbcli_hmdi.egg-info/SOURCES.txt +0 -0
  13. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/sbcli_hmdi.egg-info/dependency_links.txt +0 -0
  14. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/sbcli_hmdi.egg-info/entry_points.txt +0 -0
  15. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/sbcli_hmdi.egg-info/requires.txt +0 -0
  16. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/sbcli_hmdi.egg-info/top_level.txt +0 -0
  17. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/setup.cfg +0 -0
  18. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/setup.py +0 -0
  19. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_cli/__init__.py +0 -0
  20. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_cli/main.py +0 -0
  21. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/__init__.py +0 -0
  22. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/cnode_client.py +0 -0
  23. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/constants.py +0 -0
  24. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  26. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/device_controller.py +0 -0
  28. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/device_events.py +0 -0
  29. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/events_controller.py +0 -0
  30. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/health_controller.py +0 -0
  31. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/lvol_controller.py +0 -0
  32. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/lvol_events.py +0 -0
  33. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/mgmt_events.py +0 -0
  34. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/pool_controller.py +0 -0
  35. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/pool_events.py +0 -0
  36. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  37. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/snapshot_events.py +0 -0
  38. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/storage_events.py +0 -0
  39. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/tasks_controller.py +0 -0
  40. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/controllers/tasks_events.py +0 -0
  41. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/db_controller.py +0 -0
  42. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/distr_controller.py +0 -0
  43. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/mgmt_node_ops.py +0 -0
  44. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/__init__.py +0 -0
  45. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/base_model.py +0 -0
  46. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/caching_node.py +0 -0
  47. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/cluster.py +0 -0
  48. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/deployer.py +0 -0
  49. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/events.py +0 -0
  50. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/iface.py +0 -0
  51. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/job_schedule.py +0 -0
  52. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/lvol_model.py +0 -0
  53. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/mgmt_node.py +0 -0
  54. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/nvme_device.py +0 -0
  55. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/pool.py +0 -0
  56. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/port_stat.py +0 -0
  57. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/snapshot.py +0 -0
  58. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/stats.py +0 -0
  59. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/models/storage_node.py +0 -0
  60. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/pci_utils.py +0 -0
  61. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/rpc_client.py +0 -0
  62. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/__init__.py +0 -0
  63. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  64. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  65. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  66. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/config_docker.sh +0 -0
  67. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/dashboard.yml +0 -0
  68. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  69. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  70. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  71. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  72. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  73. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  74. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/datasource.yml +0 -0
  75. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/db_config_double.sh +0 -0
  76. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/db_config_single.sh +0 -0
  77. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  78. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  79. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  80. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  81. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/foundation.yml +0 -0
  82. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/haproxy.cfg +0 -0
  83. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/install_deps.sh +0 -0
  84. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/objstore.yml +0 -0
  85. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  86. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/prometheus.yml +0 -0
  87. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/run_ssh.sh +0 -0
  88. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/set_db_config.sh +0 -0
  89. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  90. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/__init__.py +0 -0
  91. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  92. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/caching_node_monitor.py +0 -0
  93. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/cap_monitor.py +0 -0
  94. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  95. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/device_monitor.py +0 -0
  96. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/health_check_service.py +0 -0
  97. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/install_service.sh +0 -0
  98. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/log_agg_service.py +0 -0
  99. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/lvol_monitor.py +0 -0
  100. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  101. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  102. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  103. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/new_device_discovery.py +0 -0
  104. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/port_stat_collector.py +0 -0
  105. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/remove_service.sh +0 -0
  106. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/service_template.service +0 -0
  107. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/spdk/__init__.py +0 -0
  108. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/spdk/client.py +0 -0
  109. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  110. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/spdk_stats_collector.py +0 -0
  111. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/storage_node_monitor.py +0 -0
  112. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  113. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  114. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  115. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  116. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  117. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/shell_utils.py +0 -0
  118. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/snode_client.py +0 -0
  119. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/utils.py +0 -0
  120. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  121. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/README.md +0 -0
  122. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/__init__.py +0 -0
  123. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/app.py +0 -0
  124. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/auth_middleware.py +0 -0
  125. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/__init__.py +0 -0
  126. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  127. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  128. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  129. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  130. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  131. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/snode_ops.py +0 -0
  132. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  133. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  134. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  135. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  136. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_device.py +0 -0
  137. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  138. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  139. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  140. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  141. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  142. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/caching_node_app.py +0 -0
  143. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/caching_node_app_k8s.py +0 -0
  144. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/node_webapp.py +0 -0
  145. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/snode_app.py +0 -0
  146. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/snode_app_k8s.py +0 -0
  147. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/delete.py +0 -0
  148. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/deploy.py +0 -0
  149. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  150. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  151. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/is_up.py +0 -0
  152. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/list_deps.py +0 -0
  153. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/rpac.yaml +0 -0
  154. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/static/tst.py +0 -0
  155. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  156. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  157. {sbcli_hmdi-0.0.54 → sbcli_hmdi-0.0.56}/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.54
3
+ Version: 0.0.56
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.2
2
2
  Name: sbcli-hmdi
3
- Version: 0.0.54
3
+ Version: 0.0.56
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -403,6 +403,8 @@ class CLIWrapper:
403
403
  # update cluster
404
404
  sub_command = self.add_sub_command(subparser, "update", 'Update cluster mgmt services')
405
405
  sub_command.add_argument("id", help='cluster UUID').completer = self._completer_get_cluster_list
406
+ sub_command.add_argument("--mgmt-only", help='Update mgmt services only', dest='mgmt_only', type=bool, default=False)
407
+ sub_command.add_argument("--restart", help='Update mgmt services only', dest='restart', type=bool, default=False)
406
408
 
407
409
  # graceful-shutdown storage nodes
408
410
  sub_command = self.add_sub_command(subparser, "graceful-shutdown", 'Graceful shutdown of storage nodes')
@@ -1022,7 +1024,7 @@ class CLIWrapper:
1022
1024
  elif sub_command == "get":
1023
1025
  ret = cluster_ops.get_cluster(args.id)
1024
1026
  elif sub_command == "update":
1025
- ret = cluster_ops.update_cluster(args.id)
1027
+ ret = cluster_ops.update_cluster(args.id, mgmt_only=args.mgmt_only, restart_cluster=args.restart)
1026
1028
 
1027
1029
  elif sub_command == "list-tasks":
1028
1030
  ret = tasks_controller.list_tasks(args.cluster_id)
@@ -15,7 +15,7 @@ import docker
15
15
  import requests
16
16
  from jinja2 import Environment, FileSystemLoader
17
17
 
18
- from simplyblock_core import utils, scripts, constants, mgmt_node_ops, storage_node_ops, distr_controller
18
+ from simplyblock_core import utils, scripts, constants, mgmt_node_ops, storage_node_ops, distr_controller, shell_utils
19
19
  from simplyblock_core.controllers import cluster_events, device_controller, storage_events, pool_controller, \
20
20
  lvol_controller
21
21
  from simplyblock_core.db_controller import DBController
@@ -991,19 +991,26 @@ def get_cluster(cl_id):
991
991
  return json.dumps(cluster.get_clean_dict(), indent=2, sort_keys=True)
992
992
 
993
993
 
994
- def update_cluster(cl_id):
994
+ def update_cluster(cl_id, mgmt_only=False, restart_cluster=False):
995
995
  db_controller = DBController()
996
996
  cluster = db_controller.get_cluster_by_id(cl_id)
997
997
  if not cluster:
998
998
  logger.error(f"Cluster not found {cl_id}")
999
999
  return False
1000
1000
 
1001
- # try:
1002
- # out, _, ret_code = shell_utils.run_command("pip install sbcli-dev --upgrade")
1003
- # if ret_code == 0:
1004
- # logger.info("sbcli-dev is upgraded")
1005
- # except Exception as e:
1006
- # logger.error(e)
1001
+ if cluster.status != Cluster.STATUS_ACTIVE:
1002
+ logger.error(f"Cluster is not active")
1003
+ return False
1004
+
1005
+ set_cluster_status(cl_id, Cluster.STATUS_SUSPENDED)
1006
+
1007
+ try:
1008
+ sbcli=constants.SIMPLY_BLOCK_CLI_NAME
1009
+ out, _, ret_code = shell_utils.run_command(f"pip install {sbcli} --upgrade")
1010
+ if ret_code == 0:
1011
+ logger.info(f"{sbcli} upgraded")
1012
+ except Exception as e:
1013
+ logger.error(e)
1007
1014
 
1008
1015
  try:
1009
1016
  logger.info("Updating mgmt cluster")
@@ -1015,15 +1022,24 @@ def update_cluster(cl_id):
1015
1022
  if image_without_tag in service.attrs['Spec']['Labels']['com.docker.stack.image']:
1016
1023
  logger.info(f"Updating service {service.name}")
1017
1024
  service.update(image=constants.SIMPLY_BLOCK_DOCKER_IMAGE, force_update=True)
1018
- logger.info("Done")
1025
+ logger.info("Done updating mgmt cluster")
1019
1026
  except Exception as e:
1020
1027
  print(e)
1021
1028
 
1022
- for node in db_controller.get_storage_nodes_by_cluster_id(cl_id):
1023
- try:
1024
- storage_node_ops.start_storage_node_api_container(node.mgmt_ip)
1025
- except:
1026
- pass
1029
+ if not mgmt_only:
1030
+ logger.info("updating storage nodes")
1031
+ for node in db_controller.get_storage_nodes_by_cluster_id(cl_id):
1032
+ if node.status in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED]:
1033
+ try:
1034
+ storage_node_ops.start_storage_node_api_container(node.mgmt_ip)
1035
+ except Exception as e:
1036
+ logger.error(e)
1037
+
1038
+ if restart_cluster:
1039
+ logger.info("Restarting cluster")
1040
+ ret = cluster_grace_shutdown(cl_id)
1041
+ if ret:
1042
+ cluster_grace_startup(cl_id)
1027
1043
 
1028
1044
  logger.info("Done")
1029
1045
  return True
@@ -1059,13 +1075,12 @@ def cluster_grace_shutdown(cl_id):
1059
1075
 
1060
1076
  st = db_controller.get_storage_nodes_by_cluster_id(cl_id)
1061
1077
  for node in st:
1062
- logger.info(f"Suspending node: {node.get_id()}")
1063
- storage_node_ops.suspend_storage_node(node.get_id())
1064
- logger.info(f"Shutting down node: {node.get_id()}")
1065
- storage_node_ops.shutdown_storage_node(node.get_id())
1078
+ if node.status == StorageNode.STATUS_ONLINE:
1079
+ logger.info(f"Suspending node: {node.get_id()}")
1080
+ storage_node_ops.suspend_storage_node(node.get_id())
1081
+ logger.info(f"Shutting down node: {node.get_id()}")
1082
+ storage_node_ops.shutdown_storage_node(node.get_id())
1066
1083
 
1067
- logger.info(f"Suspending cluster: {cl_id}")
1068
- suspend_cluster(cl_id)
1069
1084
  return True
1070
1085
 
1071
1086
 
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-hmdi
2
- SIMPLY_BLOCK_VERSION=0.0.54
2
+ SIMPLY_BLOCK_VERSION=0.0.56
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:hmdi
5
5
  DOCKER_USER=hamdysimplyblock
@@ -2577,18 +2577,21 @@ def deploy(ifname):
2577
2577
 
2578
2578
  def start_storage_node_api_container(node_ip):
2579
2579
  node_docker = docker.DockerClient(base_url=f"tcp://{node_ip}:2375", version="auto", timeout=60 * 5)
2580
+
2581
+
2582
+
2583
+ logger.info(f"Pulling image {constants.SIMPLY_BLOCK_DOCKER_IMAGE}")
2580
2584
  node_docker.images.pull(constants.SIMPLY_BLOCK_DOCKER_IMAGE)
2581
2585
 
2586
+ logger.info("Recreating SNodeAPI container")
2587
+
2582
2588
  # create the api container
2583
2589
  nodes = node_docker.containers.list(all=True)
2584
2590
  for node in nodes:
2585
2591
  if node.attrs["Name"] == "/SNodeAPI":
2586
- logger.info("SNodeAPI container found, removing...")
2587
2592
  node.stop(timeout=1)
2588
2593
  node.remove(force=True)
2589
- # time.sleep(1)
2590
2594
 
2591
- logger.info("Creating SNodeAPI container")
2592
2595
  container = node_docker.containers.run(
2593
2596
  constants.SIMPLY_BLOCK_DOCKER_IMAGE,
2594
2597
  "python simplyblock_web/node_webapp.py storage_node",
@@ -2609,9 +2612,9 @@ def start_storage_node_api_container(node_ip):
2609
2612
  f"DOCKER_IP={node_ip}"
2610
2613
  ]
2611
2614
  )
2612
- logger.info("Pulling SPDK images")
2613
- logger.debug(constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE)
2615
+ logger.info(f"Pulling image {constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE}")
2614
2616
  node_docker.images.pull(constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE)
2617
+ return True
2615
2618
 
2616
2619
 
2617
2620
  def deploy_cleaner():
@@ -5,6 +5,8 @@ import logging
5
5
  import os
6
6
  import subprocess
7
7
 
8
+ import jc
9
+
8
10
  from simplyblock_web import utils
9
11
 
10
12
  logger = logging.getLogger(__name__)
@@ -173,27 +175,31 @@ def get_host_arch():
173
175
 
174
176
 
175
177
  def firewall_port(port_id=9090, port_type="tcp", block=True):
178
+ cmd_list = []
179
+ try:
180
+ iptables_command_output = firewall_get()
181
+ result = jc.parse('iptables', iptables_command_output)
182
+ for chain in result:
183
+ if chain['chain'] in ["INPUT", "OUTPUT"]:
184
+ for rule in chain['rules']:
185
+ if str(port_id) in rule['options']:
186
+ cmd_list.append(f"iptables -D {chain['chain']} -p {port_type} --dport {port_id} -j {rule['target']}")
176
187
 
177
- if block:
178
- cmd_list=[
188
+ except Exception as e:
189
+ logger.error(e)
179
190
 
180
- f"iptables -D INPUT -p {port_type} --dport {port_id} -j ACCEPT",
181
- f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j ACCEPT",
191
+ if block:
192
+ cmd_list.extend([
182
193
  f"iptables -A INPUT -p {port_type} --dport {port_id} -j DROP",
183
194
  f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j DROP",
184
- "iptables -L -n",
185
- ]
195
+ "iptables -L -n -v",
196
+ ])
186
197
  else:
187
- cmd_list=[
188
-
189
- f"iptables -D INPUT -p {port_type} --dport {port_id} -j DROP",
190
- f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j DROP",
191
-
192
- f"iptables -A INPUT -p {port_type} --dport {port_id} -j ACCEPT",
193
- f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j ACCEPT",
194
- "iptables -L -n",
195
-
196
- ]
198
+ cmd_list.extend([
199
+ # f"iptables -A INPUT -p {port_type} --dport {port_id} -j ACCEPT",
200
+ # f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j ACCEPT",
201
+ "iptables -L -n -v",
202
+ ])
197
203
 
198
204
  out = ""
199
205
  for cmd in cmd_list:
@@ -3,4 +3,6 @@ py-cpuinfo
3
3
  kubernetes
4
4
  graypy
5
5
  ec2-metadata
6
- prometheus-client
6
+ prometheus-client
7
+ jc
8
+ setuptools>70.0.0
File without changes
File without changes
File without changes
File without changes