sbcli-pre 1.2.13__zip → 1.3.0__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 (139) hide show
  1. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/PKG-INFO +1 -1
  2. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/env_var +1 -2
  3. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/PKG-INFO +1 -1
  4. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/cluster_ops.py +2 -2
  5. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/constants.py +3 -1
  6. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/caching_node_controller.py +9 -3
  7. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/device_controller.py +10 -3
  8. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/lvol_controller.py +2 -2
  9. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/snapshot_controller.py +2 -2
  10. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/kv_store.py +3 -1
  11. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/storage_node.py +6 -3
  12. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/rpc_client.py +9 -9
  13. sbcli_pre-1.3.0/simplyblock_core/scripts/db_config_single.sh +2 -0
  14. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/install_deps.sh +1 -1
  15. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/storage_node_ops.py +54 -20
  16. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/utils.py +26 -22
  17. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/caching_node_ops.py +6 -2
  18. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/caching_node_ops_k8s.py +3 -0
  19. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/node_utils.py +4 -0
  20. sbcli_pre-1.2.13/simplyblock_core/scripts/db_config_single.sh +0 -1
  21. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/README.md +0 -0
  22. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/pyproject.toml +0 -0
  23. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/SOURCES.txt +0 -0
  24. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/dependency_links.txt +0 -0
  25. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/entry_points.txt +0 -0
  26. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/requires.txt +0 -0
  27. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/top_level.txt +0 -0
  28. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/setup.cfg +0 -0
  29. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/setup.py +0 -0
  30. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_cli/cli.py +0 -0
  31. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_cli/main.py +0 -0
  32. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/__init__.py +0 -0
  33. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/cnode_client.py +0 -0
  34. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/compute_node_ops.py +0 -0
  35. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/__init__.py +0 -0
  36. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/cluster_events.py +0 -0
  37. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/device_events.py +0 -0
  38. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/events_controller.py +0 -0
  39. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/health_controller.py +0 -0
  40. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/lvol_events.py +0 -0
  41. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/mgmt_events.py +0 -0
  42. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/pool_controller.py +0 -0
  43. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/pool_events.py +0 -0
  44. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/snapshot_events.py +0 -0
  45. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/storage_events.py +0 -0
  46. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/tasks_controller.py +0 -0
  47. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/tasks_events.py +0 -0
  48. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/distr_controller.py +0 -0
  49. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/mgmt_node_ops.py +0 -0
  50. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/__init__.py +0 -0
  51. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/base_model.py +0 -0
  52. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/caching_node.py +0 -0
  53. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/cluster.py +0 -0
  54. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/compute_node.py +0 -0
  55. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/deployer.py +0 -0
  56. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/events.py +0 -0
  57. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/global_settings.py +0 -0
  58. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/iface.py +0 -0
  59. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/job_schedule.py +0 -0
  60. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/lvol_model.py +0 -0
  61. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/mgmt_node.py +0 -0
  62. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/nvme_device.py +0 -0
  63. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/pool.py +0 -0
  64. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/port_stat.py +0 -0
  65. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/snapshot.py +0 -0
  66. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/stats.py +0 -0
  67. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/pci_utils.py +0 -0
  68. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/__init__.py +0 -0
  69. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  70. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  71. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  72. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/config_docker.sh +0 -0
  73. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  74. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  75. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  76. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  77. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  78. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  79. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/datasource.yml +0 -0
  80. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/db_config_double.sh +0 -0
  81. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  82. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  83. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  84. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/haproxy.cfg +0 -0
  85. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/prometheus.yml +0 -0
  86. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/run_ssh.sh +0 -0
  87. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/set_db_config.sh +0 -0
  88. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  89. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/__init__.py +0 -0
  90. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/caching_node_monitor.py +0 -0
  91. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/cap_monitor.py +0 -0
  92. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  93. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/device_monitor.py +0 -0
  94. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/distr_event_collector.py +0 -0
  95. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/health_check_service.py +0 -0
  96. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/install_service.sh +0 -0
  97. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/log_agg_service.py +0 -0
  98. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/lvol_monitor.py +0 -0
  99. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  100. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  101. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/port_stat_collector.py +0 -0
  102. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/remove_service.sh +0 -0
  103. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/service_template.service +0 -0
  104. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/storage_node_monitor.py +0 -0
  105. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  106. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  107. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/shell_utils.py +0 -0
  108. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/snode_client.py +0 -0
  109. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/__init__.py +0 -0
  110. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/app.py +0 -0
  111. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/auth_middleware.py +0 -0
  112. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/__init__.py +0 -0
  113. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  114. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  115. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  116. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/snode_ops.py +0 -0
  117. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  118. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  119. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  120. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_device.py +0 -0
  121. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  122. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  123. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  124. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  125. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  126. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/caching_node_app.py +0 -0
  127. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/caching_node_app_k8s.py +0 -0
  128. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/node_webapp.py +0 -0
  129. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/snode_app.py +0 -0
  130. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/delete.py +0 -0
  131. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/deploy.py +0 -0
  132. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  133. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  134. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/is_up.py +0 -0
  135. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/list_deps.py +0 -0
  136. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/rpac.yaml +0 -0
  137. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/tst.py +0 -0
  138. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
  139. {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.2.13
3
+ Version: 1.3.0
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,6 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-pre
2
- SIMPLY_BLOCK_VERSION=1.2.13
3
-
2
+ SIMPLY_BLOCK_VERSION=1.3.0
4
3
 
5
4
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:pre-release
6
5
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.2.13
3
+ Version: 1.3.0
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -15,7 +15,7 @@ from jinja2 import Environment, FileSystemLoader
15
15
 
16
16
  from simplyblock_core import utils, scripts, constants, mgmt_node_ops, storage_node_ops
17
17
  from simplyblock_core.controllers import cluster_events, device_controller
18
- from simplyblock_core.kv_store import DBController
18
+ from simplyblock_core.kv_store import DBController, KVStore
19
19
  from simplyblock_core.models.cluster import Cluster
20
20
  from simplyblock_core.models.nvme_device import NVMeDevice
21
21
  from simplyblock_core.models.storage_node import StorageNode
@@ -107,7 +107,6 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
107
107
  except Exception as e:
108
108
  print(e)
109
109
 
110
- db_controller = DBController()
111
110
  if not cli_pass:
112
111
  cli_pass = utils.generate_string(10)
113
112
 
@@ -181,6 +180,7 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
181
180
  c.status = Cluster.STATUS_ACTIVE
182
181
 
183
182
  c.updated_at = int(time.time())
183
+ db_controller = DBController(KVStore())
184
184
  c.write_to_db(db_controller.kv_store)
185
185
 
186
186
  cluster_events.cluster_create(c)
@@ -53,11 +53,13 @@ GRAYLOG_CHECK_INTERVAL_SEC = 60
53
53
  FDB_CHECK_INTERVAL_SEC = 60
54
54
 
55
55
  SIMPLY_BLOCK_DOCKER_IMAGE = "simplyblock/simplyblock:pre-release"
56
- SIMPLY_BLOCK_CLI_NAME = "sbcli"
56
+ SIMPLY_BLOCK_DOCKER_IMAGE_ARM64 = "simplyblock/simplyblock:main-arm64"
57
+ SIMPLY_BLOCK_CLI_NAME = "sbcli-dev"
57
58
  TASK_EXEC_INTERVAL_SEC = 30
58
59
  TASK_EXEC_RETRY_COUNT = 8
59
60
 
60
61
  SIMPLY_BLOCK_SPDK_CORE_IMAGE = "simplyblock/spdk-core:latest"
62
+ SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64 = "simplyblock/spdk-core:latest-arm64"
61
63
  SIMPLY_BLOCK_SPDK_ULTRA_IMAGE = "simplyblock/spdk:prerelease-latest"
62
64
 
63
65
  GELF_PORT = 12201
@@ -422,6 +422,7 @@ def connect(caching_node_id, lvol_id):
422
422
  ret, _ = cnode_client.connect_nvme(ip, "4420", subsystem_nqn)
423
423
  break
424
424
 
425
+ time.sleep(5)
425
426
  cnode_info, _ = cnode_client.info()
426
427
  nvme_devs = cnode_info['nvme_devices']
427
428
  dev_path = None
@@ -566,8 +567,11 @@ def deploy(ifname):
566
567
  time.sleep(2)
567
568
 
568
569
  logger.info("Creating CachingNodeAPI container")
570
+ cont_image = constants.SIMPLY_BLOCK_DOCKER_IMAGE
571
+ if utils.get_host_arch() == "aarch64":
572
+ cont_image = constants.SIMPLY_BLOCK_DOCKER_IMAGE_ARM64
569
573
  container = node_docker.containers.run(
570
- constants.SIMPLY_BLOCK_DOCKER_IMAGE,
574
+ cont_image,
571
575
  "python simplyblock_web/caching_node_app.py",
572
576
  detach=True,
573
577
  privileged=True,
@@ -586,8 +590,10 @@ def deploy(ifname):
586
590
  ]
587
591
  )
588
592
  logger.info("Pulling SPDK images")
589
- node_docker.images.pull(constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE)
590
- node_docker.images.pull(constants.SIMPLY_BLOCK_SPDK_ULTRA_IMAGE)
593
+ spdk_core = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
594
+ if utils.get_host_arch() == "aarch64":
595
+ spdk_core = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64
596
+ node_docker.images.pull(spdk_core)
591
597
  return f"{dev_ip}:5000"
592
598
 
593
599
 
@@ -111,8 +111,15 @@ def _def_create_device_stack(device_obj, snode, force=False):
111
111
  alceml_id = device_obj.get_id()
112
112
  alceml_name = get_alceml_name(alceml_id)
113
113
  logger.info(f"adding {alceml_name}")
114
- ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=2,
115
- dev_cpu_mask=snode.dev_cpu_mask)
114
+
115
+ if snode.alceml_cpu_cores:
116
+ alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
117
+ ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=2,
118
+ alceml_cpu_mask=alceml_cpu_mask)
119
+ snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
120
+ else:
121
+ ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=2)
122
+
116
123
  if not ret:
117
124
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
118
125
  if not force:
@@ -150,7 +157,7 @@ def _def_create_device_stack(device_obj, snode, force=False):
150
157
 
151
158
  if hasattr(device_obj, 'jm_bdev') and device_obj.jm_bdev:
152
159
  ret = rpc_client.bdev_jm_create(device_obj.jm_bdev, device_obj.alceml_bdev,
153
- dev_cpu_mask=snode.dev_cpu_mask)
160
+ jm_cpu_mask=snode.jm_cpu_mask)
154
161
  if not ret:
155
162
  logger.error(f"Failed to create jm bdev: {device_obj.jm_bdev}")
156
163
  if not force:
@@ -265,7 +265,7 @@ def add_lvol(name, size, host_id_or_name, pool_id_or_name, use_comp, use_crypto,
265
265
 
266
266
  # name, vuid, ndcs, npcs, num_blocks, block_size, alloc_names
267
267
  ret = rpc_client.bdev_distrib_create(f"distr_{name}", vuid, distr_ndcs, distr_npcs, num_blocks, distr_bs, jm_names,
268
- distr_chunk_bs, dev_cpu_mask=snode.dev_cpu_mask)
268
+ distr_chunk_bs, distrib_cpu_mask=snode.distrib_cpu_mask)
269
269
  bdev_stack.append({"type": "distr", "name": f"distr_{name}"})
270
270
  if not ret:
271
271
  logger.error("failed to create Distr bdev")
@@ -772,7 +772,7 @@ def _create_bdev_stack(lvol, snode, ha_comm_addrs, ha_inode_self):
772
772
  params['jm_names'] = get_jm_names(snode)
773
773
  params['ha_comm_addrs'] = ha_comm_addrs
774
774
  params['ha_inode_self'] = ha_inode_self
775
- params['dev_cpu_mask'] = snode.dev_cpu_mask
775
+ params['distrib_cpu_mask'] = snode.distrib_cpu_mask
776
776
  ret = rpc_client.bdev_distrib_create(**params)
777
777
  if ret:
778
778
  ret = distr_controller.send_cluster_map_to_node(snode)
@@ -66,7 +66,7 @@ def add(lvol_id, snapshot_name):
66
66
  ret = rpc_client.bdev_distrib_create(
67
67
  base_name, new_vuid, lvol.ndcs, lvol.npcs, num_blocks,
68
68
  lvol.distr_bs, lvol_controller.get_jm_names(snode), lvol.distr_chunk_bs,
69
- None, None, lvol.distr_page_size, dev_cpu_mask=snode.dev_cpu_mask)
69
+ None, None, lvol.distr_page_size, distrib_cpu_mask=snode.distrib_cpu_mask)
70
70
  if not ret:
71
71
  logger.error("Failed to create Distr bdev")
72
72
  return False, "Failed to create Distr bdev"
@@ -260,7 +260,7 @@ def clone(snapshot_id, clone_name, new_size=0):
260
260
  ret = rpc_client.bdev_distrib_create(
261
261
  name, new_vuid, lvol.ndcs, lvol.npcs, num_blocks,
262
262
  lvol.distr_bs, jm_names, lvol.distr_chunk_bs, None, None, lvol.distr_page_size,
263
- dev_cpu_mask=snode.dev_cpu_mask)
263
+ distrib_cpu_mask=snode.distrib_cpu_mask)
264
264
  if not ret:
265
265
  msg="Failed to create Distr bdev"
266
266
  logger.error(msg)
@@ -186,7 +186,9 @@ class DBController:
186
186
  for pool in self.get_pools(cluster_id):
187
187
  if pool.cluster_id == cluster_id:
188
188
  for lv_id in pool.lvols:
189
- lvols.append(self.get_lvol_by_id(lv_id))
189
+ lv = self.get_lvol_by_id(lv_id)
190
+ if lv:
191
+ lvols.append(lv)
190
192
  else:
191
193
  lvols = LVol().read_from_db(self.kv_store)
192
194
  return lvols
@@ -75,9 +75,12 @@ class StorageNode(BaseModel):
75
75
  "spdk_cpu_mask": {"type": str, "default": ""},
76
76
  "app_thread_mask": {"type": str, "default": ""},
77
77
  "pollers_mask": {"type": str, "default": ""},
78
- "os_cores": {"type": str, "default": []},
79
- "nvme_pollers_cores": {"type": str, "default": ""},
80
- "dev_cpu_mask": {"type": str, "default": ""},
78
+ "poller_cpu_cores": {"type": str, "default": ""},
79
+ "jm_cpu_mask": {"type": str, "default": ""},
80
+ "alceml_cpu_cores": {"type": List[int], "default": []},
81
+ "alceml_cpu_index": {"type": int, "default": 0},
82
+ "distrib_cpu_mask": {"type": str, "default": ""},
83
+
81
84
  "spdk_mem": {"type": int, "default": 0},
82
85
  "spdk_image": {"type": str, "default": ""},
83
86
  "spdk_debug": {"type": bool, "default": False},
@@ -319,7 +319,7 @@ class RPCClient:
319
319
  return self._request2("ultra21_bdev_pass_delete", params)
320
320
 
321
321
  def bdev_alceml_create(self, alceml_name, nvme_name, uuid, pba_init_mode=3,
322
- dev_cpu_mask=""):
322
+ alceml_cpu_mask=""):
323
323
  params = {
324
324
  "name": alceml_name,
325
325
  "cntr_path": nvme_name,
@@ -335,13 +335,13 @@ class RPCClient:
335
335
  "use_optimized": True,
336
336
  "pba_nbalign": 4096
337
337
  }
338
- if dev_cpu_mask:
339
- params["bdb_lcpu_mask"] = int(dev_cpu_mask,16)
338
+ if alceml_cpu_mask:
339
+ params["bdb_lcpu_mask"] = int(alceml_cpu_mask, 16)
340
340
  return self._request("bdev_alceml_create", params)
341
341
 
342
342
  def bdev_distrib_create(self, name, vuid, ndcs, npcs, num_blocks, block_size, jm_names,
343
343
  chunk_size, ha_comm_addrs=None, ha_inode_self=None, pba_page_size=2097152,
344
- dev_cpu_mask=""):
344
+ distrib_cpu_mask=""):
345
345
  """"
346
346
  // Optional (not specified = no HA)
347
347
  // Comma-separated communication addresses, for each node, e.g. "192.168.10.1:45001,192.168.10.1:32768".
@@ -367,8 +367,8 @@ class RPCClient:
367
367
  if ha_comm_addrs:
368
368
  params['ha_comm_addrs'] = ha_comm_addrs
369
369
  params['ha_inode_self'] = ha_inode_self
370
- if dev_cpu_mask:
371
- params["bdb_lcpu_mask"] = int(dev_cpu_mask, 16)
370
+ if distrib_cpu_mask:
371
+ params["bdb_lcpu_mask"] = int(distrib_cpu_mask, 16)
372
372
 
373
373
  return self._request("bdev_distrib_create", params)
374
374
 
@@ -601,14 +601,14 @@ class RPCClient:
601
601
  }
602
602
  return self._request("ultra21_lvol_dismount", params)
603
603
 
604
- def bdev_jm_create(self, name, name_storage1, block_size=4096, dev_cpu_mask=""):
604
+ def bdev_jm_create(self, name, name_storage1, block_size=4096, jm_cpu_mask=""):
605
605
  params = {
606
606
  "name": name,
607
607
  "name_storage1": name_storage1,
608
608
  "block_size": block_size
609
609
  }
610
- if dev_cpu_mask:
611
- params["bdb_lcpu_mask"] = int(dev_cpu_mask, 16)
610
+ if jm_cpu_mask:
611
+ params["bdb_lcpu_mask"] = int(jm_cpu_mask, 16)
612
612
  return self._request("bdev_jm_create", params)
613
613
 
614
614
  def bdev_jm_delete(self, name):
@@ -0,0 +1,2 @@
1
+ fdbcli --exec "configure new single ssd" --timeout 100
2
+ sleep 10
@@ -15,7 +15,7 @@ sudo yum install hostname pkg-config git wget python3-pip yum-utils docker-ce do
15
15
  sudo systemctl enable docker
16
16
  sudo systemctl start docker
17
17
 
18
- sudo docker plugin install rexray/efs --grant-all-permissions EFS_TAG=$INSTANCE_ID REXRAY_PREEMPT=true
18
+ #sudo docker plugin install rexray/efs --grant-all-permissions EFS_TAG=$INSTANCE_ID REXRAY_PREEMPT=true
19
19
 
20
20
  wget https://github.com/apple/foundationdb/releases/download/7.3.3/foundationdb-clients-7.3.3-1.el7.x86_64.rpm -q
21
21
  sudo rpm -U foundationdb-clients-7.3.3-1.el7.x86_64.rpm --quiet --reinstall
@@ -241,13 +241,19 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
241
241
  pba_init_mode = 3
242
242
  if after_restart:
243
243
  pba_init_mode = 2
244
- ret = rpc_client.bdev_alceml_create(alceml_name, raid_bdev, str(uuid.uuid4()), pba_init_mode=pba_init_mode)
244
+ if snode.alceml_cpu_cores:
245
+ alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
246
+ ret = rpc_client.bdev_alceml_create(alceml_name, raid_bdev, str(uuid.uuid4()), pba_init_mode=pba_init_mode,
247
+ alceml_cpu_mask=alceml_cpu_mask)
248
+ snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
249
+ else:
250
+ ret = rpc_client.bdev_alceml_create(alceml_name, raid_bdev, str(uuid.uuid4()), pba_init_mode=pba_init_mode)
245
251
  if not ret:
246
252
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
247
253
  return False
248
254
 
249
255
  jm_bdev = f"jm_{snode.get_id()}"
250
- ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name)
256
+ ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name, jm_cpu_mask=snode.jm_cpu_mask)
251
257
  if not ret:
252
258
  logger.error(f"Failed to create {jm_bdev}")
253
259
  return False
@@ -274,13 +280,20 @@ def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
274
280
  pba_init_mode = 3
275
281
  if after_restart:
276
282
  pba_init_mode = 2
277
- ret = rpc_client.bdev_alceml_create(alceml_name, nvme.nvme_bdev, alceml_id, pba_init_mode=pba_init_mode)
283
+ if snode.alceml_cpu_cores:
284
+ alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
285
+ ret = rpc_client.bdev_alceml_create(alceml_name, nvme.nvme_bdev, alceml_id, pba_init_mode=pba_init_mode,
286
+ alceml_cpu_mask=alceml_cpu_mask)
287
+ snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
288
+ else:
289
+ ret = rpc_client.bdev_alceml_create(alceml_name, nvme.nvme_bdev, alceml_id, pba_init_mode=pba_init_mode)
290
+
278
291
  if not ret:
279
292
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
280
293
  return False
281
294
 
282
295
  jm_bdev = f"jm_{snode.get_id()}"
283
- ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name)
296
+ ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name, jm_cpu_mask=snode.jm_cpu_mask)
284
297
  if not ret:
285
298
  logger.error(f"Failed to create {jm_bdev}")
286
299
  return False
@@ -308,8 +321,16 @@ def _create_storage_device_stack(rpc_client, nvme, snode, after_restart):
308
321
  pba_init_mode = 3
309
322
  if after_restart:
310
323
  pba_init_mode = 2
311
- ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=pba_init_mode,
312
- dev_cpu_mask=snode.dev_cpu_mask)
324
+
325
+ if snode.alceml_cpu_cores:
326
+ alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
327
+ ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=pba_init_mode,
328
+ alceml_cpu_mask=alceml_cpu_mask)
329
+ snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
330
+ else:
331
+ ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=pba_init_mode)
332
+
333
+
313
334
  if not ret:
314
335
  logger.error(f"Failed to create alceml bdev: {alceml_name}")
315
336
  return False
@@ -507,13 +528,20 @@ def _prepare_cluster_devices_on_restart(snode):
507
528
  return False
508
529
  else:
509
530
 
510
- ret = rpc_client.bdev_alceml_create(jm_device.alceml_bdev, jm_device.nvme_bdev, jm_device.get_id(), pba_init_mode=2)
531
+ if snode.alceml_cpu_cores:
532
+ alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
533
+ ret = rpc_client.bdev_alceml_create(jm_device.alceml_bdev, jm_device.nvme_bdev, jm_device.get_id(),
534
+ pba_init_mode=2, alceml_cpu_mask=alceml_cpu_mask)
535
+ snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
536
+ else:
537
+ ret = rpc_client.bdev_alceml_create(jm_device.alceml_bdev, jm_device.nvme_bdev, jm_device.get_id(),
538
+ pba_init_mode=2)
511
539
  if not ret:
512
540
  logger.error(f"Failed to create alceml bdev: {jm_device.alceml_bdev}")
513
541
  return False
514
542
 
515
543
  jm_bdev = f"jm_{snode.get_id()}"
516
- ret = rpc_client.bdev_jm_create(jm_bdev, jm_device.alceml_bdev)
544
+ ret = rpc_client.bdev_jm_create(jm_bdev, jm_device.alceml_bdev, jm_cpu_mask=snode.jm_cpu_mask)
517
545
  if not ret:
518
546
  logger.error(f"Failed to create {jm_bdev}")
519
547
  return False
@@ -612,22 +640,26 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
612
640
  cpu_count = node_info["cpu_count"]
613
641
  pollers_mask = ""
614
642
  app_thread_mask = ""
615
- dev_cpu_mask = ""
616
- nvme_pollers_cores = []
643
+ jm_cpu_mask = ""
644
+ alceml_cpu_cores = []
645
+ alceml_cpu_index = 0
646
+ distrib_cpu_mask = ""
647
+
648
+ poller_cpu_cores = []
617
649
  if cpu_count < 8:
618
650
  mask = (1 << (cpu_count - 1)) - 1
619
651
  mask <<= 1
620
652
  spdk_cpu_mask = f'0x{mask:X}'
621
- os_cores = [0]
622
653
  else:
623
- os_cores, nvme_pollers_cores, app_thread_core, dev_cpu_cores = \
654
+ app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, distrib_cpu_cores = \
624
655
  utils.calculate_core_allocation(cpu_count)
625
- spdk_cores = nvme_pollers_cores + app_thread_core + dev_cpu_cores
656
+ spdk_cores = app_thread_core + jm_cpu_core + poller_cpu_cores + alceml_cpu_cores + distrib_cpu_cores
626
657
 
627
- pollers_mask = utils.generate_mask(nvme_pollers_cores)
658
+ pollers_mask = utils.generate_mask(poller_cpu_cores)
628
659
  app_thread_mask = utils.generate_mask(app_thread_core)
629
660
  spdk_cpu_mask = utils.generate_mask(spdk_cores)
630
- dev_cpu_mask = utils.generate_mask(dev_cpu_cores)
661
+ jm_cpu_mask = utils.generate_mask(jm_cpu_core)
662
+ distrib_cpu_mask = utils.generate_mask(distrib_cpu_cores)
631
663
 
632
664
  # Calculate pool count
633
665
  if ec2_metadata and ec2_metadata.get('instanceType'):
@@ -649,7 +681,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
649
681
  number_of_split = num_partitions_per_dev if num_partitions_per_dev else num_partitions_per_dev + 1
650
682
  number_of_alceml_devices = number_of_devices * number_of_split
651
683
  small_pool_count, large_pool_count = utils.calculate_pool_count(
652
- number_of_alceml_devices, max_lvol, max_snap, cpu_count, len(nvme_pollers_cores) or cpu_count)
684
+ number_of_alceml_devices, max_lvol, max_snap, cpu_count, len(poller_cpu_cores) or cpu_count)
653
685
 
654
686
  # Calculate minimum huge page memory
655
687
  minimum_hp_memory = utils.calculate_minimum_hp_memory(small_pool_count, large_pool_count, max_lvol, max_snap, cpu_count)
@@ -758,9 +790,11 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
758
790
  snode.write_to_db(kv_store)
759
791
  snode.app_thread_mask = app_thread_mask or ""
760
792
  snode.pollers_mask = pollers_mask or ""
761
- snode.nvme_pollers_cores = nvme_pollers_cores or []
762
- snode.dev_cpu_mask = dev_cpu_mask or ""
763
- snode.os_cores = os_cores or []
793
+ snode.jm_cpu_mask = jm_cpu_mask
794
+ snode.alceml_cpu_index = alceml_cpu_index
795
+ snode.alceml_cpu_cores = alceml_cpu_cores
796
+ snode.distrib_cpu_mask = distrib_cpu_mask
797
+ snode.poller_cpu_cores = poller_cpu_cores or []
764
798
 
765
799
  snode.iobuf_small_pool_count = small_pool_count or 0
766
800
  snode.iobuf_large_pool_count = large_pool_count or 0
@@ -1083,7 +1117,7 @@ def restart_storage_node(
1083
1117
  number_of_split = snode.num_partitions_per_dev if snode.num_partitions_per_dev else snode.num_partitions_per_dev + 1
1084
1118
  number_of_alceml_devices = number_of_devices * number_of_split
1085
1119
  small_pool_count, large_pool_count = utils.calculate_pool_count(
1086
- number_of_alceml_devices, snode.max_lvol, snode.max_snap, snode.cpu, len(snode.nvme_pollers_cores) or snode.cpu)
1120
+ number_of_alceml_devices, snode.max_lvol, snode.max_snap, snode.cpu, len(snode.poller_cpu_cores) or snode.cpu)
1087
1121
 
1088
1122
  # Calculate minimum huge page memory
1089
1123
  minimum_hp_memory = utils.calculate_minimum_hp_memory(small_pool_count, large_pool_count, snode.max_lvol, snode.max_snap, snode.cpu)
@@ -286,38 +286,32 @@ def calculate_core_allocation(cpu_count):
286
286
  '''
287
287
  If number of cpu cores >= 8, tune cpu core mask
288
288
  1. Never use core 0 for spdk.
289
- 2. For every 8 cores, leave one core to the operating system
290
- 3. Do not use more than 15% of remaining available cores for nvme pollers
291
- 4. Use one dedicated core for app_thread
292
- 5. distribute distrib bdevs and alceml bdevs to all other cores
289
+ 2. Core 1 is for app_thread
290
+ 3. Core 2 for Journal manager
291
+ 4. Poller cpu cores are 30% of Available cores
292
+ 5. Alceml cpu cores are 30% of Available cores
293
+ 6. Distribs cpu cores are 40% of Available cores
293
294
  JIRA ticket link/s
294
295
  https://simplyblock.atlassian.net/browse/SFAM-885
295
296
  '''
296
297
 
297
298
  all_cores = list(range(0, cpu_count))
298
- # Calculate the number of cores to exclude for the OS
299
- if cpu_count == 8:
300
- os_cores_count = 1
301
- else:
302
- os_cores_count = 1 + (cpu_count // 8)
303
-
304
- # Calculate os cores
305
- os_cores = all_cores[0:os_cores_count]
299
+ app_thread_core = all_cores[1:2]
300
+ jm_cpu_core = all_cores[2:3]
306
301
 
307
302
  # Calculate available cores
308
- available_cores_count = cpu_count - os_cores_count
303
+ available_cores_count = cpu_count - 3
309
304
 
310
- # Calculate NVMe pollers
311
- nvme_pollers_count = int(available_cores_count * 0.15)
312
- nvme_pollers_cores = all_cores[os_cores_count:os_cores_count + nvme_pollers_count]
305
+ # Calculate cpus counts
306
+ poller_cpus_count = int(available_cores_count * 0.3)
307
+ alceml_cpus_cout = int(available_cores_count * 0.3)
313
308
 
314
- # Allocate core for app_thread
315
- app_thread_core = all_cores[os_cores_count + nvme_pollers_count:os_cores_count + nvme_pollers_count + 1]
309
+ # Calculate cpus cores
310
+ poller_cpu_cores = all_cores[3:poller_cpus_count+3]
311
+ alceml_cpu_cores = all_cores[3+poller_cpus_count:poller_cpus_count+alceml_cpus_cout+3]
312
+ distrib_cpu_cores = all_cores[3+poller_cpus_count+alceml_cpus_cout:]
316
313
 
317
- # Calculate bdb_lcpu cores
318
- bdb_lcpu_cores = all_cores[os_cores_count + nvme_pollers_count + 1:]
319
-
320
- return os_cores, nvme_pollers_cores, app_thread_core, bdb_lcpu_cores
314
+ return app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, distrib_cpu_cores
321
315
 
322
316
 
323
317
  def generate_mask(cores):
@@ -405,3 +399,13 @@ def validate_add_lvol_or_snap_on_node(memory_free, huge_free, max_lvol_or_snap,
405
399
  if node_lvol_or_snap_count >= max_lvol_or_snap:
406
400
  return f"You have exceeded the max number of lvol/snap {max_lvol_or_snap}"
407
401
  return ""
402
+
403
+
404
+ def get_host_arch():
405
+ out, _, _ = shell_utils.run_command("uname -m")
406
+ return out
407
+
408
+ def decimal_to_hex_power_of_2(decimal_number):
409
+ power_result = 2 ** decimal_number
410
+ hex_result = hex(power_result)
411
+ return hex_result
@@ -174,6 +174,10 @@ def spdk_process_start():
174
174
  time.sleep(2)
175
175
 
176
176
  spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
177
+
178
+ if node_utils.get_host_arch() == "aarch64":
179
+ spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64
180
+
177
181
  if 'spdk_image' in data and data['spdk_image']:
178
182
  spdk_image = data['spdk_image']
179
183
  node_docker.images.pull(spdk_image)
@@ -201,7 +205,7 @@ def spdk_process_start():
201
205
  rpc_password = data['rpc_password']
202
206
 
203
207
  container2 = node_docker.containers.run(
204
- constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE,
208
+ spdk_image,
205
209
  "python /root/scripts/spdk_http_proxy_server.py",
206
210
  name="spdk_proxy",
207
211
  detach=True,
@@ -301,7 +305,7 @@ def get_info():
301
305
  "system_id": system_id,
302
306
 
303
307
  "cpu_count": cpuinfo.get_cpu_info()['count'],
304
- "cpu_hz": cpuinfo.get_cpu_info()['hz_advertised'][0],
308
+ "cpu_hz": cpuinfo.get_cpu_info()['hz_advertised'][0] if 'hz_advertised' in cpuinfo.get_cpu_info() else 1,
305
309
 
306
310
  "memory": get_memory(),
307
311
  "hugepages": get_huge_memory(),
@@ -112,6 +112,9 @@ def spdk_process_start():
112
112
  spdk_mem = 64096
113
113
 
114
114
  spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
115
+ if node_utils.get_host_arch() == "aarch64":
116
+ spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64
117
+
115
118
  if 'spdk_image' in data and data['spdk_image']:
116
119
  spdk_image = data['spdk_image']
117
120
 
@@ -163,3 +163,7 @@ def get_memory_details():
163
163
  pass
164
164
  return data
165
165
 
166
+
167
+ def get_host_arch():
168
+ out, err, rc = run_command("uname -m")
169
+ return out
@@ -1 +0,0 @@
1
- fdbcli --exec "configure new single ssd" --timeout 100
File without changes
File without changes
File without changes
File without changes