sbcli-dev 10.4.0__tar.gz → 10.7.1__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.4.0 → sbcli_dev-10.7.1}/PKG-INFO +1 -1
  2. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/sbcli_dev.egg-info/PKG-INFO +1 -1
  3. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_cli/cli.py +4 -1
  4. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/cluster_ops.py +7 -3
  5. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/constants.py +5 -4
  6. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/caching_node_controller.py +85 -51
  7. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/device_controller.py +161 -139
  8. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/health_controller.py +5 -0
  9. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/lvol_controller.py +36 -73
  10. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/snapshot_controller.py +10 -17
  11. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/tasks_events.py +0 -4
  12. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/env_var +1 -1
  13. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/mgmt_node_ops.py +0 -3
  14. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/caching_node.py +4 -0
  15. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/nvme_device.py +1 -1
  16. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/storage_node.py +2 -0
  17. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/config_docker.sh +13 -0
  18. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/install_deps.sh +5 -0
  19. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/health_check_service.py +3 -0
  20. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -1
  21. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/tasks_runner_migration.py +0 -1
  22. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/tasks_runner_new_dev_migration.py +16 -14
  23. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/tasks_runner_node_add.py +0 -2
  24. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/tasks_runner_restart.py +1 -3
  25. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/snode_client.py +2 -1
  26. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/storage_node_ops.py +175 -74
  27. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/utils.py +2 -2
  28. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/caching_node_ops.py +10 -7
  29. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/snode_ops.py +29 -20
  30. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/node_webapp.py +1 -1
  31. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/README.md +0 -0
  32. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/pyproject.toml +0 -0
  33. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/requirements.txt +0 -0
  34. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  35. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  36. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/sbcli_dev.egg-info/entry_points.txt +0 -0
  37. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/sbcli_dev.egg-info/requires.txt +0 -0
  38. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/sbcli_dev.egg-info/top_level.txt +0 -0
  39. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/setup.cfg +0 -0
  40. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/setup.py +0 -0
  41. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_cli/__init__.py +0 -0
  42. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_cli/main.py +0 -0
  43. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/__init__.py +0 -0
  44. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/cnode_client.py +0 -0
  45. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/__init__.py +0 -0
  46. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/cluster_events.py +0 -0
  47. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/device_events.py +0 -0
  48. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/events_controller.py +0 -0
  49. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/lvol_events.py +0 -0
  50. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/mgmt_events.py +0 -0
  51. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/pool_controller.py +0 -0
  52. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/pool_events.py +0 -0
  53. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/snapshot_events.py +0 -0
  54. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/storage_events.py +0 -0
  55. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/controllers/tasks_controller.py +0 -0
  56. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/db_controller.py +0 -0
  57. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/distr_controller.py +0 -0
  58. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/__init__.py +0 -0
  59. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/base_model.py +0 -0
  60. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/cluster.py +0 -0
  61. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/deployer.py +0 -0
  62. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/events.py +0 -0
  63. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/iface.py +0 -0
  64. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/job_schedule.py +0 -0
  65. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/lvol_model.py +0 -0
  66. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/mgmt_node.py +0 -0
  67. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/pool.py +0 -0
  68. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/port_stat.py +0 -0
  69. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/snapshot.py +0 -0
  70. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/models/stats.py +0 -0
  71. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/pci_utils.py +0 -0
  72. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/rpc_client.py +0 -0
  73. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/__init__.py +0 -0
  74. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  75. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  76. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  77. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/dashboard.yml +0 -0
  78. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  79. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  80. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  81. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  82. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  83. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  84. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/datasource.yml +0 -0
  85. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/db_config_double.sh +0 -0
  86. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/db_config_single.sh +0 -0
  87. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  88. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  89. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  90. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  91. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/foundation.yml +0 -0
  92. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/haproxy.cfg +0 -0
  93. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/objstore.yml +0 -0
  94. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  95. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/prometheus.yml +0 -0
  96. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/run_ssh.sh +0 -0
  97. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/set_db_config.sh +0 -0
  98. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  99. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/__init__.py +0 -0
  100. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  101. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/caching_node_monitor.py +0 -0
  102. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/cap_monitor.py +0 -0
  103. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  104. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/device_monitor.py +0 -0
  105. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/install_service.sh +0 -0
  106. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/log_agg_service.py +0 -0
  107. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/lvol_monitor.py +0 -0
  108. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  109. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  110. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  111. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/new_device_discovery.py +0 -0
  112. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/port_stat_collector.py +0 -0
  113. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/remove_service.sh +0 -0
  114. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/service_template.service +0 -0
  115. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  116. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/services/storage_node_monitor.py +0 -0
  117. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/shell_utils.py +0 -0
  118. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  119. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/README.md +0 -0
  120. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/__init__.py +0 -0
  121. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/app.py +0 -0
  122. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/auth_middleware.py +0 -0
  123. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/__init__.py +0 -0
  124. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  125. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  126. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  127. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  128. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  129. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  130. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  131. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  132. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_device.py +0 -0
  133. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  134. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  135. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  136. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  137. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  138. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/caching_node_app.py +0 -0
  139. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/caching_node_app_k8s.py +0 -0
  140. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/node_utils.py +0 -0
  141. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/requirements.txt +0 -0
  142. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/snode_app.py +0 -0
  143. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/snode_app_k8s.py +0 -0
  144. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/delete.py +0 -0
  145. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/deploy.py +0 -0
  146. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  147. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  148. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/is_up.py +0 -0
  149. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/list_deps.py +0 -0
  150. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/rpac.yaml +0 -0
  151. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/static/tst.py +0 -0
  152. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  153. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  154. {sbcli_dev-10.4.0 → sbcli_dev-10.7.1}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-dev
3
- Version: 10.4.0
3
+ Version: 10.7.1
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.4.0
3
+ Version: 10.7.1
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -47,6 +47,7 @@ class CLIWrapper:
47
47
  sub_command.add_argument("--max-prov", help='Maximum amount of GB to be provisioned via all storage nodes', dest='max_prov')
48
48
  sub_command.add_argument("--number-of-distribs", help='The number of distirbs to be created on the node', dest='number_of_distribs', type=int, default=2)
49
49
  sub_command.add_argument("--number-of-devices", help='Number of devices per storage node if it\'s not supported EC2 instance', dest='number_of_devices', type=int)
50
+ sub_command.add_argument("--size-of-device", help='Size of device per storage node', dest='partition_size')
50
51
  sub_command.add_argument("--cpu-mask", help='SPDK app CPU mask, default is all cores found', dest='spdk_cpu_mask')
51
52
 
52
53
  sub_command.add_argument("--spdk-image", help='SPDK image uri', dest='spdk_image')
@@ -58,7 +59,7 @@ class CLIWrapper:
58
59
  sub_command.add_argument("--disable-ha-jm", help='Disable HA JM for distrib creation', action='store_false', dest='enable_ha_jm', default=True)
59
60
  sub_command.add_argument("--is-secondary-node", help='add as secondary node', action='store_true', dest='is_secondary_node', default=False)
60
61
  sub_command.add_argument("--namespace", help='k8s namespace to deploy on',)
61
-
62
+ sub_command.add_argument("--id-device-by-nqn", help='Use device nqn to identify it instead of serial number', action='store_true', dest='id_device_by_nqn', default=False)
62
63
 
63
64
  # delete storage node
64
65
  sub_command = self.add_sub_command(subparser, "delete", 'Delete storage node obj')
@@ -798,6 +799,8 @@ class CLIWrapper:
798
799
  number_of_distribs=number_of_distribs,
799
800
  enable_ha_jm=enable_ha_jm,
800
801
  is_secondary_node=args.is_secondary_node,
802
+ id_device_by_nqn=args.id_device_by_nqn,
803
+ partition_size=args.partition_size,
801
804
  )
802
805
 
803
806
  return out
@@ -130,6 +130,10 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
130
130
  if c.swarm.attrs and "ID" in c.swarm.attrs:
131
131
  logger.info("Docker swarm found, leaving swarm now")
132
132
  c.swarm.leave(force=True)
133
+ try:
134
+ c.volumes.get("monitoring_grafana_data").remove(force=True)
135
+ except:
136
+ pass
133
137
  time.sleep(3)
134
138
 
135
139
  c.swarm.init(DEV_IP)
@@ -160,7 +164,7 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
160
164
  if prov_cap_crit and prov_cap_crit > 0:
161
165
  c.prov_cap_crit = prov_cap_crit
162
166
  if distr_ndcs == 0 and distr_npcs == 0:
163
- c.distr_ndcs = 4
167
+ c.distr_ndcs = 1
164
168
  c.distr_npcs = 1
165
169
  else:
166
170
  c.distr_ndcs = distr_ndcs
@@ -365,7 +369,7 @@ def cluster_activate(cl_id, force=False, force_lvstore_create=False):
365
369
  else:
366
370
  ret = storage_node_ops.create_lvstore(snode, cluster.distr_ndcs, cluster.distr_npcs, cluster.distr_bs,
367
371
  cluster.distr_chunk_bs, cluster.page_size_in_blocks, max_size, snodes)
368
- if not ret:
372
+ if not ret and not force:
369
373
  logger.error("Failed to activate cluster")
370
374
  set_cluster_status(cl_id, ols_status)
371
375
  return False
@@ -377,7 +381,7 @@ def cluster_activate(cl_id, force=False, force_lvstore_create=False):
377
381
  continue
378
382
 
379
383
  ret = storage_node_ops.recreate_lvstore(snode)
380
- if not ret:
384
+ if not ret and not force:
381
385
  logger.error("Failed to activate cluster")
382
386
  set_cluster_status(cl_id, ols_status)
383
387
  return False
@@ -73,10 +73,10 @@ 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
+ SIMPLY_BLOCK_SPDK_CORE_IMAGE = "simplyblock/spdk-core:v24.05-tag-latest"
77
77
 
78
78
 
79
- SIMPLY_BLOCK_SPDK_ULTRA_IMAGE = "simplyblock/spdk:lvolstore-ha-snapshot-latest"
79
+ SIMPLY_BLOCK_SPDK_ULTRA_IMAGE = "simplyblock/spdk:main-latest"
80
80
 
81
81
  GELF_PORT = 12202
82
82
 
@@ -88,7 +88,7 @@ EXTRA_LARGE_POOL_COUNT = 16000
88
88
  # EXTRA_LARGE_POOL_COUNT = 0
89
89
  EXTRA_HUGE_PAGE_MEMORY = 2147483648
90
90
  #EXTRA_SYS_MEMORY = 2147483648
91
- EXTRA_SYS_MEMORY = 0
91
+ EXTRA_SYS_MEMORY = 0.15
92
92
 
93
93
  INSTANCE_STORAGE_DATA = {
94
94
  'i4i.large': {'number_of_devices': 1, 'size_per_device_gb': 468},
@@ -128,4 +128,5 @@ LVOL_NVME_CONNECT_NR_IO_QUEUES=6
128
128
  QPAIR_COUNT=32
129
129
  NVME_TIMEOUT_US=20000000
130
130
 
131
- NVMF_MAX_SUBSYSTEMS=50000
131
+ NVMF_MAX_SUBSYSTEMS=50000
132
+ HA_JM_COUNT=3
@@ -176,7 +176,12 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
176
176
  logger.error("Pod is not running, exiting")
177
177
  return False
178
178
 
179
- time.sleep(20)
179
+ time.sleep(3)
180
+
181
+ snode.namespace = namespace
182
+ snode.spdk_cpu_mask = spdk_cpu_mask
183
+ snode.spdk_mem = spdk_mem
184
+ snode.spdk_image = spdk_image
180
185
 
181
186
  # creating RPCClient instance
182
187
  rpc_client = RPCClient(
@@ -216,50 +221,50 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
216
221
 
217
222
  cache_size = 0
218
223
  cache_bdev = None
219
- if supported_ssd_size < ssd_size:
220
- logger.info(f"SSD size is bigger than the supported size, will use split bdev: {split_factor}")
221
- ret = rpc_client.bdev_split(ssd_dev.nvme_bdev, split_factor)
222
- cache_bdev = ret[0]
223
- cache_size = int(ssd_dev.size/split_factor)
224
- snode.cache_split_factor = split_factor
225
- else:
226
- snode.cache_split_factor = 0
227
- cache_bdev = ssd_dev.nvme_bdev
228
- cache_size = ssd_dev.size
229
-
230
224
  # if supported_ssd_size < ssd_size:
231
- # logger.info(f"SSD size is bigger than the supported size, creating partition")
232
- #
233
- # nbd_device = rpc_client.nbd_start_disk(ssd_dev.nvme_bdev)
234
- # time.sleep(3)
235
- # if not nbd_device:
236
- # logger.error(f"Failed to start nbd dev")
237
- # return False
238
- #
239
- # jm_percent = int((supported_ssd_size/ssd_size) * 100)
240
- # result, error = cnode_api.make_gpt_partitions(nbd_device, jm_percent)
241
- # if error:
242
- # logger.error(f"Failed to make partitions")
243
- # logger.error(error)
244
- # return False
245
- # time.sleep(3)
246
- # rpc_client.nbd_stop_disk(nbd_device)
247
- # time.sleep(1)
248
- # rpc_client.bdev_nvme_detach_controller(ssd_dev.nvme_controller)
249
- # time.sleep(1)
250
- # rpc_client.bdev_nvme_controller_attach(ssd_dev.nvme_controller, ssd_dev.pcie_address)
251
- # time.sleep(1)
252
- # rpc_client.bdev_examine(ssd_dev.nvme_bdev)
253
- # time.sleep(1)
254
- #
255
- # cache_bdev = f"{ssd_dev.nvme_bdev}p1"
256
- # cache_size = int(supported_ssd_size)
257
- #
225
+ # logger.info(f"SSD size is bigger than the supported size, will use split bdev: {split_factor}")
226
+ # ret = rpc_client.bdev_split(ssd_dev.nvme_bdev, split_factor)
227
+ # cache_bdev = ret[0]
228
+ # cache_size = int(ssd_dev.size/split_factor)
229
+ # snode.cache_split_factor = split_factor
258
230
  # else:
259
- #
231
+ # snode.cache_split_factor = 0
260
232
  # cache_bdev = ssd_dev.nvme_bdev
261
233
  # cache_size = ssd_dev.size
262
234
 
235
+ if supported_ssd_size < ssd_size:
236
+ logger.info(f"SSD size is bigger than the supported size, creating partition")
237
+
238
+ nbd_device = rpc_client.nbd_start_disk(ssd_dev.nvme_bdev)
239
+ time.sleep(3)
240
+ if not nbd_device:
241
+ logger.error(f"Failed to start nbd dev")
242
+ return False
243
+
244
+ jm_percent = int((supported_ssd_size/ssd_size) * 100)
245
+ result, error = cnode_api.make_gpt_partitions(nbd_device, jm_percent)
246
+ if error:
247
+ logger.error(f"Failed to make partitions")
248
+ logger.error(error)
249
+ return False
250
+ time.sleep(3)
251
+ rpc_client.nbd_stop_disk(nbd_device)
252
+ time.sleep(1)
253
+ rpc_client.bdev_nvme_detach_controller(ssd_dev.nvme_controller)
254
+ time.sleep(1)
255
+ rpc_client.bdev_nvme_controller_attach(ssd_dev.nvme_controller, ssd_dev.pcie_address)
256
+ time.sleep(1)
257
+ rpc_client.bdev_examine(ssd_dev.nvme_bdev)
258
+ time.sleep(1)
259
+
260
+ cache_bdev = f"{ssd_dev.nvme_bdev}p1"
261
+ cache_size = int(supported_ssd_size)
262
+
263
+ else:
264
+
265
+ cache_bdev = ssd_dev.nvme_bdev
266
+ cache_size = ssd_dev.size
267
+
263
268
  logger.info(f"Cache size: {utils.humanbytes(cache_size)}")
264
269
 
265
270
  snode.cache_bdev = cache_bdev
@@ -297,7 +302,32 @@ def recreate(node_id):
297
302
  return False
298
303
 
299
304
  logger.info(f"Recreating caching node: {node_id}, status: {snode.status}")
300
- snode_api = CNodeClient(f"{snode.mgmt_ip}:5000")
305
+ cnode_api = CNodeClient(f"{snode.mgmt_ip}:5000")
306
+
307
+ if not cnode_api.spdk_process_is_up():
308
+ results, err = cnode_api.spdk_process_start(
309
+ snode.spdk_cpu_mask, snode.spdk_mem, snode.spdk_image, snode.mgmt_ip,
310
+ snode.rpc_port, snode.rpc_username, snode.rpc_password, snode.namespace)
311
+ if not results:
312
+ logger.error(f"Failed to start spdk: {err}")
313
+ return False
314
+
315
+ retries = 20
316
+ while retries > 0:
317
+ resp, _ = cnode_api.spdk_process_is_up()
318
+ if resp:
319
+ logger.info(f"Pod is up")
320
+ break
321
+ else:
322
+ logger.info("Pod is not running, waiting...")
323
+ time.sleep(3)
324
+ retries -= 1
325
+
326
+ if retries == 0:
327
+ logger.error("Pod is not running, exiting")
328
+ return False
329
+
330
+ time.sleep(5)
301
331
 
302
332
  # creating RPCClient instance
303
333
  rpc_client = RPCClient(
@@ -306,7 +336,7 @@ def recreate(node_id):
306
336
  timeout=60*5, retry=5)
307
337
 
308
338
  # get new node info after starting spdk
309
- node_info, _ = snode_api.info()
339
+ node_info, _ = cnode_api.info()
310
340
  # adding devices
311
341
  nvme_devs = addNvmeDevices(rpc_client, node_info['spdk_pcie_list'], snode)
312
342
  if not nvme_devs:
@@ -337,7 +367,7 @@ def recreate(node_id):
337
367
 
338
368
  if snode.lvols:
339
369
  for lvol in snode.lvols:
340
- ret = connect(snode.get_id(), lvol.lvol_id)
370
+ ret = connect(snode.get_id(), lvol.lvol_id, force=True)
341
371
  if ret:
342
372
  logger.info(f"connecting lvol {lvol.lvol_id} ... ok")
343
373
  else:
@@ -351,7 +381,7 @@ def recreate(node_id):
351
381
  return True
352
382
 
353
383
 
354
- def connect(caching_node_id, lvol_id):
384
+ def connect(caching_node_id, lvol_id, force=False):
355
385
  lvol = db_controller.get_lvol_by_id(lvol_id)
356
386
  if not lvol:
357
387
  logger.error(f"LVol not found: {lvol_id}")
@@ -383,7 +413,8 @@ def connect(caching_node_id, lvol_id):
383
413
  for clvol in cnode.lvols:
384
414
  if clvol.lvol_id == lvol_id:
385
415
  logger.info(f"Already connected, dev path: {clvol.device_path}")
386
- return False
416
+ if not force:
417
+ return False
387
418
 
388
419
  if cnode.cluster_id != pool.cluster_id:
389
420
  logger.error("Caching node and LVol are in different clusters")
@@ -423,7 +454,8 @@ def connect(caching_node_id, lvol_id):
423
454
  logger.debug(ret)
424
455
  if not ret:
425
456
  logger.error("Failed to create OCF bdev")
426
- return False
457
+ if not force:
458
+ return False
427
459
 
428
460
  # logger.info("Creating local subsystem")
429
461
  # create subsystem (local)
@@ -443,7 +475,8 @@ def connect(caching_node_id, lvol_id):
443
475
 
444
476
  if not ret:
445
477
  logger.error(f"Failed to add: {cach_bdev} to the subsystem: {subsystem_nqn}")
446
- return False
478
+ if not force:
479
+ return False
447
480
 
448
481
  logger.info("Connecting to local subsystem")
449
482
  # make nvme connect to nqn
@@ -451,7 +484,8 @@ def connect(caching_node_id, lvol_id):
451
484
  ret, _ = cnode_client.connect_nvme('127.0.0.1', "4420", subsystem_nqn)
452
485
  if not ret:
453
486
  logger.error("Failed to connect to local subsystem")
454
- return False
487
+ if not force:
488
+ return False
455
489
 
456
490
  if cnode.multipathing:
457
491
  snode = db_controller.get_storage_node_by_id(lvol.node_id)
@@ -460,7 +494,7 @@ def connect(caching_node_id, lvol_id):
460
494
  ret, _ = cnode_client.connect_nvme(ip, "4420", subsystem_nqn)
461
495
  break
462
496
 
463
- time.sleep(5)
497
+ time.sleep(3)
464
498
  cnode_info, _ = cnode_client.info()
465
499
  nvme_devs = cnode_info['nvme_devices']
466
500
  dev_path = None
@@ -625,8 +659,8 @@ def deploy(ifname):
625
659
  f"DOCKER_IP={dev_ip}"
626
660
  ]
627
661
  )
628
- logger.info("Pulling SPDK images")
629
- node_docker.images.pull(constants.SIMPLY_BLOCK_DOCKER_IMAGE)
662
+ logger.info(f"Pulling SPDK image {constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE}")
663
+ node_docker.images.pull(constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE)
630
664
  return f"{dev_ip}:5000"
631
665
 
632
666