sbcli-hmdi 0.0.11__tar.gz → 0.0.12__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/PKG-INFO +1 -1
  2. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/sbcli_hmdi.egg-info/PKG-INFO +1 -1
  3. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/lvol_controller.py +5 -4
  4. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/env_var +1 -1
  5. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/lvol_model.py +1 -0
  6. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/storage_node.py +1 -0
  7. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/rpc_client.py +5 -4
  8. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/install_deps.sh +9 -2
  9. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/snode_client.py +9 -0
  10. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/storage_node_ops.py +21 -16
  11. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/snode_ops.py +18 -0
  12. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/node_utils.py +39 -0
  13. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/README.md +0 -0
  14. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/pyproject.toml +0 -0
  15. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/requirements.txt +0 -0
  16. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/sbcli_hmdi.egg-info/SOURCES.txt +0 -0
  17. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/sbcli_hmdi.egg-info/dependency_links.txt +0 -0
  18. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/sbcli_hmdi.egg-info/entry_points.txt +0 -0
  19. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/sbcli_hmdi.egg-info/requires.txt +0 -0
  20. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/sbcli_hmdi.egg-info/top_level.txt +0 -0
  21. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/setup.cfg +0 -0
  22. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/setup.py +0 -0
  23. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_cli/__init__.py +0 -0
  24. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_cli/cli.py +0 -0
  25. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_cli/main.py +0 -0
  26. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/__init__.py +0 -0
  27. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/cluster_ops.py +0 -0
  28. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/cnode_client.py +0 -0
  29. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/constants.py +0 -0
  30. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/__init__.py +0 -0
  31. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  32. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/cluster_events.py +0 -0
  33. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/device_controller.py +0 -0
  34. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/device_events.py +0 -0
  35. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/events_controller.py +0 -0
  36. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/health_controller.py +0 -0
  37. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/lvol_events.py +0 -0
  38. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/mgmt_events.py +0 -0
  39. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/pool_controller.py +0 -0
  40. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/pool_events.py +0 -0
  41. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  42. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/snapshot_events.py +0 -0
  43. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/storage_events.py +0 -0
  44. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/tasks_controller.py +0 -0
  45. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/controllers/tasks_events.py +0 -0
  46. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/db_controller.py +0 -0
  47. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/distr_controller.py +0 -0
  48. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/mgmt_node_ops.py +0 -0
  49. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/__init__.py +0 -0
  50. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/base_model.py +0 -0
  51. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/caching_node.py +0 -0
  52. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/cluster.py +0 -0
  53. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/deployer.py +0 -0
  54. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/events.py +0 -0
  55. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/iface.py +0 -0
  56. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/job_schedule.py +0 -0
  57. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/mgmt_node.py +0 -0
  58. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/nvme_device.py +0 -0
  59. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/pool.py +0 -0
  60. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/port_stat.py +0 -0
  61. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/snapshot.py +0 -0
  62. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/models/stats.py +0 -0
  63. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/pci_utils.py +0 -0
  64. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/__init__.py +0 -0
  65. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  66. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  67. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  68. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/config_docker.sh +0 -0
  69. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/dashboard.yml +0 -0
  70. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  71. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  72. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  73. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  74. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  75. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  76. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/datasource.yml +0 -0
  77. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/db_config_double.sh +0 -0
  78. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/db_config_single.sh +0 -0
  79. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
  80. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  81. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  82. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  83. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/foundation.yml +0 -0
  84. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/haproxy.cfg +0 -0
  85. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/objstore.yml +0 -0
  86. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
  87. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/prometheus.yml +0 -0
  88. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/run_ssh.sh +0 -0
  89. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/set_db_config.sh +0 -0
  90. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  91. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/__init__.py +0 -0
  92. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  93. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/caching_node_monitor.py +0 -0
  94. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/cap_monitor.py +0 -0
  95. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  96. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/device_monitor.py +0 -0
  97. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/health_check_service.py +0 -0
  98. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/install_service.sh +0 -0
  99. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/log_agg_service.py +0 -0
  100. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/lvol_monitor.py +0 -0
  101. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  102. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/main_distr_event_collector.py +0 -0
  103. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  104. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/new_device_discovery.py +0 -0
  105. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/port_stat_collector.py +0 -0
  106. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/remove_service.sh +0 -0
  107. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/service_template.service +0 -0
  108. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  109. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/storage_node_monitor.py +0 -0
  110. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  111. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  112. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  113. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  114. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  115. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/shell_utils.py +0 -0
  116. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/utils.py +0 -0
  117. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
  118. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/README.md +0 -0
  119. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/__init__.py +0 -0
  120. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/app.py +0 -0
  121. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/auth_middleware.py +0 -0
  122. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/__init__.py +0 -0
  123. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  124. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  125. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  126. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  127. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  128. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  129. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  130. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  131. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  132. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_device.py +0 -0
  133. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  134. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  135. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  136. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  137. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  138. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/caching_node_app.py +0 -0
  139. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/caching_node_app_k8s.py +0 -0
  140. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/node_webapp.py +0 -0
  141. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/requirements.txt +0 -0
  142. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/snode_app.py +0 -0
  143. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/snode_app_k8s.py +0 -0
  144. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/delete.py +0 -0
  145. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/deploy.py +0 -0
  146. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  147. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  148. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/is_up.py +0 -0
  149. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/list_deps.py +0 -0
  150. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/rpac.yaml +0 -0
  151. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/static/tst.py +0 -0
  152. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  153. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  154. {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.12}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-hmdi
3
- Version: 0.0.11
3
+ Version: 0.0.12
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sbcli-hmdi
3
- Version: 0.0.11
3
+ Version: 0.0.12
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -449,6 +449,7 @@ def add_lvol_ha(name, size, host_id_or_name, ha_type, pool_id_or_name, use_comp,
449
449
  lvol.hostname = host_node.hostname
450
450
  lvol.node_id = host_node.get_id()
451
451
  lvol.lvs_name = host_node.lvstore
452
+ lvol.subsys_port = host_node.lvol_subsys_port
452
453
  lvol.top_bdev = f"{lvol.lvs_name}/{lvol.lvol_bdev}"
453
454
  lvol.base_bdev = lvol.top_bdev
454
455
 
@@ -631,13 +632,13 @@ def add_lvol_on_node(lvol, snode, ha_comm_addrs=None, ha_inode_self=0, sec_is_pr
631
632
  if iface.ip4_address:
632
633
  tr_type = iface.get_transport_type()
633
634
  logger.info("adding listener for %s on IP %s" % (lvol.nqn, iface.ip4_address))
634
- ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address, "4420")
635
+ ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address, lvol.subsys_port)
635
636
  is_optimized = False
636
637
  if lvol.node_id == snode.get_id():
637
638
  is_optimized = True
638
639
  logger.info(f"Setting ANA state: {is_optimized}")
639
640
  ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
640
- lvol.nqn, iface.ip4_address, "4420", is_optimized)
641
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, is_optimized)
641
642
 
642
643
  logger.info("Add BDev to subsystem")
643
644
  ret = rpc_client.nvmf_subsystem_add_ns(lvol.nqn, lvol.top_bdev, lvol.uuid, lvol.guid)
@@ -714,7 +715,7 @@ def recreate_lvol_on_node(lvol, snode, ha_inode_self=0, ana_state=None):
714
715
  ana_state = "optimized"
715
716
  logger.info("adding listener for %s on IP %s" % (lvol.nqn, iface.ip4_address))
716
717
  logger.info(f"Setting ANA state: {ana_state}")
717
- ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address, "4420", ana_state)
718
+ ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address, lvol.subsys_port, ana_state)
718
719
 
719
720
  return True, None
720
721
 
@@ -1111,7 +1112,7 @@ def connect_lvol(uuid):
1111
1112
  for nic in snode.data_nics:
1112
1113
  transport = nic.get_transport_type().lower()
1113
1114
  ip = nic.ip4_address
1114
- port = 4420
1115
+ port = lvol.subsys_port
1115
1116
  out.append({
1116
1117
  "transport": transport,
1117
1118
  "ip": ip,
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-hmdi
2
- SIMPLY_BLOCK_VERSION=0.0.11
2
+ SIMPLY_BLOCK_VERSION=0.0.12
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:hmdi
5
5
  DOCKER_USER=hamdysimplyblock
@@ -48,6 +48,7 @@ class LVol(BaseModel):
48
48
  node_id: str = ""
49
49
  nodes: List[str] = []
50
50
  nqn: str = ""
51
+ subsys_port: int = 9090
51
52
  nvme_dev: NVMeDevice = None
52
53
  pool_uuid: str = ""
53
54
  pvc_name: str = ""
@@ -53,6 +53,7 @@ class StorageNode(BaseNodeObject):
53
53
  lvstore_stack: List[dict] = []
54
54
  lvstore_stack_secondary_1: List[dict] = []
55
55
  lvstore_stack_secondary_2: List[dict] = []
56
+ lvol_subsys_port: int = 9090
56
57
  max_lvol: int = 0
57
58
  max_prov: int = 0
58
59
  max_snap: int = 0
@@ -178,7 +178,7 @@ class RPCClient:
178
178
  "trtype": trtype,
179
179
  "adrfam": "IPv4",
180
180
  "traddr": traddr,
181
- "trsvcid": trsvcid
181
+ "trsvcid": str(trsvcid)
182
182
  }
183
183
  }
184
184
  if ana_state:
@@ -901,7 +901,7 @@ class RPCClient:
901
901
  "trtype": trtype,
902
902
  "adrfam": "IPv4",
903
903
  "traddr": traddr,
904
- "trsvcid": trsvcid
904
+ "trsvcid": str(trsvcid)
905
905
  }
906
906
  }
907
907
  return self._request("nvmf_subsystem_remove_listener", params)
@@ -980,9 +980,10 @@ class RPCClient:
980
980
  }
981
981
  return self._request("nvmf_set_max_subsystems", params)
982
982
 
983
- def bdev_lvol_set_lvs_groupid(self, lvs_name, groupid):
983
+ def bdev_lvol_set_lvs_ops(self, lvs_name, groupid, subsystem_port=9090):
984
984
  params = {
985
985
  "groupid": groupid,
986
986
  "lvs_name": lvs_name,
987
+ "subsystem_port": subsystem_port,
987
988
  }
988
- return self._request("bdev_lvol_set_lvs_groupid", params)
989
+ return self._request("bdev_lvol_set_lvs_op", params)
@@ -3,7 +3,7 @@
3
3
  sudo yum install -y yum-utils xorg-x11-xauth nvme-cli fio
4
4
  sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5
5
  sudo yum install hostname pkg-config git wget python3-pip yum-utils docker-ce docker-ce-cli \
6
- containerd.io docker-buildx-plugin docker-compose-plugin -y
6
+ containerd.io docker-buildx-plugin docker-compose-plugin iptables -y
7
7
 
8
8
  sudo systemctl enable docker
9
9
  sudo systemctl start docker
@@ -27,4 +27,11 @@ sudo chmod 777 /etc/simplyblock
27
27
 
28
28
  sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
29
29
 
30
- sudo sed -i 's/ProcessSizeMax=.*/ProcessSizeMax=5G/' /etc/systemd/coredump.conf
30
+ sudo sed -i 's/ProcessSizeMax=.*/ProcessSizeMax=5G/' /etc/systemd/coredump.conf
31
+
32
+ sudo systemctl restart iptables
33
+ sudo iptables -F
34
+ sudo iptables -X
35
+ sudo iptables -P INPUT ACCEPT
36
+ sudo iptables -P FORWARD ACCEPT
37
+ sudo iptables -P OUTPUT ACCEPT
@@ -134,3 +134,12 @@ class SNodeClient:
134
134
 
135
135
  def get_file_content(self, file_name):
136
136
  return self._request("GET", f"get_file_content/{file_name}")
137
+
138
+
139
+ def firewall_set_port(self, port_id, port_type="tcp", action="block"):
140
+ params = {
141
+ "port_id": port_id,
142
+ "port_type": port_type,
143
+ "action": action,
144
+ }
145
+ return self._request("POST", "firewall_set_port", params)
@@ -2214,7 +2214,7 @@ def suspend_storage_node(node_id, force=False):
2214
2214
  for iface in snode.data_nics:
2215
2215
  if iface.ip4_address:
2216
2216
  ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
2217
- lvol.nqn, iface.ip4_address, "4420", False, ana="inaccessible")
2217
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
2218
2218
 
2219
2219
  rpc_client.bdev_lvol_set_leader(False, lvs_name=node.lvstore)
2220
2220
  rpc_client.bdev_distrib_force_to_non_leader(node.jm_vuid)
@@ -2229,7 +2229,7 @@ def suspend_storage_node(node_id, force=False):
2229
2229
  for iface in sec_node.data_nics:
2230
2230
  if iface.ip4_address:
2231
2231
  ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
2232
- lvol.nqn, iface.ip4_address, "4420", False, ana="inaccessible")
2232
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
2233
2233
 
2234
2234
  # sec_node_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
2235
2235
  # sec_node_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
@@ -2239,7 +2239,7 @@ def suspend_storage_node(node_id, force=False):
2239
2239
  for iface in snode.data_nics:
2240
2240
  if iface.ip4_address:
2241
2241
  ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
2242
- lvol.nqn, iface.ip4_address, "4420", False, ana="inaccessible")
2242
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
2243
2243
  time.sleep(3)
2244
2244
 
2245
2245
  rpc_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
@@ -2254,7 +2254,7 @@ def suspend_storage_node(node_id, force=False):
2254
2254
  for iface in sec_node.data_nics:
2255
2255
  if iface.ip4_address:
2256
2256
  ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
2257
- lvol.nqn, iface.ip4_address, "4420", False)
2257
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
2258
2258
 
2259
2259
 
2260
2260
  if snode.jm_device and snode.jm_device.status != JMDevice.STATUS_REMOVED:
@@ -2320,7 +2320,7 @@ def resume_storage_node(node_id):
2320
2320
  for iface in snode.data_nics:
2321
2321
  if iface.ip4_address:
2322
2322
  ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
2323
- lvol.nqn, iface.ip4_address, "4420", False)
2323
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
2324
2324
 
2325
2325
 
2326
2326
  else:
@@ -2338,7 +2338,7 @@ def resume_storage_node(node_id):
2338
2338
  for iface in sec_node.data_nics:
2339
2339
  if iface.ip4_address:
2340
2340
  ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
2341
- lvol.nqn, iface.ip4_address, "4420", False, ana="inaccessible")
2341
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
2342
2342
  time.sleep(1)
2343
2343
  sec_node_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
2344
2344
  sec_node_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
@@ -2348,7 +2348,7 @@ def resume_storage_node(node_id):
2348
2348
  for iface in snode.data_nics:
2349
2349
  if iface.ip4_address:
2350
2350
  ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
2351
- lvol.nqn, iface.ip4_address, "4420", True)
2351
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, True)
2352
2352
 
2353
2353
  time.sleep(3)
2354
2354
 
@@ -2359,7 +2359,7 @@ def resume_storage_node(node_id):
2359
2359
  for iface in sec_node.data_nics:
2360
2360
  if iface.ip4_address:
2361
2361
  ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
2362
- lvol.nqn, iface.ip4_address, "4420", False)
2362
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
2363
2363
 
2364
2364
  logger.info("Setting node status to online")
2365
2365
  set_node_status(snode.get_id(), StorageNode.STATUS_ONLINE)
@@ -2810,7 +2810,7 @@ def recreate_lvstore_on_sec(snode):
2810
2810
  for iface in node.data_nics:
2811
2811
  if iface.ip4_address:
2812
2812
  ret = remote_rpc_client.nvmf_subsystem_listener_set_ana_state(
2813
- lvol.nqn, iface.ip4_address, "4420", False, "inaccessible")
2813
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False, "inaccessible")
2814
2814
 
2815
2815
  remote_rpc_client.bdev_lvol_set_leader(False, lvs_name=node.lvstore)
2816
2816
  remote_rpc_client.bdev_distrib_force_to_non_leader(node.jm_vuid)
@@ -2818,7 +2818,7 @@ def recreate_lvstore_on_sec(snode):
2818
2818
  ret, err = _create_bdev_stack(snode, node.lvstore_stack, primary_node=node)
2819
2819
  ret = rpc_client.bdev_examine(node.raid)
2820
2820
  ret = rpc_client.bdev_wait_for_examine()
2821
- ret = rpc_client.bdev_lvol_set_lvs_groupid(node.lvstore, node.jm_vuid)
2821
+ ret = rpc_client.bdev_lvol_set_lvs_ops(node.lvstore, node.jm_vuid, node.lvol_subsys_port)
2822
2822
 
2823
2823
  for lvol in lvol_list:
2824
2824
  is_created, error = lvol_controller.recreate_lvol_on_node(
@@ -2840,7 +2840,7 @@ def recreate_lvstore_on_sec(snode):
2840
2840
  for iface in node.data_nics:
2841
2841
  if iface.ip4_address:
2842
2842
  ret = remote_rpc_client.nvmf_subsystem_listener_set_ana_state(
2843
- lvol.nqn, iface.ip4_address, "4420", True)
2843
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, True)
2844
2844
 
2845
2845
  time.sleep(5)
2846
2846
 
@@ -2848,7 +2848,7 @@ def recreate_lvstore_on_sec(snode):
2848
2848
  for iface in snode.data_nics:
2849
2849
  if iface.ip4_address:
2850
2850
  ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
2851
- lvol.nqn, iface.ip4_address, "4420", False)
2851
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
2852
2852
 
2853
2853
  return True
2854
2854
 
@@ -2873,7 +2873,10 @@ def recreate_lvstore(snode):
2873
2873
  for iface in sec_node.data_nics:
2874
2874
  if iface.ip4_address:
2875
2875
  ret = sec_rpc_client.nvmf_subsystem_listener_set_ana_state(
2876
- lvol.nqn, iface.ip4_address, "4420", False, "inaccessible")
2876
+ lvol.nqn, iface.ip4_address, lvol.subsys_port, False, "inaccessible")
2877
+
2878
+ # sec_node_api = SNodeClient(sec_node.api_endpoint)
2879
+ # sec_node_api.firewall_set_port(snode.lvol_subsys_port, "tcp", "block")
2877
2880
 
2878
2881
  sec_rpc_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
2879
2882
  sec_rpc_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
@@ -2918,7 +2921,7 @@ def recreate_lvstore(snode):
2918
2921
 
2919
2922
  ret = rpc_client.bdev_examine(snode.raid)
2920
2923
  ret = rpc_client.bdev_wait_for_examine()
2921
- ret = rpc_client.bdev_lvol_set_lvs_groupid(snode.lvstore, snode.jm_vuid)
2924
+ ret = rpc_client.bdev_lvol_set_lvs_ops(snode.lvstore, snode.jm_vuid, snode.lvol_subsys_port)
2922
2925
 
2923
2926
  if not prim_node_suspend:
2924
2927
  if snode.jm_vuid:
@@ -3014,6 +3017,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
3014
3017
  strip_size_kb = utils.nearest_upper_power_of_2(strip_size_kb)
3015
3018
  jm_vuid = 0
3016
3019
  jm_ids = []
3020
+ lvol_subsys_port = 9090
3017
3021
  if snode.enable_ha_jm:
3018
3022
  jm_vuid = utils.get_random_vuid()
3019
3023
  jm_ids = get_sorted_ha_jms(snode)
@@ -3089,6 +3093,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
3089
3093
  snode.lvstore = lvs_name
3090
3094
  snode.lvstore_stack = lvstore_stack
3091
3095
  snode.raid = raid_device
3096
+ snode.lvol_subsys_port = lvol_subsys_port
3092
3097
  snode.write_to_db()
3093
3098
 
3094
3099
  ret, err = _create_bdev_stack(snode, lvstore_stack)
@@ -3112,7 +3117,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
3112
3117
 
3113
3118
  ret = temp_rpc_client.bdev_examine(snode.raid)
3114
3119
  ret = temp_rpc_client.bdev_wait_for_examine()
3115
- ret = temp_rpc_client.bdev_lvol_set_lvs_groupid(snode.lvstore, snode.jm_vuid)
3120
+ ret = temp_rpc_client.bdev_lvol_set_lvs_ops(snode.lvstore, snode.jm_vuid, snode.lvol_subsys_port)
3116
3121
 
3117
3122
  sec_node_1.write_to_db()
3118
3123
 
@@ -3171,7 +3176,7 @@ def _create_bdev_stack(snode, lvstore_stack=None, primary_node=None):
3171
3176
  elif type == "bdev_lvstore" and lvstore_stack and not snode.is_secondary_node:
3172
3177
  ret = rpc_client.create_lvstore(**params)
3173
3178
  if ret and snode.jm_vuid > 0:
3174
- rpc_client.bdev_lvol_set_lvs_groupid(snode.lvstore, snode.jm_vuid)
3179
+ rpc_client.bdev_lvol_set_lvs_ops(snode.lvstore, snode.jm_vuid, snode.lvol_subsys_port)
3175
3180
 
3176
3181
  elif type == "bdev_ptnonexcl":
3177
3182
  ret = rpc_client.bdev_PT_NoExcl_create(**params)
@@ -483,3 +483,21 @@ def bind_device_to_spdk():
483
483
  time.sleep(1)
484
484
 
485
485
  return utils.get_response(True)
486
+
487
+
488
+ @bp.route('/firewall_set_port', methods=['POST'])
489
+ def firewall_set_port():
490
+ data = request.get_json()
491
+ if "port_id" not in data:
492
+ return utils.get_response(False, "Required parameter is missing: port_id")
493
+ if "port_type" not in data:
494
+ return utils.get_response(False, "Required parameter is missing: port_type")
495
+ if "action" not in data:
496
+ return utils.get_response(False, "Required parameter is missing: action")
497
+
498
+ port_id = data['port_id']
499
+ port_type = data['port_type']
500
+ action = data['action']
501
+
502
+ ret = node_utils.firewall_port(port_id, port_type, block=action=="block")
503
+ return utils.get_response(ret)
@@ -170,3 +170,42 @@ def get_memory_details():
170
170
  def get_host_arch():
171
171
  out, err, rc = run_command("uname -m")
172
172
  return out
173
+
174
+
175
+ def firewall_port(port_id=9090, port_type="tcp", block=True):
176
+
177
+ if block:
178
+ cmd_list=[
179
+
180
+ f"iptables -D INPUT -p {port_type} --dport {port_id} -j ACCEPT",
181
+ f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j ACCEPT",
182
+
183
+ f"iptables -A INPUT -p {port_type} --dport {port_id} -j DROP",
184
+ f"iptables -A INPUT -p {port_type} --dport {port_id} -j REJECT",
185
+ f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j DROP",
186
+ f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j REJECT",
187
+ "iptables -L -n",
188
+ ]
189
+ else:
190
+ cmd_list=[
191
+
192
+ f"iptables -D INPUT -p {port_type} --dport {port_id} -j DROP",
193
+ f"iptables -D INPUT -p {port_type} --dport {port_id} -j REJECT",
194
+ f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j DROP",
195
+ f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j REJECT",
196
+
197
+ f"iptables -A INPUT -p {port_type} --dport {port_id} -j ACCEPT",
198
+ f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j ACCEPT",
199
+ "iptables -L -n",
200
+
201
+ ]
202
+
203
+ out = ""
204
+ for cmd in cmd_list:
205
+ stream = os.popen(cmd)
206
+ ret = stream.read()
207
+ if ret != "":
208
+ out += ret + "\n"
209
+ logger.info(ret)
210
+
211
+ return out
File without changes
File without changes
File without changes
File without changes