sbcli-dev 3.9.5__zip → 3.9.6__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.9.5 → sbcli_dev-3.9.6}/PKG-INFO +1 -1
  2. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/env_var +1 -1
  3. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/constants.py +1 -1
  5. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/distr_controller.py +5 -4
  6. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/health_check_service.py +8 -6
  7. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/main_distr_event_collector.py +32 -1
  8. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/storage_node_ops.py +3 -3
  9. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/README.md +0 -0
  10. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/pyproject.toml +0 -0
  11. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  12. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  13. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/sbcli_dev.egg-info/entry_points.txt +0 -0
  14. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/sbcli_dev.egg-info/requires.txt +0 -0
  15. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/sbcli_dev.egg-info/top_level.txt +0 -0
  16. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/setup.cfg +0 -0
  17. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/setup.py +0 -0
  18. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_cli/cli.py +0 -0
  19. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_cli/main.py +0 -0
  20. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/__init__.py +0 -0
  21. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/cluster_ops.py +0 -0
  22. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/cnode_client.py +0 -0
  23. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/compute_node_ops.py +0 -0
  24. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  26. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/device_controller.py +0 -0
  28. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/device_events.py +0 -0
  29. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/events_controller.py +0 -0
  30. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/health_controller.py +0 -0
  31. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/lvol_controller.py +0 -0
  32. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/lvol_events.py +0 -0
  33. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/mgmt_events.py +0 -0
  34. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/pool_controller.py +0 -0
  35. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/pool_events.py +0 -0
  36. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  37. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/snapshot_events.py +0 -0
  38. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/storage_events.py +0 -0
  39. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/tasks_controller.py +0 -0
  40. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/controllers/tasks_events.py +0 -0
  41. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/kv_store.py +0 -0
  42. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/mgmt_node_ops.py +0 -0
  43. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/__init__.py +0 -0
  44. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/base_model.py +0 -0
  45. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/caching_node.py +0 -0
  46. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/cluster.py +0 -0
  47. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/compute_node.py +0 -0
  48. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/deployer.py +0 -0
  49. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/events.py +0 -0
  50. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/global_settings.py +0 -0
  51. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/iface.py +0 -0
  52. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/job_schedule.py +0 -0
  53. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/lvol_model.py +0 -0
  54. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/mgmt_node.py +0 -0
  55. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/nvme_device.py +0 -0
  56. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/pool.py +0 -0
  57. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/port_stat.py +0 -0
  58. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/snapshot.py +0 -0
  59. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/stats.py +0 -0
  60. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/models/storage_node.py +0 -0
  61. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/pci_utils.py +0 -0
  62. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/rpc_client.py +0 -0
  63. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  79. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  80. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  81. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/haproxy.cfg +0 -0
  82. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/install_deps.sh +0 -0
  83. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/objstore.yml +0 -0
  84. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/prometheus.yml +0 -0
  85. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/run_ssh.sh +0 -0
  86. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/set_db_config.sh +0 -0
  87. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  88. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/__init__.py +0 -0
  89. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  90. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/install_service.sh +0 -0
  95. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/log_agg_service.py +0 -0
  96. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/lvol_monitor.py +0 -0
  97. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  98. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  99. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/new_device_discovery.py +0 -0
  100. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/port_stat_collector.py +0 -0
  101. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/remove_service.sh +0 -0
  102. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/service_template.service +0 -0
  103. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  104. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/storage_node_monitor.py +0 -0
  105. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  106. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  107. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  108. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  109. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  110. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/shell_utils.py +0 -0
  111. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/snode_client.py +0 -0
  112. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_core/utils.py +0 -0
  113. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/__init__.py +0 -0
  114. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/app.py +0 -0
  115. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/auth_middleware.py +0 -0
  116. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/__init__.py +0 -0
  117. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  118. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  119. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  120. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  121. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  122. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/snode_ops.py +0 -0
  123. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  124. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-3.9.5 → sbcli_dev-3.9.6}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.9.5
3
+ Version: 3.9.6
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.9.5
2
+ SIMPLY_BLOCK_VERSION=3.9.6
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.9.5
3
+ Version: 3.9.6
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -7,7 +7,7 @@ KVD_DB_TIMEOUT_MS = 10000
7
7
  SPK_DIR = '/home/ec2-user/spdk'
8
8
  RPC_HTTP_PROXY_PORT = 8080
9
9
  LOG_LEVEL = logging.INFO
10
- LOG_WEB_DEBUG = True
10
+ LOG_WEB_DEBUG = False
11
11
 
12
12
  INSTALL_DIR = os.path.dirname(os.path.realpath(__file__))
13
13
 
@@ -43,10 +43,10 @@ def send_dev_status_event(device, dev_status):
43
43
  logger.debug(node_status_event)
44
44
  snodes = db_controller.get_storage_nodes_by_cluster_id(device.cluster_id)
45
45
  for node in snodes:
46
- if node.status != node.STATUS_ONLINE:
46
+ if node.status != StorageNode.STATUS_ONLINE:
47
47
  continue
48
48
  logging.debug(f"Sending event updates, device: {storage_ID}, status: {dev_status}, node: {node.get_id()}")
49
- rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=3, retry=1)
49
+ rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=2)
50
50
  ret = rpc_client.distr_status_events_update(events)
51
51
  if not ret:
52
52
  logger.warning("Failed to send event update")
@@ -59,7 +59,7 @@ def disconnect_device(device):
59
59
  if node.status != node.STATUS_ONLINE:
60
60
  continue
61
61
  new_remote_devices = []
62
- rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
62
+ rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=2)
63
63
  for rem_dev in node.remote_devices:
64
64
  if rem_dev.get_id() == device.get_id():
65
65
  ctrl_name = rem_dev.remote_bdev[:-2]
@@ -98,7 +98,8 @@ def get_distr_cluster_map(snodes, target_node):
98
98
  break
99
99
  if not name:
100
100
  name = f"remote_{dev.alceml_bdev}n1"
101
- dev_status = NVMeDevice.STATUS_UNAVAILABLE
101
+ if dev_status == NVMeDevice.STATUS_ONLINE:
102
+ dev_status = NVMeDevice.STATUS_UNAVAILABLE
102
103
  logger.debug(f"Device: {dev.get_id()}, status: {dev_status}, bdev_name: {name}")
103
104
  dev_map[dev.cluster_device_order] = {
104
105
  "UUID": dev.get_id(),
@@ -4,6 +4,7 @@ from datetime import datetime
4
4
 
5
5
 
6
6
  from simplyblock_core.controllers import health_controller, storage_events, device_events
7
+ from simplyblock_core.models.nvme_device import NVMeDevice
7
8
  from simplyblock_core.models.storage_node import StorageNode
8
9
  from simplyblock_core.rpc_client import RPCClient
9
10
  from simplyblock_core import constants, kv_store, utils, distr_controller
@@ -107,12 +108,13 @@ while True:
107
108
  snode.rpc_username, snode.rpc_password,
108
109
  timeout=10, retry=1)
109
110
  for remote_device in snode.remote_devices:
110
- ret = rpc_client.get_bdevs(remote_device.remote_bdev)
111
- if ret:
112
- logger.info(f"Checking bdev: {remote_device.remote_bdev} ... ok")
113
- else:
114
- logger.info(f"Checking bdev: {remote_device.remote_bdev} ... not found")
115
- node_remote_devices_check &= bool(ret)
111
+ if db_controller.get_storage_device_by_id(remote_device.get_id()).status == NVMeDevice.STATUS_ONLINE:
112
+ ret = rpc_client.get_bdevs(remote_device.remote_bdev)
113
+ if ret:
114
+ logger.info(f"Checking bdev: {remote_device.remote_bdev} ... ok")
115
+ else:
116
+ logger.info(f"Checking bdev: {remote_device.remote_bdev} ... not found")
117
+ node_remote_devices_check &= bool(ret)
116
118
 
117
119
  if snode.jm_device:
118
120
  jm_device = snode.jm_device
@@ -1,4 +1,5 @@
1
1
  # coding=utf-8
2
+ import datetime
2
3
  import threading
3
4
  import time
4
5
 
@@ -9,6 +10,7 @@ from simplyblock_core.models.lvol_model import LVol
9
10
 
10
11
 
11
12
  from simplyblock_core.models.nvme_device import NVMeDevice
13
+ from simplyblock_core.models.storage_node import StorageNode
12
14
  from simplyblock_core.rpc_client import RPCClient
13
15
 
14
16
 
@@ -31,6 +33,17 @@ def process_device_event(event):
31
33
  if dev.status not in [NVMeDevice.STATUS_ONLINE, NVMeDevice.STATUS_READONLY]:
32
34
  logger.info(f"The storage device is not online, skipping. status: {dev.status}")
33
35
  event.status = 'skipped'
36
+ node_status_event = {
37
+ "timestamp": datetime.datetime.now().isoformat("T", "seconds") + 'Z',
38
+ "event_type": "device_status",
39
+ "storage_ID": storage_id,
40
+ "status": dev.status}
41
+ events = {"events": [node_status_event]}
42
+ snode = db_controller.get_storage_node_by_id(node_id)
43
+ rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
44
+ ret = rpc_client.distr_status_events_update(events)
45
+ if not ret:
46
+ logger.warning("Failed to send event update")
34
47
  return
35
48
 
36
49
  device = dev
@@ -56,9 +69,27 @@ def process_device_event(event):
56
69
  new_remote_devices.append(rem_dev)
57
70
  node.remote_devices = new_remote_devices
58
71
  node.write_to_db(db_controller.kv_store)
59
- device_controller.device_set_unavailable(device_id)
72
+ node_status_event = {
73
+ "timestamp": datetime.datetime.now().isoformat("T", "seconds") + 'Z',
74
+ "event_type": "device_status",
75
+ "storage_ID": storage_id,
76
+ "status": NVMeDevice.STATUS_UNAVAILABLE}
77
+ events = {"events": [node_status_event]}
78
+ ret = rpc_client.distr_status_events_update(events)
79
+ if not ret:
80
+ logger.warning("Failed to send event update")
81
+
82
+ dev_node = db_controller.get_storage_node_by_id(device.node_id)
83
+ if dev_node.status == StorageNode.STATUS_ONLINE:
84
+ device_controller.device_set_io_error(device_id, True)
85
+ device_controller.device_set_unavailable(device_id)
60
86
 
61
87
  else:
88
+ if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED]:
89
+ logger.info(f"Node is not online, skipping. status: {node.status}")
90
+ event.status = 'skipped'
91
+ return
92
+
62
93
  if event.message == 'SPDK_BDEV_EVENT_REMOVE':
63
94
  if device.node_id == node_id:
64
95
  logger.info(f"Removing storage id: {storage_id} from node: {node_id}")
@@ -752,7 +752,7 @@ def _connect_to_remote_devs(this_node):
752
752
 
753
753
  rpc_client = RPCClient(
754
754
  this_node.mgmt_ip, this_node.rpc_port,
755
- this_node.rpc_username, this_node.rpc_password, timeout=5, retry=2)
755
+ this_node.rpc_username, this_node.rpc_password, timeout=10, retry=2)
756
756
 
757
757
  remote_devices = []
758
758
  # connect to remote devs
@@ -786,7 +786,7 @@ def _connect_to_remote_jm_devs(this_node, jm_ids=[]):
786
786
 
787
787
  rpc_client = RPCClient(
788
788
  this_node.mgmt_ip, this_node.rpc_port,
789
- this_node.rpc_username, this_node.rpc_password, timeout=5, retry=2)
789
+ this_node.rpc_username, this_node.rpc_password, timeout=10, retry=2)
790
790
 
791
791
  node_bdevs = rpc_client.get_bdevs()
792
792
  node_bdev_names = [b['name'] for b in node_bdevs]
@@ -1640,7 +1640,7 @@ def restart_storage_node(
1640
1640
  logger.info(f"Device not found: {db_dev.get_id()}")
1641
1641
  db_dev.status = NVMeDevice.STATUS_REMOVED
1642
1642
  removed_devices.append(db_dev)
1643
- # distr_controller.send_dev_status_event(db_dev, db_dev.status)
1643
+ distr_controller.send_dev_status_event(db_dev, db_dev.status)
1644
1644
 
1645
1645
  if snode.jm_device and "serial_number" in snode.jm_device.device_data_dict:
1646
1646
  known_devices_sn.append(snode.jm_device.device_data_dict['serial_number'])
File without changes
File without changes
File without changes
File without changes