sbcli-pre 1.4.0__zip → 1.4.2__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 (140) hide show
  1. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/PKG-INFO +1 -1
  2. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/env_var +1 -1
  3. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/sbcli_pre.egg-info/PKG-INFO +1 -1
  4. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_cli/cli.py +4 -1
  5. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/caching_node_controller.py +10 -7
  6. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/lvol_controller.py +1 -1
  7. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/caching_node.py +1 -0
  8. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_caching_node.py +5 -1
  9. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_deployer.py +20 -6
  10. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/README.md +0 -0
  11. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/pyproject.toml +0 -0
  12. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/sbcli_pre.egg-info/SOURCES.txt +0 -0
  13. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/sbcli_pre.egg-info/dependency_links.txt +0 -0
  14. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/sbcli_pre.egg-info/entry_points.txt +0 -0
  15. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/sbcli_pre.egg-info/requires.txt +0 -0
  16. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/sbcli_pre.egg-info/top_level.txt +0 -0
  17. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/setup.cfg +0 -0
  18. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/setup.py +0 -0
  19. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_cli/main.py +0 -0
  20. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/__init__.py +0 -0
  21. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/cluster_ops.py +0 -0
  22. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/cnode_client.py +0 -0
  23. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/compute_node_ops.py +0 -0
  24. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/constants.py +0 -0
  25. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/__init__.py +0 -0
  26. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/device_controller.py +0 -0
  28. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/device_events.py +0 -0
  29. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/events_controller.py +0 -0
  30. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/health_controller.py +0 -0
  31. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/lvol_events.py +0 -0
  32. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/mgmt_events.py +0 -0
  33. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/pool_controller.py +0 -0
  34. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/pool_events.py +0 -0
  35. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  36. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/snapshot_events.py +0 -0
  37. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/storage_events.py +0 -0
  38. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/tasks_controller.py +0 -0
  39. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/controllers/tasks_events.py +0 -0
  40. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/distr_controller.py +0 -0
  41. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/kv_store.py +0 -0
  42. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/mgmt_node_ops.py +0 -0
  43. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/__init__.py +0 -0
  44. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/base_model.py +0 -0
  45. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/cluster.py +0 -0
  46. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/compute_node.py +0 -0
  47. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/deployer.py +0 -0
  48. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/events.py +0 -0
  49. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/global_settings.py +0 -0
  50. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/iface.py +0 -0
  51. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/job_schedule.py +0 -0
  52. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/lvol_model.py +0 -0
  53. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/mgmt_node.py +0 -0
  54. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/nvme_device.py +0 -0
  55. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/pool.py +0 -0
  56. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/port_stat.py +0 -0
  57. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/snapshot.py +0 -0
  58. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/stats.py +0 -0
  59. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/models/storage_node.py +0 -0
  60. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/pci_utils.py +0 -0
  61. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/rpc_client.py +0 -0
  62. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/__init__.py +0 -0
  63. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  64. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  65. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  66. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/config_docker.sh +0 -0
  67. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/dashboard.yml +0 -0
  68. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  69. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  70. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  71. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  72. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  73. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  74. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/datasource.yml +0 -0
  75. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/db_config_double.sh +0 -0
  76. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/db_config_single.sh +0 -0
  77. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  78. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  79. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  80. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/haproxy.cfg +0 -0
  81. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/install_deps.sh +0 -0
  82. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/objstore.yml +0 -0
  83. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/prometheus.yml +0 -0
  84. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/run_ssh.sh +0 -0
  85. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/set_db_config.sh +0 -0
  86. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  87. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/__init__.py +0 -0
  88. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/caching_node_monitor.py +0 -0
  89. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/cap_monitor.py +0 -0
  90. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  91. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/device_monitor.py +0 -0
  92. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/distr_event_collector.py +0 -0
  93. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/health_check_service.py +0 -0
  94. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/install_service.sh +0 -0
  95. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/log_agg_service.py +0 -0
  96. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/lvol_monitor.py +0 -0
  97. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  98. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  99. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/port_stat_collector.py +0 -0
  100. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/remove_service.sh +0 -0
  101. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/service_template.service +0 -0
  102. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/storage_node_monitor.py +0 -0
  103. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  104. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  105. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/shell_utils.py +0 -0
  106. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/snode_client.py +0 -0
  107. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/storage_node_ops.py +0 -0
  108. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_core/utils.py +0 -0
  109. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/__init__.py +0 -0
  110. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/app.py +0 -0
  111. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/auth_middleware.py +0 -0
  112. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/__init__.py +0 -0
  113. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  114. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  115. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  116. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  117. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  118. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/snode_ops.py +0 -0
  119. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  120. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_device.py +0 -0
  121. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  122. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  123. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  124. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  125. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  126. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/caching_node_app.py +0 -0
  127. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/caching_node_app_k8s.py +0 -0
  128. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/node_utils.py +0 -0
  129. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/node_webapp.py +0 -0
  130. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/snode_app.py +0 -0
  131. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/delete.py +0 -0
  132. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/deploy.py +0 -0
  133. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  134. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  135. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/is_up.py +0 -0
  136. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/list_deps.py +0 -0
  137. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/rpac.yaml +0 -0
  138. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/static/tst.py +0 -0
  139. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
  140. {sbcli_pre-1.4.0 → sbcli_pre-1.4.2}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.4.0
3
+ Version: 1.4.2
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-pre
2
- SIMPLY_BLOCK_VERSION=1.4.0
2
+ SIMPLY_BLOCK_VERSION=1.4.2
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:pre-release
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.4.0
3
+ Version: 1.4.2
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -585,6 +585,8 @@ class CLIWrapper:
585
585
  sub_command.add_argument("--memory", help='SPDK huge memory allocation, default is Max hugepages available', dest='spdk_mem')
586
586
  sub_command.add_argument("--spdk-image", help='SPDK image uri', dest='spdk_image')
587
587
  sub_command.add_argument("--namespace", help='k8s namespace to deploy on',)
588
+ sub_command.add_argument("--multipathing", help='Enable multipathing for lvol connection, default: True',
589
+ type=bool, default=True)
588
590
 
589
591
  self.add_sub_command(subparser, 'list', 'List Caching nodes')
590
592
 
@@ -1067,6 +1069,7 @@ class CLIWrapper:
1067
1069
  data_nics = []
1068
1070
  spdk_image = args.spdk_image
1069
1071
  namespace = args.namespace
1072
+ multipathing = args.multipathing
1070
1073
 
1071
1074
  spdk_cpu_mask = None
1072
1075
  if args.spdk_cpu_mask:
@@ -1082,7 +1085,7 @@ class CLIWrapper:
1082
1085
  return f"SPDK memory:{args.spdk_mem} must be larger than 1G"
1083
1086
 
1084
1087
  ret = caching_node_controller.add_node(
1085
- cluster_id, node_ip, ifname, data_nics, spdk_cpu_mask, spdk_mem, spdk_image, namespace)
1088
+ cluster_id, node_ip, ifname, data_nics, spdk_cpu_mask, spdk_mem, spdk_image, namespace, multipathing)
1086
1089
 
1087
1090
  if sub_command == "list":
1088
1091
  #cluster_id
@@ -74,7 +74,7 @@ def addNvmeDevices(cluster, rpc_client, devs, snode):
74
74
  return devices
75
75
 
76
76
 
77
- def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image=None, namespace=None):
77
+ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image=None, namespace=None, multipathing=True):
78
78
  db_controller = DBController()
79
79
  kv_store = db_controller.kv_store
80
80
 
@@ -134,7 +134,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
134
134
  snode.cpu = node_info['cpu_count']
135
135
  snode.cpu_hz = node_info['cpu_hz']
136
136
  snode.memory = node_info['memory']
137
- # snode.hugepages = node_info['hugepages']
137
+ snode.multipathing = multipathing
138
138
 
139
139
  # check for memory
140
140
  if "memory_details" in node_info and node_info['memory_details']:
@@ -185,6 +185,8 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
185
185
  mem = node_info['memory_details']['huge_free']
186
186
  logger.info(f"Free Hugepages detected: {utils.humanbytes(mem)}")
187
187
 
188
+ time.sleep(60)
189
+
188
190
  # adding devices
189
191
  nvme_devs = addNvmeDevices(cluster, rpc_client, node_info['spdk_pcie_list'], snode)
190
192
  if not nvme_devs:
@@ -416,11 +418,12 @@ def connect(caching_node_id, lvol_id):
416
418
  logger.error("Failed to connect to local subsystem")
417
419
  return False
418
420
 
419
- snode = db_controller.get_storage_node_by_id(lvol.node_id)
420
- for nic in snode.data_nics:
421
- ip = nic.ip4_address
422
- ret, _ = cnode_client.connect_nvme(ip, "4420", subsystem_nqn)
423
- break
421
+ if cnode.multipathing:
422
+ snode = db_controller.get_storage_node_by_id(lvol.node_id)
423
+ for nic in snode.data_nics:
424
+ ip = nic.ip4_address
425
+ ret, _ = cnode_client.connect_nvme(ip, "4420", subsystem_nqn)
426
+ break
424
427
 
425
428
  time.sleep(5)
426
429
  cnode_info, _ = cnode_client.info()
@@ -611,7 +611,7 @@ def add_lvol_ha(name, size, host_id_or_name, ha_type, pool_id_or_name, use_comp,
611
611
  lvol.npcs = distr_npcs
612
612
  lvol.distr_bs = distr_bs
613
613
  lvol.distr_chunk_bs = distr_chunk_bs
614
- lvol.distr_page_size = cl.page_size_in_blocks
614
+ lvol.distr_page_size = (distr_npcs+distr_npcs)*cl.page_size_in_blocks
615
615
 
616
616
  lvol.base_bdev = f"distr_{lvol.vuid}_{name}"
617
617
  lvol.top_bdev = lvol.base_bdev
@@ -90,6 +90,7 @@ class CachingNode(BaseModel):
90
90
  "cpu_hz": {"type": int, "default": 0},
91
91
  "memory": {"type": int, "default": 0},
92
92
  "hugepages": {"type": int, "default": 0},
93
+ "multipathing": {"type": bool, "default": True},
93
94
 
94
95
  }
95
96
 
@@ -36,6 +36,7 @@ def add_node_to_cluster():
36
36
  spdk_mem = None
37
37
  spdk_image = None
38
38
  namespace = None
39
+ multipathing = True
39
40
 
40
41
  if 'spdk_cpu_mask' in cl_data:
41
42
  spdk_cpu_mask = cl_data['spdk_cpu_mask']
@@ -52,9 +53,12 @@ def add_node_to_cluster():
52
53
  if 'namespace' in cl_data:
53
54
  namespace = cl_data['namespace']
54
55
 
56
+ if 'multipathing' in cl_data:
57
+ multipathing = bool(cl_data['multipathing'])
58
+
55
59
  t = threading.Thread(
56
60
  target=caching_node_controller.add_node,
57
- args=(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image, namespace))
61
+ args=(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image, namespace, multipathing))
58
62
  t.start()
59
63
 
60
64
  return utils.get_response(True)
@@ -141,6 +141,10 @@ def update_cluster(d, kv_store, storage_nodes, availability_zone):
141
141
  ECR_IMAGE_TAG = d.ecr_image_tag
142
142
  ECR_ACCOUNT_ID = d.ecr_account_id
143
143
  tf_logs_bucket_name = d.tf_logs_bucket_name
144
+ sbcli_cmd = d.sbcli_cmd
145
+ mgmt_nodes_instance_type = d.mgmt_nodes_instance_type
146
+ storage_nodes_instance_type = d.storage_nodes_instance_type
147
+ volumes_per_storage_nodes = d.volumes_per_storage_nodes
144
148
 
145
149
  d.status = "in_progress"
146
150
  d.write_to_db(kv_store)
@@ -159,10 +163,6 @@ def update_cluster(d, kv_store, storage_nodes, availability_zone):
159
163
  docker volume create terraform
160
164
  """,
161
165
  f"""
162
- docker run --rm -v terraform:/app -e TF_LOG=DEBUG -w /app {ECR_ACCOUNT_ID}.dkr.ecr.{ECR_REGION}.amazonaws.com/{ECR_REPOSITORY_NAME}:{ECR_IMAGE_TAG} \
163
- workspace select -or-create {TF_WORKSPACE}
164
- """,
165
- f"""
166
166
  docker run --rm -v terraform:/app -w /app {ECR_ACCOUNT_ID}.dkr.ecr.{ECR_REGION}.amazonaws.com/{ECR_REPOSITORY_NAME}:{ECR_IMAGE_TAG} \
167
167
  init -reconfigure -input=false \
168
168
  -backend-config='bucket={TFSTATE_BUCKET}' \
@@ -170,12 +170,21 @@ def update_cluster(d, kv_store, storage_nodes, availability_zone):
170
170
  -backend-config='region={TFSTATE_REGION}'
171
171
  """,
172
172
  f"""
173
+ docker run --rm -v terraform:/app -e TF_LOG=DEBUG -w /app {ECR_ACCOUNT_ID}.dkr.ecr.{ECR_REGION}.amazonaws.com/{ECR_REPOSITORY_NAME}:{ECR_IMAGE_TAG} \
174
+ workspace select -or-create {TF_WORKSPACE}
175
+ """,
176
+ f"""
173
177
  docker run --rm -v terraform:/app -w /app {ECR_ACCOUNT_ID}.dkr.ecr.{ECR_REGION}.amazonaws.com/{ECR_REPOSITORY_NAME}:{ECR_IMAGE_TAG} \
174
- plan -var mgmt_nodes={mgmt_nodes} -var storage_nodes={storage_nodes} -var az={availability_zone} -var region={aws_region}
178
+ plan -var mgmt_nodes={mgmt_nodes} -var storage_nodes={storage_nodes} -var az={availability_zone} -var region={aws_region} \
179
+ -var mgmt_nodes_instance_type={mgmt_nodes_instance_type} -var storage_nodes_instance_type={storage_nodes_instance_type} \
180
+ -var volumes_per_storage_nodes={volumes_per_storage_nodes} -var sbcli_cmd={sbcli_cmd}
175
181
  """,
176
182
  f"""
177
183
  docker run --rm -v terraform:/app -w /app {ECR_ACCOUNT_ID}.dkr.ecr.{ECR_REGION}.amazonaws.com/{ECR_REPOSITORY_NAME}:{ECR_IMAGE_TAG} \
178
- apply -var mgmt_nodes={mgmt_nodes} -var storage_nodes={storage_nodes} -var az={availability_zone} -var region={aws_region} --auto-approve
184
+ apply -var mgmt_nodes={mgmt_nodes} -var storage_nodes={storage_nodes} -var az={availability_zone} -var region={aws_region} \
185
+ -var mgmt_nodes_instance_type={mgmt_nodes_instance_type} -var storage_nodes_instance_type={storage_nodes_instance_type} \
186
+ -var volumes_per_storage_nodes={volumes_per_storage_nodes} -var sbcli_cmd={sbcli_cmd} \
187
+ --auto-approve
179
188
  """
180
189
  ]
181
190
 
@@ -299,6 +308,8 @@ def validate_tf_vars(dpl_data):
299
308
  return "missing required param: mgmt_nodes_instance_type"
300
309
  if 'storage_nodes_instance_type' not in dpl_data:
301
310
  return "missing required param: storage_nodes_instance_type"
311
+ if 'volumes_per_storage_nodes' not in dpl_data:
312
+ return "missing required param: volumes_per_storage_nodes"
302
313
 
303
314
  return ""
304
315
 
@@ -375,6 +386,9 @@ def add_deployer():
375
386
  d.write_to_db(db_controller.kv_store)
376
387
 
377
388
  storage_nodes = int(dpl_data['storage_nodes'])
389
+ if d.storage_nodes+storage_nodes < 0:
390
+ return utils.get_response_error("total storage_nodes cannot be less than 0", 400)
391
+
378
392
  availability_zone = dpl_data['availability_zone']
379
393
  d.write_to_db(db_controller.kv_store)
380
394
 
File without changes
File without changes
File without changes
File without changes