sbcli-dev 3.8.45__zip → 3.8.47__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.
Files changed (149) hide show
  1. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/PKG-INFO +1 -1
  2. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/env_var +1 -1
  3. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/constants.py +0 -1
  5. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/health_controller.py +3 -3
  6. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/distr_controller.py +1 -1
  7. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/storage_node_monitor.py +4 -4
  8. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/storage_node_ops.py +100 -94
  9. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/README.md +0 -0
  10. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/pyproject.toml +0 -0
  11. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  12. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  13. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/entry_points.txt +0 -0
  14. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/requires.txt +0 -0
  15. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/sbcli_dev.egg-info/top_level.txt +0 -0
  16. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/setup.cfg +0 -0
  17. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/setup.py +0 -0
  18. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_cli/cli.py +0 -0
  19. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_cli/main.py +0 -0
  20. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/__init__.py +0 -0
  21. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/cluster_ops.py +0 -0
  22. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/cnode_client.py +0 -0
  23. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/compute_node_ops.py +0 -0
  24. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  26. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/device_controller.py +0 -0
  28. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/device_events.py +0 -0
  29. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/events_controller.py +0 -0
  30. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/lvol_controller.py +0 -0
  31. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/lvol_events.py +0 -0
  32. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/mgmt_events.py +0 -0
  33. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/pool_controller.py +0 -0
  34. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/pool_events.py +0 -0
  35. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  36. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/snapshot_events.py +0 -0
  37. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/storage_events.py +0 -0
  38. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/tasks_controller.py +0 -0
  39. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/controllers/tasks_events.py +0 -0
  40. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/kv_store.py +0 -0
  41. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/mgmt_node_ops.py +0 -0
  42. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/__init__.py +0 -0
  43. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/base_model.py +0 -0
  44. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/caching_node.py +0 -0
  45. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/cluster.py +0 -0
  46. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/compute_node.py +0 -0
  47. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/deployer.py +0 -0
  48. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/events.py +0 -0
  49. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/global_settings.py +0 -0
  50. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/iface.py +0 -0
  51. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/job_schedule.py +0 -0
  52. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/lvol_model.py +0 -0
  53. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/mgmt_node.py +0 -0
  54. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/nvme_device.py +0 -0
  55. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/pool.py +0 -0
  56. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/port_stat.py +0 -0
  57. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/snapshot.py +0 -0
  58. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/stats.py +0 -0
  59. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/models/storage_node.py +0 -0
  60. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/pci_utils.py +0 -0
  61. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/rpc_client.py +0 -0
  62. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/__init__.py +0 -0
  63. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  64. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  65. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  66. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/config_docker.sh +0 -0
  67. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboard.yml +0 -0
  68. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  69. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  70. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  71. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  72. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  73. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  74. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/datasource.yml +0 -0
  75. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/db_config_double.sh +0 -0
  76. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/db_config_single.sh +0 -0
  77. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  78. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  79. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  80. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/haproxy.cfg +0 -0
  81. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/install_deps.sh +0 -0
  82. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/objstore.yml +0 -0
  83. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/prometheus.yml +0 -0
  84. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/run_ssh.sh +0 -0
  85. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/set_db_config.sh +0 -0
  86. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  87. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/__init__.py +0 -0
  88. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  89. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/caching_node_monitor.py +0 -0
  90. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/cap_monitor.py +0 -0
  91. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  92. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/device_monitor.py +0 -0
  93. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/distr_event_collector.py +0 -0
  94. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/health_check_service.py +0 -0
  95. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/install_service.sh +0 -0
  96. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/log_agg_service.py +0 -0
  97. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/lvol_monitor.py +0 -0
  98. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  99. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  100. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  101. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/new_device_discovery.py +0 -0
  102. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/port_stat_collector.py +0 -0
  103. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/remove_service.sh +0 -0
  104. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/service_template.service +0 -0
  105. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  106. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  107. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  108. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  109. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  110. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/shell_utils.py +0 -0
  111. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/snode_client.py +0 -0
  112. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_core/utils.py +0 -0
  113. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/__init__.py +0 -0
  114. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/app.py +0 -0
  115. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/auth_middleware.py +0 -0
  116. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/__init__.py +0 -0
  117. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  118. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  119. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  120. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  121. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  122. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/snode_ops.py +0 -0
  123. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  124. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-3.8.45 → sbcli_dev-3.8.47}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.8.45
3
+ Version: 3.8.47
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=3.8.45
2
+ SIMPLY_BLOCK_VERSION=3.8.47
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: 3.8.45
3
+ Version: 3.8.47
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -58,7 +58,6 @@ TASK_EXEC_INTERVAL_SEC = 30
58
58
  TASK_EXEC_RETRY_COUNT = 8
59
59
 
60
60
  SIMPLY_BLOCK_SPDK_CORE_IMAGE = "simplyblock/spdk-core:latest"
61
- SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64 = "simplyblock/spdk-core:latest-arm64"
62
61
  SIMPLY_BLOCK_SPDK_ULTRA_IMAGE = "simplyblock/spdk:main-latest"
63
62
  SIMPLY_BLOCK_SPDK_ULTRA_IMAGE_JM = "simplyblock/spdk:feature-journal-ha-latest"
64
63
 
@@ -66,11 +66,11 @@ def _check_node_docker_api(ip):
66
66
  # return False
67
67
 
68
68
 
69
- def _check_node_rpc(rpc_ip, rpc_port, rpc_username, rpc_password):
69
+ def _check_node_rpc(rpc_ip, rpc_port, rpc_username, rpc_password, timeout=60, retry=3):
70
70
  try:
71
71
  rpc_client = RPCClient(
72
72
  rpc_ip, rpc_port, rpc_username, rpc_password,
73
- timeout=60, retry=3)
73
+ timeout=timeout, retry=retry)
74
74
  ret = rpc_client.get_version()
75
75
  if ret:
76
76
  logger.debug(f"SPDK version: {ret['version']}")
@@ -319,7 +319,7 @@ def check_remote_device(device_id):
319
319
  if node.get_id() == snode.get_id():
320
320
  continue
321
321
  logger.info(f"Connecting to node: {node.get_id()}")
322
- rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
322
+ rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
323
323
  name = f"remote_{device.alceml_bdev}n1"
324
324
  ret = rpc_client.get_bdevs(name)
325
325
  if ret:
@@ -60,7 +60,7 @@ def disconnect_device(device):
60
60
  if node.status != node.STATUS_ONLINE:
61
61
  continue
62
62
  new_remote_devices = []
63
- rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password)
63
+ rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
64
64
  for rem_dev in node.remote_devices:
65
65
  if rem_dev.get_id() == device.get_id():
66
66
  ctrl_name = rem_dev.remote_bdev[:-2]
@@ -152,11 +152,11 @@ while True:
152
152
  spdk_process = health_controller._check_spdk_process_up(snode.mgmt_ip)
153
153
  logger.info(f"Check: spdk process {snode.mgmt_ip}:5000 ... {spdk_process}")
154
154
 
155
- node_rpc_check = True
155
+ # node_rpc_check = True
156
156
  # 3- check node RPC
157
- # node_rpc_check = health_controller._check_node_rpc(
158
- # snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
159
- # logger.info(f"Check: node RPC {snode.mgmt_ip}:{snode.rpc_port} ... {node_rpc_check}")
157
+ node_rpc_check = health_controller._check_node_rpc(
158
+ snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password, timeout=5, retry=1)
159
+ logger.info(f"Check: node RPC {snode.mgmt_ip}:{snode.rpc_port} ... {node_rpc_check}")
160
160
 
161
161
  # 4- docker API
162
162
  node_docker_check = health_controller._check_node_docker_api(snode.mgmt_ip)
@@ -286,40 +286,42 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
286
286
  logger.error(f"Failed to create {jm_bdev}")
287
287
  return False
288
288
 
289
-
290
289
  alceml_id = str(uuid.uuid4())
291
- # add pass through
292
- pt_name = f"{jm_bdev}_PT"
293
- ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
294
- if not ret:
295
- logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
296
- return False
297
-
298
- subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
299
- logger.info("creating subsystem %s", subsystem_nqn)
300
- ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
301
- IP = None
302
- for iface in snode.data_nics:
303
- if iface.ip4_address:
304
- tr_type = iface.get_transport_type()
305
- ret = rpc_client.transport_list()
306
- found = False
307
- if ret:
308
- for ty in ret:
309
- if ty['trtype'] == tr_type:
310
- found = True
311
- if found is False:
312
- ret = rpc_client.transport_create(tr_type)
313
- logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
314
- ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
315
- IP = iface.ip4_address
316
- break
317
- logger.info(f"add {pt_name} to subsystem")
318
- ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
319
- if not ret:
320
- logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
321
- return False
290
+ pt_name = ""
291
+ subsystem_nqn = ""
292
+ IP = ""
293
+ if snode.enable_ha_jm:
294
+ # add pass through
295
+ pt_name = f"{jm_bdev}_PT"
296
+ ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
297
+ if not ret:
298
+ logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
299
+ return False
322
300
 
301
+ subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
302
+ logger.info("creating subsystem %s", subsystem_nqn)
303
+ ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
304
+ IP = None
305
+ for iface in snode.data_nics:
306
+ if iface.ip4_address:
307
+ tr_type = iface.get_transport_type()
308
+ ret = rpc_client.transport_list()
309
+ found = False
310
+ if ret:
311
+ for ty in ret:
312
+ if ty['trtype'] == tr_type:
313
+ found = True
314
+ if found is False:
315
+ ret = rpc_client.transport_create(tr_type)
316
+ logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
317
+ ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
318
+ IP = iface.ip4_address
319
+ break
320
+ logger.info(f"add {pt_name} to subsystem")
321
+ ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
322
+ if not ret:
323
+ logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
324
+ return False
323
325
 
324
326
  ret = rpc_client.get_bdevs(raid_bdev)
325
327
 
@@ -380,38 +382,41 @@ def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
380
382
  logger.error(f"Failed to create {jm_bdev}")
381
383
  return False
382
384
 
383
- # add pass through
384
- pt_name = f"{jm_bdev}_PT"
385
- ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
386
- if not ret:
387
- logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
388
- return False
389
-
390
- subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
391
- logger.info("creating subsystem %s", subsystem_nqn)
392
- ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
393
- IP = None
394
- for iface in snode.data_nics:
395
- if iface.ip4_address:
396
- tr_type = iface.get_transport_type()
397
- ret = rpc_client.transport_list()
398
- found = False
399
- if ret:
400
- for ty in ret:
401
- if ty['trtype'] == tr_type:
402
- found = True
403
- if found is False:
404
- ret = rpc_client.transport_create(tr_type)
405
- logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
406
- ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
407
- IP = iface.ip4_address
408
- break
409
- logger.info(f"add {pt_name} to subsystem")
410
- ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
411
- if not ret:
412
- logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
413
- return False
385
+ pt_name = ""
386
+ subsystem_nqn = ""
387
+ IP = ""
388
+ if snode.enable_ha_jm:
389
+ # add pass through
390
+ pt_name = f"{jm_bdev}_PT"
391
+ ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
392
+ if not ret:
393
+ logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
394
+ return False
414
395
 
396
+ subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
397
+ logger.info("creating subsystem %s", subsystem_nqn)
398
+ ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
399
+ IP = None
400
+ for iface in snode.data_nics:
401
+ if iface.ip4_address:
402
+ tr_type = iface.get_transport_type()
403
+ ret = rpc_client.transport_list()
404
+ found = False
405
+ if ret:
406
+ for ty in ret:
407
+ if ty['trtype'] == tr_type:
408
+ found = True
409
+ if found is False:
410
+ ret = rpc_client.transport_create(tr_type)
411
+ logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
412
+ ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
413
+ IP = iface.ip4_address
414
+ break
415
+ logger.info(f"add {pt_name} to subsystem")
416
+ ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
417
+ if not ret:
418
+ logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
419
+ return False
415
420
 
416
421
  return JMDevice({
417
422
  'uuid': alceml_id,
@@ -701,37 +706,38 @@ def _prepare_cluster_devices_on_restart(snode):
701
706
  logger.error(f"Failed to create {jm_bdev}")
702
707
  return False
703
708
 
704
- # add pass through
705
- pt_name = f"{jm_bdev}_PT"
706
- ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
707
- if not ret:
708
- logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
709
- return False
709
+ if snode.enable_ha_jm:
710
+ # add pass through
711
+ pt_name = f"{jm_bdev}_PT"
712
+ ret = rpc_client.bdev_PT_NoExcl_create(pt_name, jm_bdev)
713
+ if not ret:
714
+ logger.error(f"Failed to create pt noexcl bdev: {pt_name}")
715
+ return False
710
716
 
711
- subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
712
- logger.info("creating subsystem %s", subsystem_nqn)
713
- ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
714
- IP = None
715
- for iface in snode.data_nics:
716
- if iface.ip4_address:
717
- tr_type = iface.get_transport_type()
718
- ret = rpc_client.transport_list()
719
- found = False
720
- if ret:
721
- for ty in ret:
722
- if ty['trtype'] == tr_type:
723
- found = True
724
- if found is False:
725
- ret = rpc_client.transport_create(tr_type)
726
- logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
727
- ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
728
- IP = iface.ip4_address
729
- break
730
- logger.info(f"add {pt_name} to subsystem")
731
- ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
732
- if not ret:
733
- logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
734
- return False
717
+ subsystem_nqn = snode.subsystem + ":dev:" + jm_bdev
718
+ logger.info("creating subsystem %s", subsystem_nqn)
719
+ ret = rpc_client.subsystem_create(subsystem_nqn, 'sbcli-cn', jm_bdev)
720
+ IP = None
721
+ for iface in snode.data_nics:
722
+ if iface.ip4_address:
723
+ tr_type = iface.get_transport_type()
724
+ ret = rpc_client.transport_list()
725
+ found = False
726
+ if ret:
727
+ for ty in ret:
728
+ if ty['trtype'] == tr_type:
729
+ found = True
730
+ if found is False:
731
+ ret = rpc_client.transport_create(tr_type)
732
+ logger.info("adding listener for %s on IP %s" % (subsystem_nqn, iface.ip4_address))
733
+ ret = rpc_client.listeners_create(subsystem_nqn, tr_type, iface.ip4_address, "4420")
734
+ IP = iface.ip4_address
735
+ break
736
+ logger.info(f"add {pt_name} to subsystem")
737
+ ret = rpc_client.nvmf_subsystem_add_ns(subsystem_nqn, pt_name)
738
+ if not ret:
739
+ logger.error(f"Failed to add: {pt_name} to the subsystem: {subsystem_nqn}")
740
+ return False
735
741
 
736
742
  return True
737
743
 
@@ -1847,7 +1853,7 @@ def shutdown_storage_node(node_id, force=False):
1847
1853
  storage_events.snode_status_change(snode, snode.status, old_status)
1848
1854
 
1849
1855
  rpc_client = RPCClient(
1850
- snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
1856
+ snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password, timeout=10, retry=1)
1851
1857
 
1852
1858
  logger.debug("Removing LVols")
1853
1859
  _remove_bdev_stack(snode.lvstore_stack, rpc_client, remove_distr_only=True)
File without changes
File without changes
File without changes
File without changes