sbcli-dev 6.2.3__tar.gz → 6.2.4__tar.gz

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 (153) hide show
  1. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/PKG-INFO +1 -1
  2. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/env_var +1 -1
  3. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/sbcli_dev.egg-info/SOURCES.txt +1 -0
  5. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/constants.py +1 -1
  6. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/distr_controller.py +2 -0
  7. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/docker-compose-swarm.yml +14 -0
  8. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/storage_node_monitor.py +7 -8
  9. sbcli_dev-6.2.4/simplyblock_core/services/storage_node_self_lock.py +41 -0
  10. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/utils.py +15 -14
  11. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/README.md +0 -0
  12. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/pyproject.toml +0 -0
  13. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  14. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/sbcli_dev.egg-info/entry_points.txt +0 -0
  15. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/sbcli_dev.egg-info/requires.txt +0 -0
  16. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/sbcli_dev.egg-info/top_level.txt +0 -0
  17. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/setup.cfg +0 -0
  18. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/setup.py +0 -0
  19. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_cli/cli.py +0 -0
  20. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_cli/main.py +0 -0
  21. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/__init__.py +0 -0
  22. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/cluster_ops.py +0 -0
  23. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/cnode_client.py +0 -0
  24. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/compute_node_ops.py +0 -0
  25. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/__init__.py +0 -0
  26. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  27. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/cluster_events.py +0 -0
  28. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/device_controller.py +0 -0
  29. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/device_events.py +0 -0
  30. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/events_controller.py +0 -0
  31. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/health_controller.py +0 -0
  32. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/lvol_controller.py +0 -0
  33. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/lvol_events.py +0 -0
  34. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/mgmt_events.py +0 -0
  35. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/pool_controller.py +0 -0
  36. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/pool_events.py +0 -0
  37. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  38. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/snapshot_events.py +0 -0
  39. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/storage_events.py +0 -0
  40. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/tasks_controller.py +0 -0
  41. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/controllers/tasks_events.py +0 -0
  42. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/kv_store.py +0 -0
  43. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/mgmt_node_ops.py +0 -0
  44. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/__init__.py +0 -0
  45. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/base_model.py +0 -0
  46. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/caching_node.py +0 -0
  47. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/cluster.py +0 -0
  48. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/compute_node.py +0 -0
  49. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/deployer.py +0 -0
  50. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/events.py +0 -0
  51. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/global_settings.py +0 -0
  52. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/iface.py +0 -0
  53. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/job_schedule.py +0 -0
  54. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/lvol_model.py +0 -0
  55. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/mgmt_node.py +0 -0
  56. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/nvme_device.py +0 -0
  57. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/pool.py +0 -0
  58. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/port_stat.py +0 -0
  59. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/snapshot.py +0 -0
  60. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/stats.py +0 -0
  61. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/models/storage_node.py +0 -0
  62. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/pci_utils.py +0 -0
  63. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/rpc_client.py +0 -0
  64. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/__init__.py +0 -0
  65. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  66. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  67. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  68. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/config_docker.sh +0 -0
  69. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/dashboard.yml +0 -0
  70. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  71. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  72. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  73. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  74. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  75. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  76. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/datasource.yml +0 -0
  77. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/db_config_double.sh +0 -0
  78. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/db_config_single.sh +0 -0
  79. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  80. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  81. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  82. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/foundation.yml +0 -0
  83. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/haproxy.cfg +0 -0
  84. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/install_deps.sh +0 -0
  85. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/objstore.yml +0 -0
  86. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  87. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/prometheus.yml +0 -0
  88. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/run_ssh.sh +0 -0
  89. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/set_db_config.sh +0 -0
  90. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  91. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/__init__.py +0 -0
  92. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  93. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/caching_node_monitor.py +0 -0
  94. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/cap_monitor.py +0 -0
  95. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  96. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/device_monitor.py +0 -0
  97. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/health_check_service.py +0 -0
  98. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/install_service.sh +0 -0
  99. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/log_agg_service.py +0 -0
  100. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/lvol_monitor.py +0 -0
  101. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  102. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  103. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  104. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/new_device_discovery.py +0 -0
  105. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/port_stat_collector.py +0 -0
  106. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/remove_service.sh +0 -0
  107. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/service_template.service +0 -0
  108. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  109. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  110. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  111. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  112. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  113. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  114. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/shell_utils.py +0 -0
  115. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/snode_client.py +0 -0
  116. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_core/storage_node_ops.py +0 -0
  117. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/__init__.py +0 -0
  118. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/app.py +0 -0
  119. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/auth_middleware.py +0 -0
  120. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/__init__.py +0 -0
  121. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  122. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  123. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  124. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  125. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  126. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/snode_ops.py +0 -0
  127. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  128. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  129. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  130. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  131. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_device.py +0 -0
  132. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  133. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  134. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  135. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  136. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  137. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/caching_node_app.py +0 -0
  138. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/caching_node_app_k8s.py +0 -0
  139. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/node_utils.py +0 -0
  140. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/node_webapp.py +0 -0
  141. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/snode_app.py +0 -0
  142. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/snode_app_k8s.py +0 -0
  143. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/delete.py +0 -0
  144. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/deploy.py +0 -0
  145. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  146. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  147. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/is_up.py +0 -0
  148. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/list_deps.py +0 -0
  149. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/rpac.yaml +0 -0
  150. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/static/tst.py +0 -0
  151. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  152. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  153. {sbcli_dev-6.2.3 → sbcli_dev-6.2.4}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 6.2.3
3
+ Version: 6.2.4
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=6.2.3
2
+ SIMPLY_BLOCK_VERSION=6.2.4
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
5
5
  DOCKER_USER=hamdysimplyblock
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 6.2.3
3
+ Version: 6.2.4
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -106,6 +106,7 @@ simplyblock_core/services/remove_service.sh
106
106
  simplyblock_core/services/service_template.service
107
107
  simplyblock_core/services/spdk_http_proxy_server.py
108
108
  simplyblock_core/services/storage_node_monitor.py
109
+ simplyblock_core/services/storage_node_self_lock.py
109
110
  simplyblock_core/services/tasks_runner_failed_migration.py
110
111
  simplyblock_core/services/tasks_runner_migration.py
111
112
  simplyblock_core/services/tasks_runner_new_dev_migration.py
@@ -56,7 +56,7 @@ FDB_CHECK_INTERVAL_SEC = 60
56
56
 
57
57
  SIMPLY_BLOCK_DOCKER_IMAGE = "simplyblock/simplyblock:main"
58
58
  SIMPLY_BLOCK_CLI_NAME = "sbcli-dev"
59
- TASK_EXEC_INTERVAL_SEC = 30
59
+ TASK_EXEC_INTERVAL_SEC = 10
60
60
  TASK_EXEC_RETRY_COUNT = 8
61
61
 
62
62
 
@@ -14,6 +14,8 @@ logger = logging.getLogger()
14
14
  def send_node_status_event(node, node_status, target_node=None):
15
15
  db_controller = DBController()
16
16
  node_id = node.get_id()
17
+ if node_status == StorageNode.STATUS_SCHEDULABLE:
18
+ node_status = StorageNode.STATUS_UNREACHABLE
17
19
  logging.info(f"Sending event updates, node: {node_id}, status: {node_status}")
18
20
  node_status_event = {
19
21
  "timestamp": datetime.datetime.now().isoformat("T", "seconds") + 'Z',
@@ -289,6 +289,20 @@ services:
289
289
  environment:
290
290
  SIMPLYBLOCK_LOG_LEVEL: "$LOG_LEVEL"
291
291
 
292
+ StorageNodeSelfLock:
293
+ image: $SIMPLYBLOCK_DOCKER_IMAGE
294
+ command: "python simplyblock_core/services/storage_node_self_lock.py"
295
+ deploy:
296
+ mode: global
297
+ placement:
298
+ constraints: [node.role == worker]
299
+ volumes:
300
+ - "/etc/foundationdb:/etc/foundationdb"
301
+ networks:
302
+ - hostnet
303
+ environment:
304
+ SIMPLYBLOCK_LOG_LEVEL: "$LOG_LEVEL"
305
+
292
306
 
293
307
  volumes:
294
308
  os_data:
@@ -165,12 +165,11 @@ def get_current_cluster_status(cluster_id):
165
165
 
166
166
  def update_cluster_status(cluster_id):
167
167
  cluster = db_controller.get_cluster_by_id(cluster_id)
168
-
169
- if cluster.status == Cluster.STATUS_READONLY or cluster.status == Cluster.STATUS_UNREADY \
170
- or Cluster.STATUS_IN_ACTIVATION:
168
+ logger.info("cluster_status: %s", cluster.status)
169
+ if cluster.status in [Cluster.STATUS_READONLY, Cluster.STATUS_UNREADY, Cluster.STATUS_IN_ACTIVATION]:
171
170
  return
171
+
172
172
  cluster_current_status = get_current_cluster_status(cluster_id)
173
- logger.info("cluster_status: %s", cluster.status)
174
173
  logger.info("cluster_new_status: %s", cluster_current_status)
175
174
  if cluster.status not in [Cluster.STATUS_ACTIVE, Cluster.STATUS_UNREADY] and cluster_current_status == Cluster.STATUS_ACTIVE:
176
175
  # cluster_ops.cluster_activate(cluster_id, True)
@@ -274,11 +273,11 @@ while True:
274
273
  else:
275
274
  set_node_offline(snode)
276
275
 
277
- if not ping_check and not node_api_check and not spdk_process:
278
- # restart on new node
279
- storage_node_ops.set_node_status(snode.get_id(), StorageNode.STATUS_SCHEDULABLE)
276
+ # if not ping_check and not node_api_check and not spdk_process:
277
+ # # restart on new node
278
+ # storage_node_ops.set_node_status(snode.get_id(), StorageNode.STATUS_SCHEDULABLE)
280
279
 
281
- elif ping_check and node_api_check and (not spdk_process or not node_rpc_check):
280
+ if ping_check and node_api_check and (not spdk_process or not node_rpc_check):
282
281
  # add node to auto restart
283
282
  if cluster.status == Cluster.STATUS_ACTIVE:
284
283
  tasks_controller.add_node_to_auto_restart(snode)
@@ -0,0 +1,41 @@
1
+ # coding=utf-8
2
+ import time
3
+
4
+ import fdb
5
+
6
+ from simplyblock_core import constants, utils
7
+ from simplyblock_core.snode_client import SNodeClient
8
+
9
+ logger = utils.get_logger(__name__)
10
+
11
+ logger.info("Starting node monitor")
12
+ MAX_RETRY = 6
13
+ retry = MAX_RETRY
14
+ error_open = False
15
+ snode_api = SNodeClient("0.0.0.0:5000")
16
+
17
+
18
+ while True:
19
+
20
+ is_up, _ = snode_api.spdk_process_is_up()
21
+ if is_up:
22
+ if error_open is True and retry <= 0:
23
+ snode_api.spdk_process_kill()
24
+ error_open = False
25
+ retry = MAX_RETRY
26
+ else:
27
+ try:
28
+ fdb.api_version(constants.KVD_DB_VERSION)
29
+ db = fdb.open(constants.KVD_DB_FILE_PATH)
30
+ db.options.set_transaction_timeout(5)
31
+ d = db.get_range_startswith(b"/", limit=1)
32
+ logger.info("Open db ok")
33
+ error_open = False
34
+ retry = MAX_RETRY
35
+ except Exception as e:
36
+ logger.error(e)
37
+ logger.info("Open db error")
38
+ error_open = True
39
+ retry -= 1
40
+
41
+ time.sleep(10)
@@ -17,9 +17,6 @@ from simplyblock_core import constants
17
17
  from simplyblock_core import shell_utils
18
18
 
19
19
 
20
- logger = logging.getLogger()
21
-
22
-
23
20
  def get_env_var(name, default=None, is_required=False):
24
21
  if not name:
25
22
  logger.warning("Invalid env var name %s", name)
@@ -131,7 +128,7 @@ def get_docker_client(cluster_id=None):
131
128
  nodes = db_controller.get_mgmt_nodes(cluster_id)
132
129
  if not nodes:
133
130
  logger.error("No mgmt nodes was found in the cluster!")
134
- exit(1)
131
+ return False
135
132
 
136
133
  docker_ips = [node.docker_ip_port for node in nodes]
137
134
 
@@ -139,9 +136,10 @@ def get_docker_client(cluster_id=None):
139
136
  try:
140
137
  c = docker.DockerClient(base_url=f"tcp://{ip}", version="auto")
141
138
  return c
142
- except docker.errors.DockerException as e:
139
+ except Exception as e:
143
140
  print(e)
144
- raise e
141
+ raise e
142
+ return False
145
143
 
146
144
 
147
145
  def dict_agg(data, mean=False):
@@ -580,23 +578,23 @@ def decimal_to_hex_power_of_2(decimal_number):
580
578
 
581
579
  def get_logger(name):
582
580
  # first configure a root logger
583
- logger = logging.getLogger()
581
+ logg = logging.getLogger(name)
584
582
  log_level = os.getenv("SIMPLYBLOCK_LOG_LEVEL")
585
583
  log_level = log_level.upper() if log_level else constants.LOG_LEVEL
586
584
 
587
585
  try:
588
- logger.setLevel(log_level)
586
+ logg.setLevel(log_level)
589
587
  except ValueError as e:
590
- logger.warning(f'Invalid SIMPLYBLOCK_LOG_LEVEL: {str(e)}')
591
- logger.setLevel(constants.LOG_LEVEL)
588
+ logg.warning(f'Invalid SIMPLYBLOCK_LOG_LEVEL: {str(e)}')
589
+ logg.setLevel(constants.LOG_LEVEL)
592
590
 
593
591
  logger_handler = logging.StreamHandler(stream=sys.stdout)
594
592
  logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
595
- logger.addHandler(logger_handler)
593
+ logg.addHandler(logger_handler)
596
594
 
597
595
  gelf_handler = GELFTCPHandler('0.0.0.0', constants.GELF_PORT)
598
- logger.addHandler(gelf_handler)
599
- return logging.getLogger(name)
596
+ logg.addHandler(gelf_handler)
597
+ return logg
600
598
 
601
599
 
602
600
  def parse_size(size_string: str):
@@ -653,4 +651,7 @@ def strfdelta(tdelta):
653
651
  if values[field] > 0:
654
652
  out += f"{values[field]}{field.lower()} "
655
653
 
656
- return out.strip()
654
+ return out.strip()
655
+
656
+
657
+ logger = get_logger(__name__)
File without changes
File without changes
File without changes
File without changes