sbcli-dev 3.8.85__zip → 3.8.86__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.85 → sbcli_dev-3.8.86}/PKG-INFO +1 -1
  2. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/env_var +1 -1
  3. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/storage_node.py +2 -0
  5. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/rpc_client.py +5 -0
  6. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/storage_node_ops.py +50 -4
  7. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/utils.py +21 -10
  8. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +3 -3
  9. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/README.md +0 -0
  10. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/pyproject.toml +0 -0
  11. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  12. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  13. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/entry_points.txt +0 -0
  14. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/requires.txt +0 -0
  15. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/top_level.txt +0 -0
  16. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/setup.cfg +0 -0
  17. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/setup.py +0 -0
  18. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_cli/cli.py +0 -0
  19. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_cli/main.py +0 -0
  20. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/__init__.py +0 -0
  21. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/cluster_ops.py +0 -0
  22. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/cnode_client.py +0 -0
  23. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/compute_node_ops.py +0 -0
  24. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/constants.py +0 -0
  25. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/__init__.py +0 -0
  26. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  27. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/cluster_events.py +0 -0
  28. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/device_controller.py +0 -0
  29. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/device_events.py +0 -0
  30. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/events_controller.py +0 -0
  31. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/health_controller.py +0 -0
  32. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/lvol_controller.py +0 -0
  33. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/lvol_events.py +0 -0
  34. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/mgmt_events.py +0 -0
  35. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/pool_controller.py +0 -0
  36. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/pool_events.py +0 -0
  37. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  38. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/snapshot_events.py +0 -0
  39. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/storage_events.py +0 -0
  40. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/tasks_controller.py +0 -0
  41. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/tasks_events.py +0 -0
  42. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/distr_controller.py +0 -0
  43. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/kv_store.py +0 -0
  44. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/mgmt_node_ops.py +0 -0
  45. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/__init__.py +0 -0
  46. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/base_model.py +0 -0
  47. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/caching_node.py +0 -0
  48. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/cluster.py +0 -0
  49. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/compute_node.py +0 -0
  50. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/deployer.py +0 -0
  51. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/events.py +0 -0
  52. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/global_settings.py +0 -0
  53. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/iface.py +0 -0
  54. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/job_schedule.py +0 -0
  55. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/lvol_model.py +0 -0
  56. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/mgmt_node.py +0 -0
  57. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/nvme_device.py +0 -0
  58. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/pool.py +0 -0
  59. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/port_stat.py +0 -0
  60. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/snapshot.py +0 -0
  61. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/stats.py +0 -0
  62. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/pci_utils.py +0 -0
  63. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/__init__.py +0 -0
  64. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  65. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  66. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  67. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/config_docker.sh +0 -0
  68. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboard.yml +0 -0
  69. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  70. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  71. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  72. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  73. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  74. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  75. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/datasource.yml +0 -0
  76. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/db_config_double.sh +0 -0
  77. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/db_config_single.sh +0 -0
  78. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  79. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  80. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  81. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/haproxy.cfg +0 -0
  82. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/install_deps.sh +0 -0
  83. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/objstore.yml +0 -0
  84. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/prometheus.yml +0 -0
  85. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/run_ssh.sh +0 -0
  86. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/set_db_config.sh +0 -0
  87. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  88. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/__init__.py +0 -0
  89. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  90. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/distr_event_collector.py +0 -0
  95. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/health_check_service.py +0 -0
  96. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/install_service.sh +0 -0
  97. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/log_agg_service.py +0 -0
  98. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/lvol_monitor.py +0 -0
  99. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  100. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  101. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  102. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/new_device_discovery.py +0 -0
  103. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/port_stat_collector.py +0 -0
  104. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/remove_service.sh +0 -0
  105. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/service_template.service +0 -0
  106. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  107. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/storage_node_monitor.py +0 -0
  108. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  109. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  110. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  111. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  112. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  113. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/shell_utils.py +0 -0
  114. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/snode_client.py +0 -0
  115. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/__init__.py +0 -0
  116. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/app.py +0 -0
  117. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/auth_middleware.py +0 -0
  118. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/__init__.py +0 -0
  119. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  120. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  121. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  122. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  123. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  124. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/snode_ops.py +0 -0
  125. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  126. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  127. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  128. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  129. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_device.py +0 -0
  130. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  131. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  132. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  133. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  134. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  135. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/caching_node_app.py +0 -0
  136. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/caching_node_app_k8s.py +0 -0
  137. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/node_utils.py +0 -0
  138. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/node_webapp.py +0 -0
  139. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/snode_app.py +0 -0
  140. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/snode_app_k8s.py +0 -0
  141. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/delete.py +0 -0
  142. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/deploy.py +0 -0
  143. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  144. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  145. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/is_up.py +0 -0
  146. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/list_deps.py +0 -0
  147. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/rpac.yaml +0 -0
  148. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/tst.py +0 -0
  149. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  150. {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/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.85
3
+ Version: 3.8.86
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.85
2
+ SIMPLY_BLOCK_VERSION=3.8.86
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.85
3
+ Version: 3.8.86
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -91,6 +91,8 @@ class StorageNode(BaseModel):
91
91
  "alceml_cpu_index": {"type": int, "default": 0},
92
92
  "alceml_worker_cpu_index": {"type": int, "default": 0},
93
93
  "distrib_cpu_index": {"type": int, "default": 0},
94
+ "jc_singleton_mask": {"type": int, "default": 0},
95
+
94
96
 
95
97
  "distrib_cpu_mask": {"type": str, "default": ""},
96
98
 
@@ -728,6 +728,11 @@ class RPCClient:
728
728
  params = {"poll_groups_mask": poll_groups_mask}
729
729
  return self._request("nvmf_set_config", params)
730
730
 
731
+ def jc_set_hint_lcpu_mask(self, jc_singleton_mask):
732
+ params = {"hint_lcpu_mask": int(jc_singleton_mask, 16)}
733
+ return self._request("jc_set_hint_lcpu_mask", params)
734
+
735
+
731
736
  def thread_get_stats(self):
732
737
  return self._request("thread_get_stats")
733
738
 
@@ -578,10 +578,13 @@ def _prepare_cluster_devices_partitions(snode, devices):
578
578
  if not new_device:
579
579
  logger.error("failed to create dev stack")
580
580
  return False
581
- new_device.cluster_device_order = dev_order
582
- dev_order += 1
581
+ if nvme.status == NVMeDevice.STATUS_NEW:
582
+ new_device.status = NVMeDevice.STATUS_NEW
583
+ else:
584
+ new_device.cluster_device_order = dev_order
585
+ dev_order += 1
586
+ device_events.device_create(new_device)
583
587
  new_devices.append(new_device)
584
- device_events.device_create(new_device)
585
588
 
586
589
  snode.nvme_devices = new_devices
587
590
 
@@ -877,6 +880,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
877
880
  alceml_worker_cpu_index = 0
878
881
  distrib_cpu_index = 0
879
882
 
883
+
880
884
  poller_cpu_cores = []
881
885
 
882
886
  if not spdk_cpu_mask:
@@ -890,11 +894,13 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
890
894
  print(f"ERROR: The provided cpu mask {spdk_cpu_mask} has values greater than 63, which is not allowed")
891
895
  return False
892
896
  if len(spdk_cores) >= 4:
893
- app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_worker_cpu_cores, distrib_cpu_cores = utils.calculate_core_allocation(
897
+ app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_worker_cpu_cores, distrib_cpu_cores, jc_singleton_core = utils.calculate_core_allocation(
894
898
  spdk_cores)
895
899
 
896
900
  pollers_mask = utils.generate_mask(poller_cpu_cores)
897
901
  app_thread_mask = utils.generate_mask(app_thread_core)
902
+ if jc_singleton_core:
903
+ jc_singleton_mask = utils.decimal_to_hex_power_of_2(jc_singleton_core[0])
898
904
  #spdk_cpu_mask = utils.generate_mask(spdk_cores)
899
905
  jm_cpu_mask = utils.generate_mask(jm_cpu_core)
900
906
  #distrib_cpu_mask = utils.generate_mask(distrib_cpu_cores)
@@ -1057,6 +1063,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
1057
1063
  snode.alceml_cpu_cores = alceml_cpu_cores
1058
1064
  snode.alceml_worker_cpu_cores = alceml_worker_cpu_cores
1059
1065
  snode.distrib_cpu_cores = distrib_cpu_cores
1066
+ snode.jc_singleton_mask = jc_singleton_mask or 0
1060
1067
 
1061
1068
  snode.poller_cpu_cores = poller_cpu_cores or []
1062
1069
 
@@ -1127,6 +1134,13 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
1127
1134
  logger.error("Failed to set nvme options")
1128
1135
  return False
1129
1136
 
1137
+ # 7- set jc singleton mask
1138
+ if snode.jc_singleton_mask:
1139
+ ret = rpc_client.jc_set_hint_lcpu_mask(snode.jc_singleton_mask)
1140
+ if not ret:
1141
+ logger.error("Failed to set jc singleton mask")
1142
+ return False
1143
+
1130
1144
  # get new node info after starting spdk
1131
1145
  node_info, _ = snode_api.info()
1132
1146
 
@@ -1563,6 +1577,13 @@ def restart_storage_node(
1563
1577
  logger.error("Failed to set nvme options")
1564
1578
  return False
1565
1579
 
1580
+ # 7- set jc singleton mask
1581
+ if snode.jc_singleton_mask:
1582
+ ret = rpc_client.jc_set_hint_lcpu_mask(snode.jc_singleton_mask)
1583
+ if not ret:
1584
+ logger.error("Failed to set jc singleton mask")
1585
+ return False
1586
+
1566
1587
  node_info, _ = snode_api.info()
1567
1588
  nvme_devs = addNvmeDevices(snode, node_info['spdk_pcie_list'])
1568
1589
  if not nvme_devs:
@@ -2500,6 +2521,31 @@ def recreate_lvstore(snode):
2500
2521
  return True
2501
2522
 
2502
2523
 
2524
+ def get_next_ha_jm_names(current_node):
2525
+ db_controller = DBController(KVStore())
2526
+ jm_list = []
2527
+ if current_node.jm_device:
2528
+ jm_list.append(current_node.jm_device.jm_bdev)
2529
+ else:
2530
+ jm_list.append("JM_LOCAL")
2531
+
2532
+ jm_count = {}
2533
+ for node in db_controller.get_storage_nodes_by_cluster_id(current_node.cluster_id):
2534
+ if node.get_id() == current_node.get_id() or node.status != StorageNode.STATUS_ONLINE:
2535
+ continue
2536
+ if node.jm_device:
2537
+ jm_count[node.jm_device.jm_bdev] = 1 + jm_count.get(node.jm_device.jm_bdev, 0)
2538
+ for rem_jm_device in node.remote_jm_devices:
2539
+ jm_count[rem_jm_device.jm_bdev] = 1 + jm_count.get(rem_jm_device.jm_bdev, 0)
2540
+
2541
+ jm_count = dict(sorted(jm_count.items(), key=lambda x: x[1]))
2542
+
2543
+ jm_list.append(f"remote_{list(jm_count.keys())[0].jm_bdev}n1")
2544
+ jm_list.append(f"remote_{list(jm_count.keys())[1].jm_bdev}n1")
2545
+
2546
+ return jm_list
2547
+
2548
+
2503
2549
  def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blocks, max_size, nodes):
2504
2550
  lvstore_stack = []
2505
2551
  distrib_list = []
@@ -350,59 +350,67 @@ def calculate_core_allocation(cpu_cores):
350
350
  if len(cpu_cores) == 23:
351
351
  app_thread_core = [cpu_cores[pos - 1] for pos in [16]]
352
352
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [17, 22]]
353
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [6, 7, 8, 14, 15, 18, 19, 20, 23]]
353
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [6, 7, 8, 14, 15, 18, 19, 20]]
354
354
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2, 3]]
355
355
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [13, 21]]
356
356
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 9, 10, 11, 12]]
357
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [23]]
357
358
  elif len(cpu_cores) == 21:
358
359
  app_thread_core = [cpu_cores[pos - 1] for pos in [14]]
359
360
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [15, 21]]
360
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 7, 13, 16, 17, 18]]
361
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 7, 13, 16, 17]]
361
362
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
362
363
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [12, 20]]
363
364
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 8, 9, 10, 11, 19]]
365
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [18]]
364
366
  elif len(cpu_cores) == 19:
365
367
  app_thread_core = [cpu_cores[pos - 1] for pos in [13]]
366
368
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [14]]
367
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 7, 12, 15, 16, 17]]
369
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 7, 12, 15, 16]]
368
370
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
369
371
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [11, 19]]
370
372
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 8, 9, 10, 18]]
373
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [17]]
371
374
  elif len(cpu_cores) == 17:
372
375
  app_thread_core = [cpu_cores[pos - 1] for pos in [12]]
373
376
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [13]]
374
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 11, 14, 15]]
377
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 11, 14]]
375
378
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
376
379
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [10]]
377
380
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 7, 8, 9, 16, 17]]
381
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [15]]
378
382
  elif len(cpu_cores) == 15:
379
383
  app_thread_core = [cpu_cores[pos - 1] for pos in [11]]
380
384
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [12]]
381
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 10, 13, 14]]
385
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 10, 13]]
382
386
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
383
387
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [9]]
384
388
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 7, 8, 15]]
389
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [14]]
385
390
  elif len(cpu_cores) == 13:
386
391
  app_thread_core = [cpu_cores[pos - 1] for pos in [9]]
387
392
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [10]]
388
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 5, 11, 12]]
393
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 5, 11]]
389
394
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
390
395
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [8]]
391
396
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 6, 7, 13]]
397
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [12]]
392
398
  elif len(cpu_cores) == 11:
393
399
  app_thread_core = [cpu_cores[pos - 1] for pos in [8]]
394
400
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [9]]
395
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 10, 11]]
401
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 10]]
396
402
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
397
403
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [7]]
398
404
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 5, 6]]
405
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [11]]
399
406
  elif len(cpu_cores) == 9:
400
407
  app_thread_core = [cpu_cores[pos - 1] for pos in [7]]
401
408
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [8]]
402
- poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 9]]
409
+ poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4]]
403
410
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
404
411
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [4, 9]]
405
412
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 5, 6]]
413
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [7]]
406
414
  elif len(cpu_cores) == 7:
407
415
  app_thread_core = [cpu_cores[pos - 1] for pos in [6]]
408
416
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [7]]
@@ -410,6 +418,7 @@ def calculate_core_allocation(cpu_cores):
410
418
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
411
419
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [1]]
412
420
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 4]]
421
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [6]]
413
422
  elif len(cpu_cores) == 5:
414
423
  app_thread_core = [cpu_cores[pos - 1] for pos in [5]]
415
424
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [4]]
@@ -417,6 +426,7 @@ def calculate_core_allocation(cpu_cores):
417
426
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
418
427
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [1]]
419
428
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 3]]
429
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [5]]
420
430
  elif len(cpu_cores) == 4:
421
431
  app_thread_core = [cpu_cores[pos - 1] for pos in [4]]
422
432
  jm_cpu_core = [cpu_cores[pos - 1] for pos in [4]]
@@ -424,10 +434,11 @@ def calculate_core_allocation(cpu_cores):
424
434
  alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
425
435
  alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [1]]
426
436
  distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 3]]
437
+ jc_singleton_core = [cpu_cores[pos - 1] for pos in [4]]
427
438
  else:
428
- app_thread_core = jm_cpu_core = poller_cpu_cores = alceml_cpu_cores = alceml_cpu_worker_cores = distrib_cpu_cores = []
439
+ app_thread_core = jm_cpu_core = poller_cpu_cores = alceml_cpu_cores = alceml_cpu_worker_cores = distrib_cpu_cores = jc_singleton_core = []
429
440
 
430
- return app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_cpu_worker_cores, distrib_cpu_cores
441
+ return app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_cpu_worker_cores, distrib_cpu_cores, jc_singleton_core
431
442
 
432
443
 
433
444
  def generate_mask(cores):
@@ -89,10 +89,10 @@ spec:
89
89
  mountPath: /script
90
90
  resources:
91
91
  limits:
92
- hugepages-2Mi: {{ MEM_GEGA }}Gi
93
- memory: 4096Mi
92
+ hugepages-2Mi: 20Gi
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