sbcli-dev 10.9.0__tar.gz → 10.9.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 (154) hide show
  1. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/PKG-INFO +1 -1
  2. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/PKG-INFO +1 -1
  3. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/cluster_ops.py +6 -9
  4. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/env_var +1 -1
  5. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/storage_node_ops.py +41 -20
  6. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/README.md +0 -0
  7. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/pyproject.toml +0 -0
  8. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/requirements.txt +0 -0
  9. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  10. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  11. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/entry_points.txt +0 -0
  12. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/requires.txt +0 -0
  13. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/top_level.txt +0 -0
  14. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/setup.cfg +0 -0
  15. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/setup.py +0 -0
  16. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_cli/__init__.py +0 -0
  17. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_cli/cli.py +0 -0
  18. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_cli/main.py +0 -0
  19. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/__init__.py +0 -0
  20. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/cnode_client.py +0 -0
  21. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/constants.py +0 -0
  22. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/__init__.py +0 -0
  23. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  24. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/cluster_events.py +0 -0
  25. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/device_controller.py +0 -0
  26. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/device_events.py +0 -0
  27. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/events_controller.py +0 -0
  28. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/health_controller.py +0 -0
  29. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/lvol_controller.py +0 -0
  30. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/lvol_events.py +0 -0
  31. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/mgmt_events.py +0 -0
  32. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/pool_controller.py +0 -0
  33. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/pool_events.py +0 -0
  34. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  35. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/snapshot_events.py +0 -0
  36. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/storage_events.py +0 -0
  37. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/tasks_controller.py +0 -0
  38. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/controllers/tasks_events.py +0 -0
  39. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/db_controller.py +0 -0
  40. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/distr_controller.py +0 -0
  41. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/mgmt_node_ops.py +0 -0
  42. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/__init__.py +0 -0
  43. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/base_model.py +0 -0
  44. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/caching_node.py +0 -0
  45. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/cluster.py +0 -0
  46. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/deployer.py +0 -0
  47. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/events.py +0 -0
  48. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/iface.py +0 -0
  49. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/job_schedule.py +0 -0
  50. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/lvol_model.py +0 -0
  51. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/mgmt_node.py +0 -0
  52. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/nvme_device.py +0 -0
  53. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/pool.py +0 -0
  54. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/port_stat.py +0 -0
  55. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/snapshot.py +0 -0
  56. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/stats.py +0 -0
  57. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/models/storage_node.py +0 -0
  58. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/pci_utils.py +0 -0
  59. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/rpc_client.py +0 -0
  60. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/__init__.py +0 -0
  61. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  62. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  63. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  64. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/config_docker.sh +0 -0
  65. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboard.yml +0 -0
  66. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  67. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  68. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  69. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  70. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  71. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  72. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/datasource.yml +0 -0
  73. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/db_config_double.sh +0 -0
  74. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/db_config_single.sh +0 -0
  75. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  76. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  77. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  78. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  79. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/foundation.yml +0 -0
  80. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/haproxy.cfg +0 -0
  81. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/install_deps.sh +0 -0
  82. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/objstore.yml +0 -0
  83. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  84. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/prometheus.yml +0 -0
  85. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/run_ssh.sh +0 -0
  86. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/set_db_config.sh +0 -0
  87. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  88. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/__init__.py +0 -0
  89. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  90. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/health_check_service.py +0 -0
  95. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/install_service.sh +0 -0
  96. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/log_agg_service.py +0 -0
  97. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/lvol_monitor.py +0 -0
  98. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  99. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  100. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  101. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/new_device_discovery.py +0 -0
  102. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/port_stat_collector.py +0 -0
  103. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/remove_service.sh +0 -0
  104. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/service_template.service +0 -0
  105. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  106. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/storage_node_monitor.py +0 -0
  107. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  108. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  109. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  110. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  111. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  112. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/snode_client.py +0 -0
  114. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/utils.py +0 -0
  115. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  116. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/README.md +0 -0
  117. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/__init__.py +0 -0
  118. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/app.py +0 -0
  119. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/auth_middleware.py +0 -0
  120. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/__init__.py +0 -0
  121. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  122. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  123. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  124. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  125. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  126. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/snode_ops.py +0 -0
  127. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  128. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  129. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  130. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  131. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_device.py +0 -0
  132. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  133. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  134. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  135. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  136. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  137. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/caching_node_app.py +0 -0
  138. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/caching_node_app_k8s.py +0 -0
  139. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/node_utils.py +0 -0
  140. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/node_webapp.py +0 -0
  141. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/requirements.txt +0 -0
  142. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/snode_app.py +0 -0
  143. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/snode_app_k8s.py +0 -0
  144. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/delete.py +0 -0
  145. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/deploy.py +0 -0
  146. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  147. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  148. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/is_up.py +0 -0
  149. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/list_deps.py +0 -0
  150. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/rpac.yaml +0 -0
  151. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/static/tst.py +0 -0
  152. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  153. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  154. {sbcli_dev-10.9.0 → sbcli_dev-10.9.2}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-dev
3
- Version: 10.9.0
3
+ Version: 10.9.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.2
2
2
  Name: sbcli-dev
3
- Version: 10.9.0
3
+ Version: 10.9.2
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -612,8 +612,8 @@ def list_all_info(cluster_id):
612
612
  data = []
613
613
 
614
614
  data.append({
615
- "UUID": cl.uuid,
616
- "Type": "Cluster Object",
615
+ "Cluster UUID": cl.uuid,
616
+ # "Type": "Cluster Object",
617
617
  # "Devices": f"{len(devs)}/{len(devs_online)}",
618
618
  # "Lvols": f"{len(lvols)}/{len(lv_online)}",
619
619
 
@@ -656,8 +656,7 @@ def list_all_info(cluster_id):
656
656
  online_devices += 1
657
657
 
658
658
  data.append({
659
- "UUID": node.uuid,
660
- "Type": "Storage",
659
+ "Storage node UUID": node.uuid,
661
660
  "Devices": f"{total_devices}/{online_devices}",
662
661
  "LVols": f"{len(lvs)}",
663
662
 
@@ -684,8 +683,7 @@ def list_all_info(cluster_id):
684
683
  rec = StatsObject()
685
684
 
686
685
  dev_data.append({
687
- "UUID": dev.uuid,
688
- "Type": "Storage Device",
686
+ "Device UUID": dev.uuid,
689
687
 
690
688
  "Size total": f"{utils.humanbytes(rec.size_total)}",
691
689
  "Size Used": f"{utils.humanbytes(rec.size_used)}",
@@ -704,7 +702,7 @@ def list_all_info(cluster_id):
704
702
  })
705
703
 
706
704
  out += "\n"
707
- out += utils.print_table(data, title="Storage nodes Stats")
705
+ out += utils.print_table(data, title="Storage Nodes Stats")
708
706
  out += "\n"
709
707
 
710
708
  out += "\n"
@@ -720,8 +718,7 @@ def list_all_info(cluster_id):
720
718
  rec = StatsObject()
721
719
 
722
720
  lvol_data.append({
723
- "UUID": lvol.uuid,
724
- "Type": "LVol",
721
+ "LVol UUID": lvol.uuid,
725
722
 
726
723
  "Size prov": f"{utils.humanbytes(rec.size_total)}",
727
724
  "Size Used": f"{utils.humanbytes(rec.size_used)}",
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=10.9.0
2
+ SIMPLY_BLOCK_VERSION=10.9.2
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
5
5
  DOCKER_USER=hamdysimplyblock
@@ -2319,18 +2319,23 @@ def resume_storage_node(node_id):
2319
2319
  else:
2320
2320
 
2321
2321
  sec_node = db_controller.get_storage_node_by_id(snode.secondary_node_id)
2322
- if sec_node and sec_node.status == StorageNode.STATUS_ONLINE:
2323
- sec_node_client = RPCClient(
2324
- sec_node.mgmt_ip, sec_node.rpc_port, sec_node.rpc_username, sec_node.rpc_password, timeout=5, retry=1)
2325
- for lvol in db_controller.get_lvols_by_node_id(snode.get_id()):
2326
- for iface in sec_node.data_nics:
2327
- if iface.ip4_address:
2328
- ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
2329
- lvol.nqn, iface.ip4_address, "4420", False, ana="inaccessible")
2330
- time.sleep(1)
2331
- sec_node_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
2332
- sec_node_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
2333
- time.sleep(1)
2322
+ if sec_node :
2323
+ if sec_node.status == StorageNode.STATUS_UNREACHABLE:
2324
+ logger.error("Secondary node is unreachable, cannot resume primary node")
2325
+ return False
2326
+
2327
+ elif sec_node.status == StorageNode.STATUS_ONLINE:
2328
+ sec_node_client = RPCClient(
2329
+ sec_node.mgmt_ip, sec_node.rpc_port, sec_node.rpc_username, sec_node.rpc_password, timeout=5, retry=1)
2330
+ for lvol in db_controller.get_lvols_by_node_id(snode.get_id()):
2331
+ for iface in sec_node.data_nics:
2332
+ if iface.ip4_address:
2333
+ ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
2334
+ lvol.nqn, iface.ip4_address, "4420", False, ana="inaccessible")
2335
+ time.sleep(1)
2336
+ sec_node_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
2337
+ sec_node_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
2338
+ time.sleep(1)
2334
2339
 
2335
2340
  for lvol in db_controller.get_lvols_by_node_id(snode.get_id()):
2336
2341
  for iface in snode.data_nics:
@@ -2823,11 +2828,13 @@ def recreate_lvstore(snode):
2823
2828
  if snode.is_secondary_node:
2824
2829
  return recreate_lvstore_on_sec(snode)
2825
2830
 
2826
- sec_node = None
2831
+ sec_node = db_controller.get_storage_node_by_id(snode.secondary_node_id)
2832
+ prim_node_suspend = False
2827
2833
  lvol_list = db_controller.get_lvols_by_node_id(snode.get_id())
2828
- if snode.secondary_node_id:
2829
- sec_node = db_controller.get_storage_node_by_id(snode.secondary_node_id)
2830
- if sec_node.status == StorageNode.STATUS_ONLINE:
2834
+ if sec_node:
2835
+ if sec_node.status == StorageNode.STATUS_UNREACHABLE:
2836
+ prim_node_suspend = True
2837
+ elif sec_node.status == StorageNode.STATUS_ONLINE:
2831
2838
  sec_rpc_client = RPCClient(sec_node.mgmt_ip, sec_node.rpc_port, sec_node.rpc_username, sec_node.rpc_password)
2832
2839
 
2833
2840
  for lvol in lvol_list:
@@ -2868,6 +2875,9 @@ def recreate_lvstore(snode):
2868
2875
 
2869
2876
  time.sleep(2)
2870
2877
 
2878
+ if not lvol_list:
2879
+ prim_node_suspend = False
2880
+
2871
2881
  ret, err = _create_bdev_stack(snode, [], primary_node=snode)
2872
2882
 
2873
2883
  if err:
@@ -2879,13 +2889,18 @@ def recreate_lvstore(snode):
2879
2889
  ret = rpc_client.bdev_wait_for_examine()
2880
2890
  ret = rpc_client.bdev_lvol_set_lvs_groupid(snode.lvstore, snode.jm_vuid)
2881
2891
 
2882
- if snode.jm_vuid:
2883
- ret = rpc_client.jc_explicit_synchronization(snode.jm_vuid)
2884
- logger.info(f"JM Sync res: {ret}")
2892
+ if not prim_node_suspend:
2893
+ if snode.jm_vuid:
2894
+ ret = rpc_client.jc_explicit_synchronization(snode.jm_vuid)
2895
+ logger.info(f"JM Sync res: {ret}")
2896
+
2897
+ lvol_ana_state = "optimized"
2898
+ if prim_node_suspend:
2899
+ lvol_ana_state = "inaccessible"
2885
2900
 
2886
2901
  for lvol in lvol_list:
2887
2902
  lvol_obj = db_controller.get_lvol_by_id(lvol.get_id())
2888
- is_created, error = lvol_controller.recreate_lvol_on_node(lvol_obj, snode)
2903
+ is_created, error = lvol_controller.recreate_lvol_on_node(lvol_obj, snode, ana_state=lvol_ana_state)
2889
2904
  if error:
2890
2905
  logger.error(f"Failed to recreate LVol: {lvol_obj.get_id()} on node: {snode.get_id()}")
2891
2906
  lvol_obj.status = LVol.STATUS_OFFLINE
@@ -2895,6 +2910,12 @@ def recreate_lvstore(snode):
2895
2910
  lvol_obj.health_check = True
2896
2911
  lvol_obj.write_to_db()
2897
2912
 
2913
+ if prim_node_suspend:
2914
+ set_node_status(snode.get_id(), StorageNode.STATUS_SUSPENDED)
2915
+ logger.info("Node restart interrupted because secondary node is unreachable")
2916
+ logger.info("Node status changed to suspended")
2917
+ return False
2918
+
2898
2919
  if sec_node and sec_node.status == StorageNode.STATUS_ONLINE:
2899
2920
  time.sleep(10)
2900
2921
  sec_rpc_client = RPCClient(sec_node.mgmt_ip, sec_node.rpc_port, sec_node.rpc_username, sec_node.rpc_password, timeout=3, retry=2)
File without changes
File without changes
File without changes
File without changes
File without changes