sbcli-dev 4.0.54__zip → 4.0.55__zip

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.

Potentially problematic release.


This version of sbcli-dev might be problematic. Click here for more details.

Files changed (149) hide show
  1. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/PKG-INFO +1 -1
  2. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/env_var +1 -1
  3. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_cli/cli.py +6 -0
  5. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/rpc_client.py +7 -0
  6. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/snode_client.py +3 -0
  7. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/storage_node_ops.py +32 -0
  8. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/snode_ops.py +5 -0
  9. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/README.md +0 -0
  10. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/pyproject.toml +0 -0
  11. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  12. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  13. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/entry_points.txt +0 -0
  14. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/requires.txt +0 -0
  15. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/top_level.txt +0 -0
  16. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/setup.cfg +0 -0
  17. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/setup.py +0 -0
  18. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_cli/main.py +0 -0
  19. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/__init__.py +0 -0
  20. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/cluster_ops.py +0 -0
  21. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/cnode_client.py +0 -0
  22. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/compute_node_ops.py +0 -0
  23. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/constants.py +0 -0
  24. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  26. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/device_controller.py +0 -0
  28. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/device_events.py +0 -0
  29. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/events_controller.py +0 -0
  30. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/health_controller.py +0 -0
  31. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/lvol_controller.py +0 -0
  32. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/lvol_events.py +0 -0
  33. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/mgmt_events.py +0 -0
  34. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/pool_controller.py +0 -0
  35. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/pool_events.py +0 -0
  36. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  37. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/snapshot_events.py +0 -0
  38. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/storage_events.py +0 -0
  39. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/tasks_controller.py +0 -0
  40. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/controllers/tasks_events.py +0 -0
  41. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/distr_controller.py +0 -0
  42. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/kv_store.py +0 -0
  43. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/mgmt_node_ops.py +0 -0
  44. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/__init__.py +0 -0
  45. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/base_model.py +0 -0
  46. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/caching_node.py +0 -0
  47. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/cluster.py +0 -0
  48. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/compute_node.py +0 -0
  49. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/deployer.py +0 -0
  50. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/events.py +0 -0
  51. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/global_settings.py +0 -0
  52. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/iface.py +0 -0
  53. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/job_schedule.py +0 -0
  54. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/lvol_model.py +0 -0
  55. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/mgmt_node.py +0 -0
  56. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/nvme_device.py +0 -0
  57. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/pool.py +0 -0
  58. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/port_stat.py +0 -0
  59. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/snapshot.py +0 -0
  60. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/stats.py +0 -0
  61. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/models/storage_node.py +0 -0
  62. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/pci_utils.py +0 -0
  63. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  79. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  80. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  81. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/haproxy.cfg +0 -0
  82. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/install_deps.sh +0 -0
  83. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/objstore.yml +0 -0
  84. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/prometheus.yml +0 -0
  85. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/run_ssh.sh +0 -0
  86. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/set_db_config.sh +0 -0
  87. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  88. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/__init__.py +0 -0
  89. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  90. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/health_check_service.py +0 -0
  95. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/install_service.sh +0 -0
  96. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/log_agg_service.py +0 -0
  97. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/lvol_monitor.py +0 -0
  98. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  99. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  100. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  101. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/new_device_discovery.py +0 -0
  102. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/port_stat_collector.py +0 -0
  103. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/remove_service.sh +0 -0
  104. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/service_template.service +0 -0
  105. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  106. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/storage_node_monitor.py +0 -0
  107. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  108. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  109. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  110. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  111. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  112. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_core/utils.py +0 -0
  114. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/__init__.py +0 -0
  115. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/app.py +0 -0
  116. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/auth_middleware.py +0 -0
  117. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/__init__.py +0 -0
  118. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  119. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  120. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  121. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  122. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  123. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  124. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-4.0.54 → sbcli_dev-4.0.55}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 4.0.54
3
+ Version: 4.0.55
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=4.0.54
2
+ SIMPLY_BLOCK_VERSION=4.0.55
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 4.0.54
3
+ Version: 4.0.55
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -248,6 +248,9 @@ class CLIWrapper:
248
248
  'In case of HA SNode, make the current node as primary')
249
249
  sub_command.add_argument("id", help='id')
250
250
 
251
+ sub_command = self.add_sub_command(subparser, 'dump-lvstore','Dump lvstore data')
252
+ sub_command.add_argument("id", help='id')
253
+
251
254
  # check lvol
252
255
  #
253
256
  # ----------------- cluster -----------------
@@ -904,6 +907,9 @@ class CLIWrapper:
904
907
  elif sub_command == "make-primary":
905
908
  id = args.id
906
909
  ret = storage_ops.make_sec_new_primary(id)
910
+ elif sub_command == "dump-lvstore":
911
+ node_id = args.id
912
+ ret = storage_ops.dump_lvstore(node_id)
907
913
  else:
908
914
  self.parser.print_help()
909
915
 
@@ -830,3 +830,10 @@ class RPCClient:
830
830
  "level": level
831
831
  }
832
832
  return self._request("log_set_print_level", params)
833
+
834
+ def bdev_lvs_dump(self, lvs_name, file):
835
+ params = {
836
+ "lvs_name": lvs_name,
837
+ "file": file,
838
+ }
839
+ return self._request("bdev_lvs_dump", params)
@@ -130,3 +130,6 @@ class SNodeClient:
130
130
 
131
131
  def spdk_process_is_up(self):
132
132
  return self._request("GET", "spdk_process_is_up")
133
+
134
+ def get_file_content(self, file_name):
135
+ return self._request("GET", f"get_file_content/{file_name}")
@@ -1763,6 +1763,10 @@ def restart_storage_node(
1763
1763
  if not ret:
1764
1764
  return False, "Failed to recreate lvstore on node"
1765
1765
 
1766
+ logger.info("Dumping lvstore data")
1767
+ ret = dump_lvstore(node_id)
1768
+ print(ret)
1769
+
1766
1770
  logger.info("Starting migration tasks")
1767
1771
  for dev in snode.nvme_devices:
1768
1772
  if dev.status != NVMeDevice.STATUS_ONLINE:
@@ -1923,6 +1927,10 @@ def shutdown_storage_node(node_id, force=False):
1923
1927
  rpc_client = RPCClient(
1924
1928
  snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password, timeout=10, retry=1)
1925
1929
 
1930
+ logger.info("Dumping lvstore data")
1931
+ ret = dump_lvstore(node_id)
1932
+ print(ret)
1933
+
1926
1934
  logger.debug("Removing LVols")
1927
1935
  _remove_bdev_stack(snode.lvstore_stack, rpc_client, remove_distr_only=True)
1928
1936
 
@@ -2875,3 +2883,27 @@ def make_sec_new_primary(node_id):
2875
2883
  snode.primary_ip = snode.mgmt_ip
2876
2884
  snode.write_to_db(db_controller.kv_store)
2877
2885
  return True
2886
+
2887
+
2888
+ def dump_lvstore(node_id):
2889
+ db_controller = DBController()
2890
+
2891
+ snode = db_controller.get_storage_node_by_id(node_id)
2892
+ if not snode:
2893
+ logger.error(f"Can not find storage node: {node_id}")
2894
+ return False
2895
+
2896
+ rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
2897
+ logger.info(f"Dumping lvstore data on node: {snode.get_id()}")
2898
+ file_name = f"LVS_dump_{snode.hostname}_{snode.lvstore}_{str(datetime.datetime.now().isoformat())}.txt"
2899
+ file_path = f"/etc/simplyblock/{file_name}"
2900
+ ret = rpc_client.bdev_lvs_dump(snode.lvstore, file_path)
2901
+ if not ret:
2902
+ logger.error("faild to dump lvstore data")
2903
+ return False
2904
+
2905
+ logger.info(f"LVS dump file path: {file_name}")
2906
+ snode_api = SNodeClient(f"{snode.mgmt_ip}:5000")
2907
+ file_content, _ = snode_api.get_file_content(file_name)
2908
+
2909
+ return json.dumps(file_content, indent=2)
@@ -244,6 +244,11 @@ def get_cluster_id():
244
244
  out, _, _ = node_utils.run_command(f"cat {cluster_id_file}")
245
245
  return out
246
246
 
247
+ @bp.route('/get_file_content/<string:file_name>', methods=['GET'])
248
+ def get_file_content(file_name):
249
+ out, err, _ = node_utils.run_command(f"cat /etc/simplyblock/{file_name}")
250
+ return utils.get_response(out, err)
251
+
247
252
 
248
253
  def set_cluster_id(cluster_id):
249
254
  out, _, _ = node_utils.run_command(f"echo {cluster_id} > {cluster_id_file}")
File without changes
File without changes
File without changes
File without changes