sbcli-dev 4.0.53__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.53 → sbcli_dev-4.0.55}/PKG-INFO +1 -1
  2. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/env_var +1 -1
  3. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_cli/cli.py +6 -0
  5. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/caching_node_controller.py +3 -3
  6. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/rpc_client.py +13 -0
  7. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/snode_client.py +3 -0
  8. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/storage_node_ops.py +32 -0
  9. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/snode_ops.py +5 -0
  10. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/README.md +0 -0
  11. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/pyproject.toml +0 -0
  12. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  13. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  14. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/entry_points.txt +0 -0
  15. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/requires.txt +0 -0
  16. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/sbcli_dev.egg-info/top_level.txt +0 -0
  17. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/setup.cfg +0 -0
  18. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/setup.py +0 -0
  19. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_cli/main.py +0 -0
  20. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/__init__.py +0 -0
  21. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/cluster_ops.py +0 -0
  22. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/cnode_client.py +0 -0
  23. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/compute_node_ops.py +0 -0
  24. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/constants.py +0 -0
  25. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/__init__.py +0 -0
  26. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/device_controller.py +0 -0
  28. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/device_events.py +0 -0
  29. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/events_controller.py +0 -0
  30. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/health_controller.py +0 -0
  31. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/lvol_controller.py +0 -0
  32. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/lvol_events.py +0 -0
  33. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/mgmt_events.py +0 -0
  34. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/pool_controller.py +0 -0
  35. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/pool_events.py +0 -0
  36. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  37. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/snapshot_events.py +0 -0
  38. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/storage_events.py +0 -0
  39. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/tasks_controller.py +0 -0
  40. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/controllers/tasks_events.py +0 -0
  41. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/distr_controller.py +0 -0
  42. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/kv_store.py +0 -0
  43. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/mgmt_node_ops.py +0 -0
  44. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/__init__.py +0 -0
  45. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/base_model.py +0 -0
  46. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/caching_node.py +0 -0
  47. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/cluster.py +0 -0
  48. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/compute_node.py +0 -0
  49. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/deployer.py +0 -0
  50. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/events.py +0 -0
  51. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/global_settings.py +0 -0
  52. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/iface.py +0 -0
  53. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/job_schedule.py +0 -0
  54. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/lvol_model.py +0 -0
  55. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/mgmt_node.py +0 -0
  56. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/nvme_device.py +0 -0
  57. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/pool.py +0 -0
  58. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/port_stat.py +0 -0
  59. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/snapshot.py +0 -0
  60. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/stats.py +0 -0
  61. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/models/storage_node.py +0 -0
  62. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/pci_utils.py +0 -0
  63. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  79. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  80. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  81. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/haproxy.cfg +0 -0
  82. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/install_deps.sh +0 -0
  83. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/objstore.yml +0 -0
  84. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/prometheus.yml +0 -0
  85. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/run_ssh.sh +0 -0
  86. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/set_db_config.sh +0 -0
  87. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  88. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/__init__.py +0 -0
  89. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  90. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/health_check_service.py +0 -0
  95. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/install_service.sh +0 -0
  96. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/log_agg_service.py +0 -0
  97. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/lvol_monitor.py +0 -0
  98. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  99. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  100. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  101. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/new_device_discovery.py +0 -0
  102. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/port_stat_collector.py +0 -0
  103. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/remove_service.sh +0 -0
  104. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/service_template.service +0 -0
  105. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  106. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/storage_node_monitor.py +0 -0
  107. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  108. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  109. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  110. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  111. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  112. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_core/utils.py +0 -0
  114. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/__init__.py +0 -0
  115. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/app.py +0 -0
  116. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/auth_middleware.py +0 -0
  117. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/__init__.py +0 -0
  118. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  119. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  120. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  121. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  122. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  123. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  124. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-4.0.53 → sbcli_dev-4.0.55}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-4.0.53 → 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.53
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.53
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.53
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
 
@@ -399,7 +399,7 @@ def connect(caching_node_id, lvol_id):
399
399
  if lvol.ha_type == 'single':
400
400
  snode = db_controller.get_storage_node_by_id(lvol.node_id)
401
401
  for nic in snode.data_nics:
402
- ret = rpc_client.bdev_nvme_attach_controller_tcp(rem_name, lvol.nqn, nic.ip4_address, "4420")
402
+ ret = rpc_client.bdev_nvme_attach_controller_tcp_caching(rem_name, lvol.nqn, nic.ip4_address, "4420")
403
403
  logger.debug(ret)
404
404
  if not ret:
405
405
  logger.warning("Failed to connect to LVol")
@@ -409,7 +409,7 @@ def connect(caching_node_id, lvol_id):
409
409
  for nodes_id in lvol.nodes:
410
410
  snode = db_controller.get_storage_node_by_id(nodes_id)
411
411
  for nic in snode.data_nics:
412
- ret = rpc_client.bdev_nvme_attach_controller_tcp(rem_name, lvol.nqn, nic.ip4_address, "4420")
412
+ ret = rpc_client.bdev_nvme_attach_controller_tcp_caching(rem_name, lvol.nqn, nic.ip4_address, "4420")
413
413
  logger.debug(ret)
414
414
  # if not ret:
415
415
  # logger.error("Failed to connect to LVol")
@@ -432,7 +432,7 @@ def connect(caching_node_id, lvol_id):
432
432
  ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', lvol.get_id())
433
433
  ret = rpc_client.transport_list("TCP")
434
434
  if not ret:
435
- ret = rpc_client.transport_create("TCP")
435
+ ret = rpc_client.transport_create_caching("TCP")
436
436
  ret = rpc_client.listeners_create(subsystem_nqn, "TCP", '127.0.0.1', "4420")
437
437
  ret = rpc_client.nvmf_subsystem_listener_set_ana_state(subsystem_nqn, '127.0.0.1', "4420", is_optimized=True)
438
438
 
@@ -152,6 +152,12 @@ class RPCClient:
152
152
  }
153
153
  return self._request("nvmf_create_transport", params)
154
154
 
155
+ def transport_create_caching(self, trtype):
156
+ params = {
157
+ "trtype": trtype,
158
+ }
159
+ return self._request("nvmf_create_transport", params)
160
+
155
161
  def listeners_list(self, nqn):
156
162
  params = {"nqn": nqn}
157
163
  return self._request("nvmf_subsystem_get_listeners", params)
@@ -824,3 +830,10 @@ class RPCClient:
824
830
  "level": level
825
831
  }
826
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