sbcli-dev 4.0.17__zip → 4.0.19__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.17 → sbcli_dev-4.0.19}/PKG-INFO +1 -1
  2. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/env_var +1 -1
  3. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/health_controller.py +1 -1
  5. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/tasks_controller.py +18 -0
  6. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/rpc_client.py +4 -19
  7. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/health_check_service.py +6 -1
  8. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/main_distr_event_collector.py +3 -2
  9. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/storage_node_monitor.py +6 -2
  10. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/storage_node_ops.py +9 -2
  11. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/README.md +0 -0
  12. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/pyproject.toml +0 -0
  13. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  14. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  15. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/entry_points.txt +0 -0
  16. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/requires.txt +0 -0
  17. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/sbcli_dev.egg-info/top_level.txt +0 -0
  18. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/setup.cfg +0 -0
  19. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/setup.py +0 -0
  20. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_cli/cli.py +0 -0
  21. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_cli/main.py +0 -0
  22. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/__init__.py +0 -0
  23. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/cluster_ops.py +0 -0
  24. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/cnode_client.py +0 -0
  25. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/compute_node_ops.py +0 -0
  26. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/constants.py +0 -0
  27. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/__init__.py +0 -0
  28. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  29. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/cluster_events.py +0 -0
  30. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/device_controller.py +0 -0
  31. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/device_events.py +0 -0
  32. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/events_controller.py +0 -0
  33. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/lvol_controller.py +0 -0
  34. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/lvol_events.py +0 -0
  35. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/mgmt_events.py +0 -0
  36. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/pool_controller.py +0 -0
  37. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/pool_events.py +0 -0
  38. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  39. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/snapshot_events.py +0 -0
  40. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/storage_events.py +0 -0
  41. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/controllers/tasks_events.py +0 -0
  42. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/distr_controller.py +0 -0
  43. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/kv_store.py +0 -0
  44. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/mgmt_node_ops.py +0 -0
  45. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/__init__.py +0 -0
  46. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/base_model.py +0 -0
  47. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/caching_node.py +0 -0
  48. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/cluster.py +0 -0
  49. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/compute_node.py +0 -0
  50. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/deployer.py +0 -0
  51. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/events.py +0 -0
  52. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/global_settings.py +0 -0
  53. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/iface.py +0 -0
  54. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/job_schedule.py +0 -0
  55. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/lvol_model.py +0 -0
  56. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/mgmt_node.py +0 -0
  57. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/nvme_device.py +0 -0
  58. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/pool.py +0 -0
  59. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/port_stat.py +0 -0
  60. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/snapshot.py +0 -0
  61. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/stats.py +0 -0
  62. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/models/storage_node.py +0 -0
  63. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/pci_utils.py +0 -0
  64. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/__init__.py +0 -0
  65. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  66. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  67. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  68. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/config_docker.sh +0 -0
  69. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboard.yml +0 -0
  70. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  71. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  72. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  73. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  74. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  75. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  76. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/datasource.yml +0 -0
  77. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/db_config_double.sh +0 -0
  78. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/db_config_single.sh +0 -0
  79. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  80. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  81. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  82. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/haproxy.cfg +0 -0
  83. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/install_deps.sh +0 -0
  84. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/objstore.yml +0 -0
  85. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/prometheus.yml +0 -0
  86. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/run_ssh.sh +0 -0
  87. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/set_db_config.sh +0 -0
  88. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  89. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/__init__.py +0 -0
  90. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  91. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/caching_node_monitor.py +0 -0
  92. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/cap_monitor.py +0 -0
  93. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  94. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/device_monitor.py +0 -0
  95. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/install_service.sh +0 -0
  96. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/log_agg_service.py +0 -0
  97. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/lvol_monitor.py +0 -0
  98. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  99. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  100. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/new_device_discovery.py +0 -0
  101. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/port_stat_collector.py +0 -0
  102. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/remove_service.sh +0 -0
  103. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/service_template.service +0 -0
  104. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  105. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  106. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  107. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  108. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  109. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  110. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/shell_utils.py +0 -0
  111. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/snode_client.py +0 -0
  112. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_core/utils.py +0 -0
  113. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/__init__.py +0 -0
  114. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/app.py +0 -0
  115. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/auth_middleware.py +0 -0
  116. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/__init__.py +0 -0
  117. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  118. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  119. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  120. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  121. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  122. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/snode_ops.py +0 -0
  123. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  124. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-4.0.17 → sbcli_dev-4.0.19}/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.17
3
+ Version: 4.0.19
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.17
2
+ SIMPLY_BLOCK_VERSION=4.0.19
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main-dev
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 4.0.17
3
+ Version: 4.0.19
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -446,7 +446,7 @@ def check_jm_device(device_id):
446
446
  try:
447
447
  rpc_client = RPCClient(
448
448
  snode.mgmt_ip, snode.rpc_port,
449
- snode.rpc_username, snode.rpc_password)
449
+ snode.rpc_username, snode.rpc_password, timeout=3, retry=2)
450
450
 
451
451
  ret = rpc_client.get_bdevs(jm_device.jm_bdev)
452
452
  if ret:
@@ -52,6 +52,11 @@ def _add_task(function_name, cluster_id, node_id, device_id,
52
52
  if task_id:
53
53
  logger.info(f"Task found, skip adding new task: {task_id}")
54
54
  return False
55
+ elif function_name == JobSchedule.FN_DEV_MIG:
56
+ task_id = get_device_mig_task(cluster_id, node_id, function_params['distr_name'])
57
+ if task_id:
58
+ logger.info(f"Task found, skip adding new task: {task_id}")
59
+ return False
55
60
 
56
61
  task_obj = JobSchedule()
57
62
  task_obj.uuid = str(uuid.uuid4())
@@ -72,6 +77,8 @@ def _add_task(function_name, cluster_id, node_id, device_id,
72
77
  def add_device_mig_task(device_id):
73
78
  device = db_controller.get_storage_devices(device_id)
74
79
  for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
80
+ if not node.lvols:
81
+ continue
75
82
  for bdev in node.lvstore_stack:
76
83
  if bdev['type'] == "bdev_distr":
77
84
  _add_task(JobSchedule.FN_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
@@ -190,6 +197,7 @@ def get_active_node_task(cluster_id, node_id):
190
197
  return task.uuid
191
198
  return False
192
199
 
200
+
193
201
  def get_new_device_mig_task(cluster_id, node_id, distr_name):
194
202
  tasks = db_controller.get_job_tasks(cluster_id)
195
203
  for task in tasks:
@@ -198,3 +206,13 @@ def get_new_device_mig_task(cluster_id, node_id, distr_name):
198
206
  and "distr_name" in task.function_params and task.function_params["distr_name"] == distr_name:
199
207
  return task.uuid
200
208
  return False
209
+
210
+
211
+ def get_device_mig_task(cluster_id, node_id, distr_name):
212
+ tasks = db_controller.get_job_tasks(cluster_id)
213
+ for task in tasks:
214
+ if task.function_name == JobSchedule.FN_DEV_MIG and task.node_id == node_id:
215
+ if task.status != JobSchedule.STATUS_DONE and task.canceled is False \
216
+ and "distr_name" in task.function_params and task.function_params["distr_name"] == distr_name:
217
+ return task.uuid
218
+ return False
@@ -482,27 +482,11 @@ class RPCClient:
482
482
  "trsvcid": str(port),
483
483
  "subnqn": nqn,
484
484
  "fabrics_connect_timeout_us": 100000,
485
- "fast_io_fail_timeout_sec": 1,
485
+ # "fast_io_fail_timeout_sec": 1,
486
486
  "num_io_queues": 16384,
487
- "ctrlr_loss_timeout_sec": 1,
487
+ # "ctrlr_loss_timeout_sec": 1,
488
488
  "multipath":"disable",
489
- "reconnect_delay_sec":1
490
- }
491
- return self._request("bdev_nvme_attach_controller", params)
492
-
493
- def bdev_nvme_attach_controller_tcp_jm(self, name, nqn, ip, port):
494
- params = {
495
- "name": name,
496
- "trtype": "tcp",
497
- "traddr": ip,
498
- "adrfam": "ipv4",
499
- "trsvcid": str(port),
500
- "subnqn": nqn,
501
- "fast_io_fail_timeout_sec": 1,
502
- "ctrlr_loss_timeout_sec": 3,
503
- "reconnect_delay_sec": 1,
504
- "fabrics_connect_timeout_us": 100000,
505
- "multipath":"disable"
489
+ # "reconnect_delay_sec":1
506
490
  }
507
491
  return self._request("bdev_nvme_attach_controller", params)
508
492
 
@@ -559,6 +543,7 @@ class RPCClient:
559
543
 
560
544
  def bdev_nvme_set_options(self):
561
545
  params = {
546
+ # "action_on_timeout": "abort",
562
547
  "bdev_retry_count": 0,
563
548
  "transport_retry_count": 0,
564
549
  "ctrlr_loss_timeout_sec": 2,
@@ -115,6 +115,8 @@ while True:
115
115
  connected_devices.append(remote_device.get_id())
116
116
  else:
117
117
  logger.info(f"Checking bdev: {remote_device.remote_bdev} ... not found")
118
+ ret = rpc_client.bdev_nvme_detach_controller(remote_device.remote_bdev)
119
+ time.sleep(1)
118
120
  ret = rpc_client.bdev_nvme_attach_controller_tcp(
119
121
  remote_device.remote_bdev, remote_device.nvmf_nqn, remote_device.nvmf_ip, remote_device.nvmf_port)
120
122
  if ret:
@@ -127,7 +129,7 @@ while True:
127
129
  node_remote_devices_check &= bool(ret)
128
130
 
129
131
  for node in db_controller.get_storage_nodes_by_cluster_id(snode.cluster_id):
130
- if node.status != StorageNode.STATUS_ONLINE:
132
+ if node.status != StorageNode.STATUS_ONLINE or node.get_id() == snode.get_id():
131
133
  continue
132
134
  for dev in node.nvme_devices:
133
135
  if dev.status == StorageNode.STATUS_ONLINE:
@@ -135,6 +137,8 @@ while True:
135
137
  logger.info(f"connecting to online device: {dev.get_id()}")
136
138
  name = f"remote_{dev.alceml_bdev}"
137
139
  bdev_name = f"{name}n1"
140
+ ret = rpc_client.bdev_nvme_detach_controller(name)
141
+ time.sleep(1)
138
142
  ret = rpc_client.bdev_nvme_attach_controller_tcp(
139
143
  name, dev.nvmf_nqn, dev.nvmf_ip,
140
144
  dev.nvmf_port)
@@ -200,6 +204,7 @@ while True:
200
204
  logger.info(f"Checking Distr map ... {is_passed}")
201
205
  else:
202
206
  logger.error("Failed to parse distr cluster map")
207
+
203
208
  lvstore_check &= is_passed
204
209
  else:
205
210
  logger.info(f"Checking distr bdev : {distr} ... not found")
@@ -48,8 +48,9 @@ def process_device_event(event):
48
48
  device_id = device.get_id()
49
49
  node = db_controller.get_storage_node_by_id(node_id)
50
50
  if device.node_id != node_id:
51
- logger.info(f"Setting storage id: {storage_id} unavailable")
52
- distr_controller.send_dev_status_event(device, NVMeDevice.STATUS_UNAVAILABLE, node)
51
+ if event.message != 'SPDK_BDEV_EVENT_REMOVE':
52
+ logger.info(f"Setting storage id: {storage_id} unavailable")
53
+ distr_controller.send_dev_status_event(device, NVMeDevice.STATUS_UNAVAILABLE, node)
53
54
  # if device.status == NVMeDevice.STATUS_ONLINE:
54
55
  # device_controller.device_set_io_error(device_id, True)
55
56
  # device_controller.device_set_unavailable(device_id)
@@ -154,7 +154,6 @@ while True:
154
154
  logger.info(f"Check 2: ping mgmt ip {snode.mgmt_ip} ... {ping_check}")
155
155
 
156
156
  # 2- check node API
157
-
158
157
  node_api_check = health_controller._check_node_api(snode.mgmt_ip)
159
158
  logger.info(f"Check: node API {snode.mgmt_ip}:5000 ... {node_api_check}")
160
159
 
@@ -162,7 +161,12 @@ while True:
162
161
  spdk_process = health_controller._check_spdk_process_up(snode.mgmt_ip)
163
162
  logger.info(f"Check: spdk process {snode.mgmt_ip}:5000 ... {spdk_process}")
164
163
 
165
- is_node_online = ping_check and node_api_check and spdk_process
164
+ # 4- check rpc
165
+ node_rpc_check = health_controller._check_node_rpc(
166
+ snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
167
+ logger.info(f"Check: node RPC {snode.mgmt_ip}:{snode.rpc_port} ... {node_rpc_check}")
168
+
169
+ is_node_online = ping_check and node_api_check and spdk_process and node_rpc_check
166
170
  if is_node_online:
167
171
  set_node_online(snode)
168
172
 
@@ -751,7 +751,7 @@ def _connect_to_remote_devs(this_node):
751
751
 
752
752
  rpc_client = RPCClient(
753
753
  this_node.mgmt_ip, this_node.rpc_port,
754
- this_node.rpc_username, this_node.rpc_password, timeout=10, retry=2)
754
+ this_node.rpc_username, this_node.rpc_password, timeout=5, retry=2)
755
755
 
756
756
  remote_devices = []
757
757
  # connect to remote devs
@@ -771,6 +771,8 @@ def _connect_to_remote_devs(this_node):
771
771
  if ret:
772
772
  logger.info(f"bdev found {bdev_name}")
773
773
  else:
774
+ ret = rpc_client.bdev_nvme_detach_controller(name)
775
+ time.sleep(1)
774
776
  ret = rpc_client.bdev_nvme_attach_controller_tcp(name, dev.nvmf_nqn, dev.nvmf_ip, dev.nvmf_port)
775
777
  if not ret:
776
778
  logger.error(f"Failed to connect to device: {dev.get_id()}")
@@ -786,7 +788,7 @@ def _connect_to_remote_jm_devs(this_node, jm_ids=[]):
786
788
 
787
789
  rpc_client = RPCClient(
788
790
  this_node.mgmt_ip, this_node.rpc_port,
789
- this_node.rpc_username, this_node.rpc_password, timeout=10, retry=2)
791
+ this_node.rpc_username, this_node.rpc_password, timeout=5, retry=2)
790
792
 
791
793
  node_bdevs = rpc_client.get_bdevs()
792
794
  if node_bdevs:
@@ -2029,6 +2031,11 @@ def resume_storage_node(node_id):
2029
2031
  if snode.jm_device and snode.jm_device.status == JMDevice.STATUS_UNAVAILABLE:
2030
2032
  device_controller.set_jm_device_state(snode.jm_device.get_id(), JMDevice.STATUS_ONLINE)
2031
2033
 
2034
+ logger.info("Connecting to remote devices")
2035
+ snode = db_controller.get_storage_node_by_id(node_id)
2036
+ snode.remote_devices = _connect_to_remote_devs(snode)
2037
+ snode.write_to_db(db_controller.kv_store)
2038
+
2032
2039
  rpc_client = RPCClient(
2033
2040
  snode.mgmt_ip, snode.rpc_port,
2034
2041
  snode.rpc_username, snode.rpc_password)
File without changes
File without changes
File without changes
File without changes