sbcli-dev 3.8.93__zip → 3.8.95__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/PKG-INFO +1 -1
  2. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/env_var +1 -1
  3. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_cli/cli.py +6 -10
  5. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/cluster_ops.py +16 -6
  6. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/constants.py +6 -6
  7. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/lvol_controller.py +22 -21
  8. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/tasks_controller.py +4 -2
  9. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/rpc_client.py +7 -0
  10. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/storage_node_ops.py +14 -4
  11. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_cluster.py +1 -4
  12. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_storage_node.py +6 -7
  13. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +2 -2
  14. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/README.md +0 -0
  15. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/pyproject.toml +0 -0
  16. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  17. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  18. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/sbcli_dev.egg-info/entry_points.txt +0 -0
  19. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/sbcli_dev.egg-info/requires.txt +0 -0
  20. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/sbcli_dev.egg-info/top_level.txt +0 -0
  21. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/setup.cfg +0 -0
  22. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/setup.py +0 -0
  23. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_cli/main.py +0 -0
  24. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/__init__.py +0 -0
  25. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/cnode_client.py +0 -0
  26. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/compute_node_ops.py +0 -0
  27. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/__init__.py +0 -0
  28. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  29. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/cluster_events.py +0 -0
  30. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/device_controller.py +0 -0
  31. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/device_events.py +0 -0
  32. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/events_controller.py +0 -0
  33. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/health_controller.py +0 -0
  34. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/lvol_events.py +0 -0
  35. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/mgmt_events.py +0 -0
  36. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/pool_controller.py +0 -0
  37. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/pool_events.py +0 -0
  38. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  39. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/snapshot_events.py +0 -0
  40. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/storage_events.py +0 -0
  41. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/controllers/tasks_events.py +0 -0
  42. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/distr_controller.py +0 -0
  43. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/kv_store.py +0 -0
  44. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/mgmt_node_ops.py +0 -0
  45. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/__init__.py +0 -0
  46. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/base_model.py +0 -0
  47. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/caching_node.py +0 -0
  48. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/cluster.py +0 -0
  49. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/compute_node.py +0 -0
  50. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/deployer.py +0 -0
  51. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/events.py +0 -0
  52. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/global_settings.py +0 -0
  53. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/iface.py +0 -0
  54. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/job_schedule.py +0 -0
  55. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/lvol_model.py +0 -0
  56. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/mgmt_node.py +0 -0
  57. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/nvme_device.py +0 -0
  58. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/pool.py +0 -0
  59. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/port_stat.py +0 -0
  60. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/snapshot.py +0 -0
  61. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/stats.py +0 -0
  62. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/models/storage_node.py +0 -0
  63. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/pci_utils.py +0 -0
  64. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/__init__.py +0 -0
  65. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  66. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  67. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  68. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/config_docker.sh +0 -0
  69. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/dashboard.yml +0 -0
  70. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  71. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  72. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  73. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  74. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  75. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  76. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/datasource.yml +0 -0
  77. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/db_config_double.sh +0 -0
  78. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/db_config_single.sh +0 -0
  79. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  80. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  81. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  82. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/haproxy.cfg +0 -0
  83. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/install_deps.sh +0 -0
  84. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/objstore.yml +0 -0
  85. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/prometheus.yml +0 -0
  86. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/run_ssh.sh +0 -0
  87. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/set_db_config.sh +0 -0
  88. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  89. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/__init__.py +0 -0
  90. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  91. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/caching_node_monitor.py +0 -0
  92. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/cap_monitor.py +0 -0
  93. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  94. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/device_monitor.py +0 -0
  95. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/distr_event_collector.py +0 -0
  96. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/health_check_service.py +0 -0
  97. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/install_service.sh +0 -0
  98. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/log_agg_service.py +0 -0
  99. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/lvol_monitor.py +0 -0
  100. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  101. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  102. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  103. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/new_device_discovery.py +0 -0
  104. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/port_stat_collector.py +0 -0
  105. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/remove_service.sh +0 -0
  106. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/service_template.service +0 -0
  107. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  108. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/storage_node_monitor.py +0 -0
  109. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  110. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  111. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  112. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  113. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  114. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/shell_utils.py +0 -0
  115. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/snode_client.py +0 -0
  116. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_core/utils.py +0 -0
  117. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/__init__.py +0 -0
  118. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/app.py +0 -0
  119. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/auth_middleware.py +0 -0
  120. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/__init__.py +0 -0
  121. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  122. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  123. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  124. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  125. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  126. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/snode_ops.py +0 -0
  127. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  128. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  129. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  130. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_device.py +0 -0
  131. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  132. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  133. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  134. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  135. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/caching_node_app.py +0 -0
  136. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/caching_node_app_k8s.py +0 -0
  137. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/node_utils.py +0 -0
  138. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/node_webapp.py +0 -0
  139. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/snode_app.py +0 -0
  140. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/snode_app_k8s.py +0 -0
  141. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/delete.py +0 -0
  142. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/deploy.py +0 -0
  143. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  144. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  145. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/is_up.py +0 -0
  146. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/list_deps.py +0 -0
  147. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/rpac.yaml +0 -0
  148. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/static/tst.py +0 -0
  149. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  150. {sbcli_dev-3.8.93 → sbcli_dev-3.8.95}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.8.93
3
+ Version: 3.8.95
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=3.8.93
2
+ SIMPLY_BLOCK_VERSION=3.8.95
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.8.93
3
+ Version: 3.8.95
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -39,13 +39,13 @@ class CLIWrapper:
39
39
  sub_command.add_argument("cluster_id", help='UUID of the cluster to which the node will belong')
40
40
  sub_command.add_argument("node_ip", help='IP of storage node to add')
41
41
  sub_command.add_argument("ifname", help='Management interface name')
42
- sub_command.add_argument("--partitions", help='Number of partitions to create per device', type=int, default=0)
42
+ sub_command.add_argument("--partitions", help='Number of partitions to create per device', type=int, default=1)
43
43
  sub_command.add_argument("--jm-percent", help='Number in percent to use for JM from each device',
44
44
  type=int, default=3, dest='jm_percent')
45
45
  sub_command.add_argument("--data-nics", help='Data interface names', nargs='+', dest='data_nics')
46
46
  sub_command.add_argument("--max-lvol", help='Max lvol per storage node', dest='max_lvol', type=int)
47
- sub_command.add_argument("--max-snap", help='Max snapshot per storage node', dest='max_snap', type=int)
48
- sub_command.add_argument("--max-prov", help='Max provisioning size of all storage nodes', dest='max_prov')
47
+ sub_command.add_argument("--max-snap", help='Max snapshot per storage node', dest='max_snap', type=int, default=500)
48
+ sub_command.add_argument("--max-prov", help='Maximum amount of GB to be provisioned via all storage nodes', dest='max_prov')
49
49
  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=4)
50
50
  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)
51
51
  sub_command.add_argument("--cpu-mask", help='SPDK app CPU mask, default is all cores found', dest='spdk_cpu_mask')
@@ -56,7 +56,7 @@ class CLIWrapper:
56
56
  sub_command.add_argument("--iobuf_small_bufsize", help='bdev_set_options param', dest='small_bufsize', type=int, default=0)
57
57
  sub_command.add_argument("--iobuf_large_bufsize", help='bdev_set_options param', dest='large_bufsize', type=int, default=0)
58
58
  sub_command.add_argument("--enable-test-device", help='Enable creation of test device', action='store_true')
59
- sub_command.add_argument("--enable-ha-jm", help='Enable HA JM for ditrib creation', action='store_true')
59
+ sub_command.add_argument("--disable-ha-jm", help='Disable HA JM for distrib creation', action='store_false', dest='enable_ha_jm', default=True)
60
60
 
61
61
 
62
62
  # delete storage node
@@ -706,8 +706,6 @@ class CLIWrapper:
706
706
  elif sub_command == "add-node":
707
707
  if not args.max_lvol:
708
708
  self.parser.error(f"Mandatory argument '--max-lvol' not provided for {sub_command}")
709
- if not args.max_snap:
710
- self.parser.error(f"Mandatory argument '--max-snap' not provided for {sub_command}")
711
709
  if not args.max_prov:
712
710
  self.parser.error(f"Mandatory argument '--max-prov' not provided for {sub_command}")
713
711
  # if not args.spdk_cpu_mask:
@@ -732,13 +730,11 @@ class CLIWrapper:
732
730
 
733
731
  max_lvol = args.max_lvol
734
732
  max_snap = args.max_snap
735
- max_prov = self.parse_size(args.max_prov)
733
+ max_prov = args.max_prov
736
734
  number_of_devices = args.number_of_devices
737
735
  enable_test_device = args.enable_test_device
738
736
  enable_ha_jm = args.enable_ha_jm
739
737
  number_of_distribs = args.number_of_distribs
740
- if max_prov < 1 * 1024 * 1024 * 1024:
741
- return f"Max provisioning memory:{args.max_prov} must be larger than 1G"
742
738
 
743
739
  out = storage_ops.add_node(
744
740
  cluster_id=cluster_id,
@@ -781,7 +777,7 @@ class CLIWrapper:
781
777
 
782
778
  max_lvol = args.max_lvol
783
779
  max_snap = args.max_snap
784
- max_prov = self.parse_size(args.max_prov) if args.max_prov else 0
780
+ max_prov = args.max_prov if args.max_prov else 0
785
781
  number_of_devices = args.number_of_devices
786
782
 
787
783
  small_bufsize = args.small_bufsize
@@ -456,9 +456,14 @@ def cluster_set_read_only(cl_id):
456
456
  if ret:
457
457
  st = db_controller.get_storage_nodes_by_cluster_id(cl_id)
458
458
  for node in st:
459
- for dev in node.nvme_devices:
460
- if dev.status == NVMeDevice.STATUS_ONLINE:
461
- device_controller.device_set_read_only(dev.get_id())
459
+ rpc_client = RPCClient(
460
+ node.mgmt_ip, node.rpc_port,
461
+ node.rpc_username, node.rpc_password, timeout=5, retry=2)
462
+
463
+ for bdev in node.lvstore_stack:
464
+ if bdev['type'] == "bdev_distr":
465
+ rpc_client.bdev_distrib_toggle_cluster_full(bdev['name'], cluster_full=True)
466
+
462
467
  return True
463
468
 
464
469
 
@@ -476,9 +481,14 @@ def cluster_set_active(cl_id):
476
481
  if ret:
477
482
  st = db_controller.get_storage_nodes_by_cluster_id(cl_id)
478
483
  for node in st:
479
- for dev in node.nvme_devices:
480
- if dev.status == NVMeDevice.STATUS_READONLY:
481
- device_controller.device_set_online(dev.get_id())
484
+ rpc_client = RPCClient(
485
+ node.mgmt_ip, node.rpc_port,
486
+ node.rpc_username, node.rpc_password, timeout=5, retry=2)
487
+
488
+ for bdev in node.lvstore_stack:
489
+ if bdev['type'] == "bdev_distr":
490
+ rpc_client.bdev_distrib_toggle_cluster_full(bdev['name'], cluster_full=False)
491
+
482
492
  return True
483
493
 
484
494
 
@@ -37,12 +37,12 @@ DEVICE_OVERLOAD_CAPACITY_THRESHOLD = 50
37
37
  CLUSTER_NQN = "nqn.2023-02.io.simplyblock"
38
38
 
39
39
  weights = {
40
- "lvol": 50,
41
- "cpu": 10,
42
- "r_io": 10,
43
- "w_io": 10,
44
- "r_b": 10,
45
- "w_b": 10
40
+ "lvol": 100,
41
+ # "cpu": 10,
42
+ # "r_io": 10,
43
+ # "w_io": 10,
44
+ # "r_b": 10,
45
+ # "w_b": 10
46
46
  }
47
47
 
48
48
 
@@ -186,31 +186,32 @@ def get_ha_jm_names(current_node, snode_list):
186
186
 
187
187
  def _get_next_3_nodes(cluster_id, lvol_size=0):
188
188
  snodes = db_controller.get_storage_nodes_by_cluster_id(cluster_id)
189
- online_nodes = []
189
+ # online_nodes = []
190
190
  node_stats = {}
191
191
  for node in snodes:
192
192
  if node.status == node.STATUS_ONLINE:
193
193
  # Validate Eligible nodes for adding lvol
194
- snode_api = SNodeClient(node.api_endpoint)
195
- result, _ = snode_api.info()
196
- memory_free = result["memory_details"]["free"]
197
- huge_free = result["memory_details"]["huge_free"]
198
- total_node_capacity = db_controller.get_snode_size(node.get_id())
199
- error = utils.validate_add_lvol_or_snap_on_node(memory_free, huge_free, node.max_lvol, lvol_size, total_node_capacity, len(node.lvols))
200
- if error:
201
- logger.warning(error)
202
- continue
203
-
204
- online_nodes.append(node)
205
- node_stat_list = db_controller.get_node_stats(node, limit=1000)
206
- combined_record = utils.sum_records(node_stat_list)
194
+ # snode_api = SNodeClient(node.api_endpoint)
195
+ # result, _ = snode_api.info()
196
+ # memory_free = result["memory_details"]["free"]
197
+ # huge_free = result["memory_details"]["huge_free"]
198
+ # total_node_capacity = db_controller.get_snode_size(node.get_id())
199
+ # error = utils.validate_add_lvol_or_snap_on_node(memory_free, huge_free, node.max_lvol, lvol_size, total_node_capacity, len(node.lvols))
200
+ # if error:
201
+ # logger.warning(error)
202
+ # continue
203
+ #
204
+ # online_nodes.append(node)
205
+ # node_stat_list = db_controller.get_node_stats(node, limit=1000)
206
+ # combined_record = utils.sum_records(node_stat_list)
207
207
  node_st = {
208
- "lvol": len(node.lvols),
209
- "cpu": 1 + (node.cpu * node.cpu_hz),
210
- "r_io": combined_record.read_io_ps,
211
- "w_io": combined_record.write_io_ps,
212
- "r_b": combined_record.read_bytes_ps,
213
- "w_b": combined_record.write_bytes_ps}
208
+ "lvol": len(node.lvols) or 1,
209
+ # "cpu": 1 + (node.cpu * node.cpu_hz),
210
+ # "r_io": combined_record.read_io_ps,
211
+ # "w_io": combined_record.write_io_ps,
212
+ # "r_b": combined_record.read_bytes_ps,
213
+ # "w_b": combined_record.write_bytes_ps
214
+ }
214
215
 
215
216
  node_stats[node.get_id()] = node_st
216
217
 
@@ -243,7 +244,7 @@ def _get_next_3_nodes(cluster_id, lvol_size=0):
243
244
  #############
244
245
 
245
246
  selected_node_ids = []
246
- while len(selected_node_ids) < min(len(online_nodes), 3):
247
+ while len(selected_node_ids) < min(len(node_stats), 3):
247
248
  r_index = random.randint(0, n_start)
248
249
  print(f"Random is {r_index}/{n_start}")
249
250
  for node_id in node_start_end:
@@ -87,11 +87,13 @@ def list_tasks(cluster_id, is_json=False):
87
87
  logger.error("Cluster not found: %s", cluster_id)
88
88
  return False
89
89
 
90
+ data = []
90
91
  tasks = db_controller.get_job_tasks(cluster_id)
91
92
  if tasks and is_json is True:
92
- return json.dumps(tasks, indent=2)
93
+ for t in tasks:
94
+ data.append(t.get_clean_dict())
95
+ return json.dumps(data, indent=2)
93
96
 
94
- data = []
95
97
  for task in tasks:
96
98
  data.append({
97
99
  "Task ID": task.uuid,
@@ -795,3 +795,10 @@ class RPCClient:
795
795
  def bdev_lvol_inflate(self, name):
796
796
  params = {"name": name}
797
797
  return self._request("bdev_lvol_inflate", params)
798
+
799
+ def bdev_distrib_toggle_cluster_full(self, name, cluster_full=False):
800
+ params = {
801
+ "name": name,
802
+ "cluster_full": cluster_full,
803
+ }
804
+ return self._request("bdev_distrib_toggle_cluster_full", params)
@@ -923,7 +923,11 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
923
923
  if not number_of_devices:
924
924
  logger.error("Unsupported instance type please specify --number-of-devices.")
925
925
  return False
926
-
926
+ try:
927
+ max_prov = int(max_prov)
928
+ max_prov = f"{max_prov}g"
929
+ except Exception:
930
+ pass
927
931
  max_prov = int(utils.parse_size(max_prov))
928
932
  number_of_split = num_partitions_per_dev if num_partitions_per_dev else 1
929
933
  number_of_alceml_devices = number_of_devices * number_of_split
@@ -1396,6 +1400,10 @@ def restart_storage_node(
1396
1400
  if force is False:
1397
1401
  return False
1398
1402
 
1403
+ logger.info("Setting node state to restarting")
1404
+ set_node_status(node_id, StorageNode.STATUS_RESTARTING)
1405
+ snode = db_controller.get_storage_node_by_id(node_id)
1406
+
1399
1407
  if node_ip:
1400
1408
  if node_ip != snode.api_endpoint:
1401
1409
  logger.info(f"Restarting on new node with ip: {node_ip}")
@@ -1419,9 +1427,6 @@ def restart_storage_node(
1419
1427
  snode.data_nics = data_nics
1420
1428
  snode.hostname = node_info['hostname']
1421
1429
 
1422
- logger.info("Setting node state to restarting")
1423
- set_node_status(node_id, StorageNode.STATUS_RESTARTING)
1424
-
1425
1430
  logger.info(f"Restarting Storage node: {snode.mgmt_ip}")
1426
1431
  snode_api = SNodeClient(snode.api_endpoint, timeout=5*60, retry=3)
1427
1432
  node_info, _ = snode_api.info()
@@ -1434,6 +1439,11 @@ def restart_storage_node(
1434
1439
  if max_snap:
1435
1440
  snode.max_snap = max_snap
1436
1441
  if max_prov:
1442
+ try:
1443
+ max_prov = int(max_prov)
1444
+ max_prov = f"{max_prov}g"
1445
+ except Exception:
1446
+ pass
1437
1447
  snode.max_prov = max_prov
1438
1448
  if spdk_image:
1439
1449
  snode.spdk_image = spdk_image
@@ -133,11 +133,8 @@ def cluster_get_tasks(uuid):
133
133
  if cluster.status == Cluster.STATUS_INACTIVE:
134
134
  return utils.get_response("Cluster is inactive")
135
135
 
136
- data = []
137
136
  tasks = tasks_controller.list_tasks(uuid, is_json=True)
138
- for t in tasks:
139
- data.append(t.get_clean_dict())
140
- return utils.get_response(data)
137
+ return utils.get_response(json.loads(tasks))
141
138
 
142
139
 
143
140
  @bp.route('/cluster/gracefulshutdown/<string:uuid>', methods=['PUT'])
@@ -186,9 +186,6 @@ def storage_node_add():
186
186
  if 'max_lvol' not in req_data:
187
187
  return utils.get_response_error("missing required param: max_lvol", 400)
188
188
 
189
- if 'max_snap' not in req_data:
190
- return utils.get_response_error("missing required param: max_snap", 400)
191
-
192
189
  if 'max_prov' not in req_data:
193
190
  return utils.get_response_error("missing required param: max_prov", 400)
194
191
 
@@ -196,9 +193,10 @@ def storage_node_add():
196
193
  node_ip = req_data['node_ip']
197
194
  ifname = req_data['ifname']
198
195
  max_lvol = int(req_data['max_lvol'])
199
- max_snap = int(req_data['max_snap'])
196
+ max_snap = int(req_data['max_snap'], 500)
200
197
  max_prov = req_data['max_prov']
201
198
  number_of_distribs = req_data.get('number_of_distribs', 4)
199
+ disable_ha_jm = req_data.get('disable_ha_jm', False)
202
200
 
203
201
  spdk_image = None
204
202
  if 'spdk_image' in req_data:
@@ -217,11 +215,11 @@ def storage_node_add():
217
215
  if 'namespace' in req_data:
218
216
  namespace = req_data['namespace']
219
217
 
220
- jm_percent = 0
218
+ jm_percent = 3
221
219
  if 'jm_percent' in req_data:
222
220
  jm_percent = int(req_data['jm_percent'])
223
221
 
224
- partitions = 0
222
+ partitions = 1
225
223
  if 'partitions' in req_data:
226
224
  partitions = int(req_data['partitions'])
227
225
 
@@ -263,7 +261,8 @@ def storage_node_add():
263
261
  "number_of_devices": number_of_devices,
264
262
  "enable_test_device": False,
265
263
  "number_of_distribs": number_of_distribs,
266
- "namespace": namespace})
264
+ "namespace": namespace,
265
+ "disable_ha_jm": disable_ha_jm})
267
266
 
268
267
  return utils.get_response(True)
269
268
 
@@ -90,9 +90,9 @@ spec:
90
90
  resources:
91
91
  limits:
92
92
  hugepages-2Mi: {{ MEM_GEGA }}Gi
93
- memory: 4096Mi
93
+ memory: 10Gi
94
94
  requests:
95
- memory: 4096Mi
95
+ memory: 10Gi
96
96
 
97
97
  - name: spdk-proxy-container
98
98
  image: {{ SIMPLYBLOCK_DOCKER_IMAGE }}
File without changes
File without changes
File without changes
File without changes