sbcli-dev 10.9.1__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.1 → sbcli_dev-10.9.2}/PKG-INFO +1 -1
  2. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/PKG-INFO +1 -1
  3. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/cluster_ops.py +1 -2
  4. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/env_var +1 -1
  5. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/storage_node_ops.py +41 -20
  6. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/README.md +0 -0
  7. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/pyproject.toml +0 -0
  8. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/requirements.txt +0 -0
  9. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  10. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  11. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/entry_points.txt +0 -0
  12. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/requires.txt +0 -0
  13. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/sbcli_dev.egg-info/top_level.txt +0 -0
  14. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/setup.cfg +0 -0
  15. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/setup.py +0 -0
  16. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_cli/__init__.py +0 -0
  17. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_cli/cli.py +0 -0
  18. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_cli/main.py +0 -0
  19. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/__init__.py +0 -0
  20. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/cnode_client.py +0 -0
  21. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/constants.py +0 -0
  22. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/__init__.py +0 -0
  23. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  24. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/cluster_events.py +0 -0
  25. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/device_controller.py +0 -0
  26. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/device_events.py +0 -0
  27. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/events_controller.py +0 -0
  28. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/health_controller.py +0 -0
  29. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/lvol_controller.py +0 -0
  30. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/lvol_events.py +0 -0
  31. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/mgmt_events.py +0 -0
  32. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/pool_controller.py +0 -0
  33. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/pool_events.py +0 -0
  34. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  35. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/snapshot_events.py +0 -0
  36. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/storage_events.py +0 -0
  37. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/tasks_controller.py +0 -0
  38. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/controllers/tasks_events.py +0 -0
  39. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/db_controller.py +0 -0
  40. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/distr_controller.py +0 -0
  41. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/mgmt_node_ops.py +0 -0
  42. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/__init__.py +0 -0
  43. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/base_model.py +0 -0
  44. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/caching_node.py +0 -0
  45. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/cluster.py +0 -0
  46. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/deployer.py +0 -0
  47. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/events.py +0 -0
  48. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/iface.py +0 -0
  49. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/job_schedule.py +0 -0
  50. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/lvol_model.py +0 -0
  51. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/mgmt_node.py +0 -0
  52. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/nvme_device.py +0 -0
  53. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/pool.py +0 -0
  54. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/port_stat.py +0 -0
  55. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/snapshot.py +0 -0
  56. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/stats.py +0 -0
  57. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/models/storage_node.py +0 -0
  58. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/pci_utils.py +0 -0
  59. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/rpc_client.py +0 -0
  60. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/__init__.py +0 -0
  61. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  62. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  63. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  64. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/config_docker.sh +0 -0
  65. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboard.yml +0 -0
  66. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  67. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  68. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  69. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  70. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  71. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  72. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/datasource.yml +0 -0
  73. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/db_config_double.sh +0 -0
  74. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/db_config_single.sh +0 -0
  75. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  76. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  77. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  78. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  79. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/foundation.yml +0 -0
  80. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/haproxy.cfg +0 -0
  81. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/install_deps.sh +0 -0
  82. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/objstore.yml +0 -0
  83. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  84. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/prometheus.yml +0 -0
  85. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/run_ssh.sh +0 -0
  86. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/set_db_config.sh +0 -0
  87. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  88. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/__init__.py +0 -0
  89. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  90. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/health_check_service.py +0 -0
  95. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/install_service.sh +0 -0
  96. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/log_agg_service.py +0 -0
  97. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/lvol_monitor.py +0 -0
  98. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  99. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  100. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  101. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/new_device_discovery.py +0 -0
  102. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/port_stat_collector.py +0 -0
  103. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/remove_service.sh +0 -0
  104. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/service_template.service +0 -0
  105. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  106. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/storage_node_monitor.py +0 -0
  107. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  108. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  109. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  110. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  111. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  112. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/snode_client.py +0 -0
  114. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/utils.py +0 -0
  115. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  116. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/README.md +0 -0
  117. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/__init__.py +0 -0
  118. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/app.py +0 -0
  119. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/auth_middleware.py +0 -0
  120. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/__init__.py +0 -0
  121. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  122. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  123. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  124. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  125. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  126. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/snode_ops.py +0 -0
  127. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  128. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  129. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  130. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  131. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_device.py +0 -0
  132. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  133. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  134. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  135. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  136. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  137. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/caching_node_app.py +0 -0
  138. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/caching_node_app_k8s.py +0 -0
  139. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/node_utils.py +0 -0
  140. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/node_webapp.py +0 -0
  141. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/requirements.txt +0 -0
  142. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/snode_app.py +0 -0
  143. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/snode_app_k8s.py +0 -0
  144. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/delete.py +0 -0
  145. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/deploy.py +0 -0
  146. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  147. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  148. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/is_up.py +0 -0
  149. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/list_deps.py +0 -0
  150. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/rpac.yaml +0 -0
  151. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/static/tst.py +0 -0
  152. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  153. {sbcli_dev-10.9.1 → sbcli_dev-10.9.2}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  154. {sbcli_dev-10.9.1 → 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.1
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.1
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
@@ -718,8 +718,7 @@ def list_all_info(cluster_id):
718
718
  rec = StatsObject()
719
719
 
720
720
  lvol_data.append({
721
- "UUID": lvol.uuid,
722
- "Type": "LVol",
721
+ "LVol UUID": lvol.uuid,
723
722
 
724
723
  "Size prov": f"{utils.humanbytes(rec.size_total)}",
725
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.1
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