sbcli-hmdi 0.0.18__tar.gz → 0.0.20__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/PKG-INFO +1 -1
  2. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/sbcli_hmdi.egg-info/PKG-INFO +1 -1
  3. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/health_controller.py +6 -1
  4. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/tasks_controller.py +1 -1
  5. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/distr_controller.py +2 -2
  6. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/env_var +1 -1
  7. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/health_check_service.py +16 -16
  8. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/main_distr_event_collector.py +12 -3
  9. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/storage_node_monitor.py +2 -1
  10. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/storage_node_ops.py +17 -14
  11. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/README.md +0 -0
  12. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/pyproject.toml +0 -0
  13. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/requirements.txt +0 -0
  14. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/sbcli_hmdi.egg-info/SOURCES.txt +0 -0
  15. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/sbcli_hmdi.egg-info/dependency_links.txt +0 -0
  16. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/sbcli_hmdi.egg-info/entry_points.txt +0 -0
  17. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/sbcli_hmdi.egg-info/requires.txt +0 -0
  18. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/sbcli_hmdi.egg-info/top_level.txt +0 -0
  19. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/setup.cfg +0 -0
  20. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/setup.py +0 -0
  21. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_cli/__init__.py +0 -0
  22. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_cli/cli.py +0 -0
  23. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_cli/main.py +0 -0
  24. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/__init__.py +0 -0
  25. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/cluster_ops.py +0 -0
  26. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/cnode_client.py +0 -0
  27. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/constants.py +0 -0
  28. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/__init__.py +0 -0
  29. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  30. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/cluster_events.py +0 -0
  31. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/device_controller.py +0 -0
  32. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/device_events.py +0 -0
  33. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/events_controller.py +0 -0
  34. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/lvol_controller.py +0 -0
  35. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/lvol_events.py +0 -0
  36. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/mgmt_events.py +0 -0
  37. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/pool_controller.py +0 -0
  38. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/pool_events.py +0 -0
  39. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  40. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/snapshot_events.py +0 -0
  41. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/storage_events.py +0 -0
  42. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/controllers/tasks_events.py +0 -0
  43. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/db_controller.py +0 -0
  44. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/mgmt_node_ops.py +0 -0
  45. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/__init__.py +0 -0
  46. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/base_model.py +0 -0
  47. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/caching_node.py +0 -0
  48. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/cluster.py +0 -0
  49. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/deployer.py +0 -0
  50. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/events.py +0 -0
  51. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/iface.py +0 -0
  52. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/job_schedule.py +0 -0
  53. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/lvol_model.py +0 -0
  54. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/mgmt_node.py +0 -0
  55. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/nvme_device.py +0 -0
  56. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/pool.py +0 -0
  57. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/port_stat.py +0 -0
  58. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/snapshot.py +0 -0
  59. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/stats.py +0 -0
  60. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/models/storage_node.py +0 -0
  61. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/pci_utils.py +0 -0
  62. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/rpc_client.py +0 -0
  63. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  79. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  80. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  81. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  82. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/foundation.yml +0 -0
  83. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/haproxy.cfg +0 -0
  84. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/install_deps.sh +0 -0
  85. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/objstore.yml +0 -0
  86. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  87. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/prometheus.yml +0 -0
  88. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/run_ssh.sh +0 -0
  89. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/set_db_config.sh +0 -0
  90. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  91. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/__init__.py +0 -0
  92. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  93. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/caching_node_monitor.py +0 -0
  94. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/cap_monitor.py +0 -0
  95. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  96. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/device_monitor.py +0 -0
  97. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/install_service.sh +0 -0
  98. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/log_agg_service.py +0 -0
  99. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/lvol_monitor.py +0 -0
  100. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  101. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  102. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/new_device_discovery.py +0 -0
  103. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/port_stat_collector.py +0 -0
  104. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/remove_service.sh +0 -0
  105. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/service_template.service +0 -0
  106. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  107. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  108. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  109. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  110. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  111. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  112. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/snode_client.py +0 -0
  114. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/utils.py +0 -0
  115. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  116. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/README.md +0 -0
  117. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/__init__.py +0 -0
  118. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/app.py +0 -0
  119. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/auth_middleware.py +0 -0
  120. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/__init__.py +0 -0
  121. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  122. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  123. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  124. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  125. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  126. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/snode_ops.py +0 -0
  127. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  128. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  129. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  130. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  131. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_device.py +0 -0
  132. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  133. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  134. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  135. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  136. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  137. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/caching_node_app.py +0 -0
  138. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/caching_node_app_k8s.py +0 -0
  139. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/node_utils.py +0 -0
  140. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/node_webapp.py +0 -0
  141. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/requirements.txt +0 -0
  142. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/snode_app.py +0 -0
  143. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/snode_app_k8s.py +0 -0
  144. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/delete.py +0 -0
  145. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/deploy.py +0 -0
  146. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  147. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  148. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/is_up.py +0 -0
  149. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/list_deps.py +0 -0
  150. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/rpac.yaml +0 -0
  151. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/static/tst.py +0 -0
  152. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  153. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  154. {sbcli_hmdi-0.0.18 → sbcli_hmdi-0.0.20}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-hmdi
3
- Version: 0.0.18
3
+ Version: 0.0.20
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-hmdi
3
- Version: 0.0.18
3
+ Version: 0.0.20
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,6 +1,6 @@
1
1
  # coding=utf-8
2
2
 
3
- from simplyblock_core import utils, distr_controller
3
+ from simplyblock_core import utils, distr_controller, storage_node_ops
4
4
  from simplyblock_core.db_controller import DBController
5
5
  from simplyblock_core.models.cluster import Cluster
6
6
  from simplyblock_core.models.nvme_device import NVMeDevice, JMDevice
@@ -151,6 +151,11 @@ def _check_node_lvstore(lvstore_stack, node, auto_fix=False):
151
151
  if result['Kind'] == "Device":
152
152
  if result['Reported Status']:
153
153
  dev = db_controller.get_storage_device_by_id(result['UUID'])
154
+ if dev.status == NVMeDevice.STATUS_ONLINE:
155
+ node = db_controller.get_storage_node_by_id(node.get_id())
156
+ remote_devices = storage_node_ops._connect_to_remote_devs(node)
157
+ node.remote_devices = remote_devices
158
+ node.write_to_db()
154
159
  distr_controller.send_dev_status_event(dev, dev.status, node)
155
160
  if result['Kind'] == "Node":
156
161
  n = db_controller.get_storage_node_by_id(result['UUID'])
@@ -32,7 +32,7 @@ def _validate_new_task_node_restart(cluster_id, node_id):
32
32
  tasks = db_controller.get_job_tasks(cluster_id)
33
33
  for task in tasks:
34
34
  if task.function_name == JobSchedule.FN_NODE_RESTART and task.node_id == node_id:
35
- if task.status != JobSchedule.STATUS_DONE:
35
+ if task.status != JobSchedule.STATUS_DONE and task.canceled is False:
36
36
  return task.get_id()
37
37
  return False
38
38
 
@@ -32,7 +32,7 @@ def send_node_status_event(node, node_status, target_node=None):
32
32
  if node.status not in [StorageNode.STATUS_ONLINE, StorageNode.STATUS_SUSPENDED]:
33
33
  continue
34
34
  logger.info(f"Sending to: {node.get_id()}")
35
- rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=3, retry=2)
35
+ rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=3, retry=1)
36
36
  ret = rpc_client.distr_status_events_update(events)
37
37
 
38
38
 
@@ -67,7 +67,7 @@ def send_dev_status_event(device, status, target_node=None):
67
67
  "storage_ID": storage_ID,
68
68
  "status": dev_status}]}
69
69
  logging.debug(f"Sending event updates, device: {storage_ID}, status: {dev_status}, node: {node.get_id()}")
70
- rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=3, retry=2)
70
+ rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=1, retry=1)
71
71
  ret = rpc_client.distr_status_events_update(events)
72
72
  if not ret:
73
73
  logger.warning("Failed to send event update")
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-hmdi
2
- SIMPLY_BLOCK_VERSION=0.0.18
2
+ SIMPLY_BLOCK_VERSION=0.0.20
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:hmdi
5
5
  DOCKER_USER=hamdysimplyblock
@@ -122,26 +122,26 @@ while True:
122
122
  connected_devices.append(remote_device.get_id())
123
123
  else:
124
124
  logger.info(f"Checking bdev: {remote_device.remote_bdev} ... not found")
125
- # if not org_dev.alceml_bdev:
126
- # logger.error(f"device alceml bdev not found!, {org_dev.get_id()}")
127
- # continue
128
- # name = f"remote_{org_dev.alceml_bdev}"
125
+ if not org_dev.alceml_bdev:
126
+ logger.error(f"device alceml bdev not found!, {org_dev.get_id()}")
127
+ continue
128
+ name = f"remote_{org_dev.alceml_bdev}"
129
129
  # if rpc_client.bdev_nvme_controller_list(name):
130
130
  # logger.info(f"detaching {name} from {snode.get_id()}")
131
131
  # rpc_client.bdev_nvme_detach_controller(name)
132
132
  # time.sleep(1)
133
- #
134
- # logger.info(f"Connecting {name} to {snode.get_id()}")
135
- # ret = rpc_client.bdev_nvme_attach_controller_tcp(
136
- # name, org_dev.nvmf_nqn, org_dev.nvmf_ip, org_dev.nvmf_port)
137
- # if ret:
138
- # logger.info(f"Successfully connected to device: {org_dev.get_id()}")
139
- # remote_device.status = NVMeDevice.STATUS_ONLINE
140
- # connected_devices.append(org_dev.get_id())
141
- # snode.write_to_db()
142
- # distr_controller.send_dev_status_event(org_dev, NVMeDevice.STATUS_ONLINE, snode)
143
- # else:
144
- # logger.error(f"Failed to connect to device: {org_dev.get_id()}")
133
+
134
+ logger.info(f"Connecting {name} to {snode.get_id()}")
135
+ ret = rpc_client.bdev_nvme_attach_controller_tcp(
136
+ name, org_dev.nvmf_nqn, org_dev.nvmf_ip, org_dev.nvmf_port)
137
+ if ret:
138
+ logger.info(f"Successfully connected to device: {org_dev.get_id()}")
139
+ remote_device.status = NVMeDevice.STATUS_ONLINE
140
+ connected_devices.append(org_dev.get_id())
141
+ snode.write_to_db()
142
+ distr_controller.send_dev_status_event(org_dev, NVMeDevice.STATUS_ONLINE, snode)
143
+ else:
144
+ logger.error(f"Failed to connect to device: {org_dev.get_id()}")
145
145
 
146
146
  node_remote_devices_check &= bool(ret)
147
147
 
@@ -71,9 +71,18 @@ def process_device_event(event):
71
71
  event.status = 'skipped:node_offline'
72
72
  return
73
73
 
74
- logger.info(f"Setting device to unavailable")
75
- device_controller.device_set_unavailable(device_obj.get_id())
76
- if event.message in ['error_write', 'error_unmap', 'error_read']:
74
+ if device_node_obj.get_id() != event_node_obj.get_id() and event.message == 'error_open':
75
+ for dev in event_node_obj.remote_devices:
76
+ if dev.get_id() == device_obj.get_id():
77
+ dev.status = NVMeDevice.STATUS_UNAVAILABLE
78
+ event_node_obj.write_to_db()
79
+ break
80
+
81
+ else:
82
+
83
+ logger.info(f"Setting device to unavailable")
84
+ device_controller.device_set_unavailable(device_obj.get_id())
85
+ # if event.message in ['error_write', 'error_unmap', 'error_read']:
77
86
  device_controller.device_set_io_error(device_obj.get_id(), True)
78
87
 
79
88
  event.status = 'processed'
@@ -224,7 +224,8 @@ while True:
224
224
  if spdk_process:
225
225
  # 4- check rpc
226
226
  node_rpc_check = health_controller._check_node_rpc(
227
- snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
227
+ snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password,
228
+ timeout=1, retry=3)
228
229
  logger.info(f"Check: node RPC {snode.mgmt_ip}:{snode.rpc_port} ... {node_rpc_check}")
229
230
 
230
231
  is_node_online = ping_check and node_api_check and spdk_process and node_rpc_check
@@ -2897,20 +2897,20 @@ def recreate_lvstore(snode):
2897
2897
  snode = db_controller.get_storage_node_by_id(snode.get_id())
2898
2898
  snode.remote_devices = _connect_to_remote_devs(snode)
2899
2899
  if snode.enable_ha_jm:
2900
- online_devs = []
2901
- for remote_device in snode.remote_jm_devices:
2902
- if remote_device.status == StorageNode.STATUS_ONLINE:
2903
- online_devs.append(remote_device)
2904
-
2905
- if len(online_devs) < 2:
2906
- devs = get_sorted_ha_jms(snode)
2907
- for did in devs:
2908
- dev = db_controller.get_jm_device_by_id(did)
2909
- online_devs.append(dev)
2910
- if len(online_devs) > snode.ha_jm_count - 1:
2911
- break
2912
-
2913
- snode.remote_jm_devices = online_devs
2900
+ # online_devs = []
2901
+ # for remote_device in snode.remote_jm_devices:
2902
+ # if remote_device.status == StorageNode.STATUS_ONLINE:
2903
+ # online_devs.append(remote_device)
2904
+ #
2905
+ # if len(online_devs) < 2:
2906
+ # devs = get_sorted_ha_jms(snode)
2907
+ # for did in devs:
2908
+ # dev = db_controller.get_jm_device_by_id(did)
2909
+ # online_devs.append(dev)
2910
+ # if len(online_devs) > snode.ha_jm_count - 1:
2911
+ # break
2912
+ #
2913
+ # snode.remote_jm_devices = online_devs
2914
2914
  snode.remote_jm_devices = _connect_to_remote_jm_devs(snode)
2915
2915
  snode.write_to_db()
2916
2916
 
@@ -2953,6 +2953,9 @@ def recreate_lvstore(snode):
2953
2953
  lvol_obj.health_check = True
2954
2954
  lvol_obj.write_to_db()
2955
2955
 
2956
+ if snode.jm_vuid:
2957
+ ret = rpc_client.jc_explicit_synchronization(snode.jm_vuid)
2958
+ logger.info(f"JM Sync res: {ret}")
2956
2959
 
2957
2960
  sec_node_api = SNodeClient(sec_node.api_endpoint)
2958
2961
  if prim_node_suspend:
File without changes
File without changes
File without changes
File without changes