sbcli-dev 10.3.4__tar.gz → 10.4.0__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 (154) hide show
  1. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/PKG-INFO +1 -1
  2. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/sbcli_dev.egg-info/PKG-INFO +1 -1
  3. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_cli/cli.py +2 -2
  4. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/constants.py +1 -0
  5. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/health_controller.py +4 -1
  6. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/lvol_controller.py +14 -0
  7. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/distr_controller.py +25 -8
  8. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/env_var +1 -1
  9. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/storage_node_monitor.py +1 -1
  10. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/tasks_runner_failed_migration.py +6 -1
  11. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/storage_node_ops.py +5 -8
  12. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/utils.py +3 -0
  13. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/caching_node_ops.py +2 -2
  14. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/caching_node_ops_k8s.py +1 -1
  15. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/node_api_caching_docker.py +2 -2
  16. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/node_api_caching_ks.py +1 -1
  17. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +1 -1
  18. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/README.md +0 -0
  19. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/pyproject.toml +0 -0
  20. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/requirements.txt +0 -0
  21. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  22. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  23. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/sbcli_dev.egg-info/entry_points.txt +0 -0
  24. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/sbcli_dev.egg-info/requires.txt +0 -0
  25. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/sbcli_dev.egg-info/top_level.txt +0 -0
  26. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/setup.cfg +0 -0
  27. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/setup.py +0 -0
  28. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_cli/__init__.py +0 -0
  29. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_cli/main.py +0 -0
  30. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/__init__.py +0 -0
  31. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/cluster_ops.py +0 -0
  32. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/cnode_client.py +0 -0
  33. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/__init__.py +0 -0
  34. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  35. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/cluster_events.py +0 -0
  36. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/device_controller.py +0 -0
  37. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/device_events.py +0 -0
  38. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/events_controller.py +0 -0
  39. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/lvol_events.py +0 -0
  40. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/mgmt_events.py +0 -0
  41. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/pool_controller.py +0 -0
  42. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/pool_events.py +0 -0
  43. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  44. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/snapshot_events.py +0 -0
  45. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/storage_events.py +0 -0
  46. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/tasks_controller.py +0 -0
  47. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/controllers/tasks_events.py +0 -0
  48. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/db_controller.py +0 -0
  49. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/mgmt_node_ops.py +0 -0
  50. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/__init__.py +0 -0
  51. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/base_model.py +0 -0
  52. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/caching_node.py +0 -0
  53. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/cluster.py +0 -0
  54. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/deployer.py +0 -0
  55. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/events.py +0 -0
  56. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/iface.py +0 -0
  57. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/job_schedule.py +0 -0
  58. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/lvol_model.py +0 -0
  59. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/mgmt_node.py +0 -0
  60. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/nvme_device.py +0 -0
  61. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/pool.py +0 -0
  62. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/port_stat.py +0 -0
  63. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/snapshot.py +0 -0
  64. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/stats.py +0 -0
  65. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/models/storage_node.py +0 -0
  66. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/pci_utils.py +0 -0
  67. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/rpc_client.py +0 -0
  68. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/__init__.py +0 -0
  69. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  70. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  71. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  72. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/config_docker.sh +0 -0
  73. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/dashboard.yml +0 -0
  74. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  75. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  76. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  77. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  78. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  79. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  80. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/datasource.yml +0 -0
  81. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/db_config_double.sh +0 -0
  82. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/db_config_single.sh +0 -0
  83. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  84. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  85. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  86. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  87. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/foundation.yml +0 -0
  88. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/haproxy.cfg +0 -0
  89. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/install_deps.sh +0 -0
  90. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/objstore.yml +0 -0
  91. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  92. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/prometheus.yml +0 -0
  93. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/run_ssh.sh +0 -0
  94. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/set_db_config.sh +0 -0
  95. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  96. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/__init__.py +0 -0
  97. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  98. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/caching_node_monitor.py +0 -0
  99. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/cap_monitor.py +0 -0
  100. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  101. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/device_monitor.py +0 -0
  102. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/health_check_service.py +0 -0
  103. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/install_service.sh +0 -0
  104. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/log_agg_service.py +0 -0
  105. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/lvol_monitor.py +0 -0
  106. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  107. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  108. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  109. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/new_device_discovery.py +0 -0
  110. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/port_stat_collector.py +0 -0
  111. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/remove_service.sh +0 -0
  112. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/service_template.service +0 -0
  113. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  114. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  115. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  116. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  117. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  118. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/shell_utils.py +0 -0
  119. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/snode_client.py +0 -0
  120. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  121. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/README.md +0 -0
  122. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/__init__.py +0 -0
  123. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/app.py +0 -0
  124. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/auth_middleware.py +0 -0
  125. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/__init__.py +0 -0
  126. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  127. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/snode_ops.py +0 -0
  128. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  129. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  130. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  131. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  132. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_device.py +0 -0
  133. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  134. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  135. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  136. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  137. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  138. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/caching_node_app.py +0 -0
  139. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/caching_node_app_k8s.py +0 -0
  140. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/node_utils.py +0 -0
  141. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/node_webapp.py +0 -0
  142. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/requirements.txt +0 -0
  143. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/snode_app.py +0 -0
  144. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/snode_app_k8s.py +0 -0
  145. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/delete.py +0 -0
  146. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/deploy.py +0 -0
  147. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  148. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  149. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/is_up.py +0 -0
  150. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/list_deps.py +0 -0
  151. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/rpac.yaml +0 -0
  152. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/static/tst.py +0 -0
  153. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  154. {sbcli_dev-10.3.4 → sbcli_dev-10.4.0}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-dev
3
- Version: 10.3.4
3
+ Version: 10.4.0
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-dev
3
- Version: 10.3.4
3
+ Version: 10.4.0
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -279,8 +279,8 @@ class CLIWrapper:
279
279
  sub_command.add_argument("--prov-cap-crit", help='Capacity critical level in percent, default=190',
280
280
  type=int, required=False, dest="prov_cap_crit")
281
281
  sub_command.add_argument("--ifname", help='Management interface name, default: eth0')
282
- sub_command.add_argument("--log-del-interval", help='graylog deletion interval, default: 2d',
283
- dest='log_del_interval', default='2d')
282
+ sub_command.add_argument("--log-del-interval", help='graylog deletion interval, default: 3d',
283
+ dest='log_del_interval', default='3d')
284
284
  sub_command.add_argument("--metrics-retention-period", help='retention period for prometheus metrics, default: 7d',
285
285
  dest='metrics_retention_period', default='7d')
286
286
  sub_command.add_argument("--contact-point", help='the email or slack webhook url to be used for alerting',
@@ -73,6 +73,7 @@ SIMPLY_BLOCK_CLI_NAME = get_from_env_var_file(
73
73
  "SIMPLY_BLOCK_COMMAND_NAME", "sbcli")
74
74
  TASK_EXEC_INTERVAL_SEC = 10
75
75
  TASK_EXEC_RETRY_COUNT = 8
76
+ SIMPLY_BLOCK_SPDK_CORE_IMAGE = "simplyblock/spdk-core:v24.05.x-latest"
76
77
 
77
78
 
78
79
  SIMPLY_BLOCK_SPDK_ULTRA_IMAGE = "simplyblock/spdk:lvolstore-ha-snapshot-latest"
@@ -396,6 +396,9 @@ def check_lvol_on_node(lvol_id, node_id):
396
396
  return False
397
397
 
398
398
  snode = db_controller.get_storage_node_by_id(node_id)
399
+ if not snode:
400
+ return False
401
+
399
402
  rpc_client = RPCClient(
400
403
  snode.mgmt_ip, snode.rpc_port,
401
404
  snode.rpc_username, snode.rpc_password, timeout=5, retry=1)
@@ -443,7 +446,7 @@ def check_lvol(lvol_id):
443
446
  passed = True
444
447
  for nodes_id in lvol.nodes:
445
448
  node = db_controller.get_storage_node_by_id(nodes_id)
446
- if node.status == StorageNode.STATUS_ONLINE:
449
+ if node and node.status == StorageNode.STATUS_ONLINE:
447
450
  ret = check_lvol_on_node(lvol_id, nodes_id)
448
451
  if not ret:
449
452
  passed = False
@@ -175,6 +175,8 @@ def _get_next_3_nodes(cluster_id, lvol_size=0):
175
175
  continue
176
176
 
177
177
  if node.status == node.STATUS_ONLINE:
178
+ if node.hostname == "ip-10-245-16-169":
179
+ continue
178
180
  # Validate Eligible nodes for adding lvol
179
181
  # snode_api = SNodeClient(node.api_endpoint)
180
182
  # result, _ = snode_api.info()
@@ -319,6 +321,18 @@ def add_lvol_ha(name, size, host_id_or_name, ha_type, pool_id_or_name, use_comp,
319
321
  if cl.status not in [cl.STATUS_ACTIVE, cl.STATUS_DEGRADED]:
320
322
  return False, f"Cluster is not active, status: {cl.status}"
321
323
 
324
+ if uid:
325
+ for lvol in db_controller.get_lvols():
326
+ if lvol.get_id() == uid:
327
+ if pvc_name:
328
+ lvol.pvc_name = pvc_name
329
+ if name:
330
+ lvol.lvol_name = name
331
+ if namespace:
332
+ lvol.namespace = namespace
333
+ lvol.write_to_db()
334
+ return uid, None
335
+
322
336
  if ha_type == "default":
323
337
  ha_type = cl.ha_type
324
338
 
@@ -140,6 +140,12 @@ def get_distr_cluster_map(snodes, target_node, distr_name=""):
140
140
  "map_prob": [d for k, d in map_prob.items()]
141
141
  }
142
142
  if cluster.enable_node_affinity:
143
+ if target_node.is_secondary_node and distr_name:
144
+ for index, snode in enumerate(snodes):
145
+ for bdev in snode.lvstore_stack:
146
+ if bdev['type'] == "bdev_distr" and bdev['name'] == distr_name:
147
+ local_node_index = index
148
+ break
143
149
  cl_map['ppln1'] = local_node_index
144
150
  return cl_map
145
151
 
@@ -208,14 +214,25 @@ def send_cluster_map_to_node(node):
208
214
  db_controller = DBController()
209
215
  snodes = db_controller.get_storage_nodes_by_cluster_id(node.cluster_id)
210
216
  rpc_client = RPCClient(node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=10)
211
- cluster_map_data = get_distr_cluster_map(snodes, node)
212
- cluster_map_data['UUID_node_target'] = node.get_id()
213
- ret = rpc_client.distr_send_cluster_map(cluster_map_data)
214
- if not ret:
215
- logger.error("Failed to send cluster map")
216
- logger.info(cluster_map_data)
217
- return False
218
- return True
217
+
218
+ if node.is_secondary_node:
219
+ for snode in db_controller.get_primary_storage_nodes_by_secondary_node_id(node.get_id()):
220
+ for bdev in snode.lvstore_stack:
221
+ if bdev['type'] == "bdev_distr":
222
+ cluster_map_data = get_distr_cluster_map(snodes, node, bdev["name"])
223
+ ret = rpc_client.distr_send_cluster_map(cluster_map_data)
224
+ if not ret:
225
+ logger.error("Failed to send cluster map")
226
+ return False
227
+ return True
228
+ else:
229
+ cluster_map_data = get_distr_cluster_map(snodes, node)
230
+ ret = rpc_client.distr_send_cluster_map(cluster_map_data)
231
+ if not ret:
232
+ logger.error("Failed to send cluster map")
233
+ logger.info(cluster_map_data)
234
+ return False
235
+ return True
219
236
 
220
237
 
221
238
  def send_cluster_map_to_distr(node, distr_name):
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=10.3.4
2
+ SIMPLY_BLOCK_VERSION=10.4.0
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
5
5
  DOCKER_USER=hamdysimplyblock
@@ -62,7 +62,7 @@ def get_next_cluster_status(cluster_id):
62
62
  else:
63
63
  node_offline_devices += 1
64
64
 
65
- if node_offline_devices > 0 or node_online_devices == 0:
65
+ if node_offline_devices > 0 or (node_online_devices == 0 and node.status != StorageNode.STATUS_REMOVED):
66
66
  affected_nodes += 1
67
67
 
68
68
  online_devices += node_online_devices
@@ -101,7 +101,12 @@ def task_runner(task):
101
101
 
102
102
  mig_info = task.function_params["migration"]
103
103
  res = rpc_client.distr_migration_status(**mig_info)
104
- return utils.handle_task_result(task, res)
104
+ out = utils.handle_task_result(task, res)
105
+ dev_failed_task = tasks_controller.get_failed_device_mig_task(task.cluster_id, task.device_id)
106
+ if not dev_failed_task:
107
+ device_controller.device_set_failed_and_migrated(task.device_id)
108
+
109
+ return out
105
110
  else:
106
111
  task.retry += 1
107
112
  task.write_to_db(db_controller.kv_store)
@@ -2845,7 +2845,6 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
2845
2845
  distrib_vuid = utils.get_random_vuid()
2846
2846
 
2847
2847
  distrib_name = f"distrib_{distrib_vuid}"
2848
- lvs_name = f"LVS_{distrib_vuid}"
2849
2848
  lvstore_stack.extend(
2850
2849
  [
2851
2850
  {
@@ -2904,18 +2903,16 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
2904
2903
  }
2905
2904
  )
2906
2905
 
2907
- ret, err = _create_bdev_stack(snode, lvstore_stack)
2908
- if err:
2909
- logger.error(f"Failed to create lvstore on node {snode.get_id()}")
2910
- logger.error(err)
2911
- return False
2912
-
2913
2906
  snode.lvstore = lvs_name
2914
2907
  snode.lvstore_stack = lvstore_stack
2915
2908
  snode.raid = raid_device
2916
2909
  snode.write_to_db()
2917
2910
 
2918
- # time.sleep(1)
2911
+ ret, err = _create_bdev_stack(snode, lvstore_stack)
2912
+ if err:
2913
+ logger.error(f"Failed to create lvstore on node {snode.get_id()}")
2914
+ logger.error(err)
2915
+ return False
2919
2916
 
2920
2917
  if snode.secondary_node_id:
2921
2918
  # creating lvstore on secondary
@@ -664,6 +664,9 @@ def strfdelta(tdelta):
664
664
 
665
665
  def handle_task_result(task: JobSchedule, res: dict, allowed_error_codes = None):
666
666
  if res:
667
+ if not allowed_error_codes:
668
+ allowed_error_codes = [0]
669
+
667
670
  res_data = res[0]
668
671
  migration_status = res_data.get("status")
669
672
  error_code = res_data.get("error", -1)
@@ -176,7 +176,7 @@ def spdk_process_start():
176
176
  node.remove(force=True)
177
177
  time.sleep(2)
178
178
 
179
- spdk_image = constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE
179
+ spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
180
180
 
181
181
  if 'spdk_image' in data and data['spdk_image']:
182
182
  spdk_image = data['spdk_image']
@@ -184,7 +184,7 @@ def spdk_process_start():
184
184
 
185
185
  container = node_docker.containers.run(
186
186
  spdk_image,
187
- f"/root/scripts/run_spdk_tgt.sh {spdk_cpu_mask} {spdk_mem}",
187
+ f"/root/spdk/scripts/run_spdk_tgt.sh {spdk_cpu_mask} {spdk_mem}",
188
188
  name="spdk",
189
189
  detach=True,
190
190
  privileged=True,
@@ -112,7 +112,7 @@ def spdk_process_start():
112
112
 
113
113
  spdk_mem_gega = int(spdk_mem / 1024)
114
114
 
115
- spdk_image = constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE
115
+ spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
116
116
 
117
117
  if 'spdk_image' in data and data['spdk_image']:
118
118
  spdk_image = data['spdk_image']
@@ -64,14 +64,14 @@ def spdk_process_start():
64
64
  node.remove(force=True)
65
65
  time.sleep(2)
66
66
 
67
- spdk_image = constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE
67
+ spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
68
68
  if 'spdk_image' in data and data['spdk_image']:
69
69
  spdk_image = data['spdk_image']
70
70
  node_docker.images.pull(spdk_image)
71
71
 
72
72
  container = node_docker.containers.run(
73
73
  spdk_image,
74
- f"/root/scripts/run_spdk_tgt.sh {spdk_cpu_mask} {spdk_mem}",
74
+ f"/root/spdk/scripts/run_spdk_tgt.sh {spdk_cpu_mask} {spdk_mem}",
75
75
  name="spdk",
76
76
  detach=True,
77
77
  privileged=True,
@@ -63,7 +63,7 @@ def spdk_process_start():
63
63
  else:
64
64
  spdk_mem = 64096
65
65
 
66
- spdk_image = constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE
66
+ spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
67
67
  if 'spdk_image' in data and data['spdk_image']:
68
68
  spdk_image = data['spdk_image']
69
69
  # node_docker.images.pull(spdk_image)
@@ -55,7 +55,7 @@ spec:
55
55
  - name: spdk-container
56
56
  image: {{ SPDK_IMAGE }}
57
57
  imagePullPolicy: "Always"
58
- command: ["/root/scripts/run_spdk_tgt.sh", "{{ SPDK_CPU_MASK }}", "{{ SPDK_MEM }}"]
58
+ command: ["/root/spdk/scripts/run_spdk_tgt.sh", "{{ SPDK_CPU_MASK }}", "{{ SPDK_MEM }}"]
59
59
  lifecycle:
60
60
  postStart:
61
61
  exec:
File without changes
File without changes
File without changes
File without changes
File without changes