sbcli-pre 1.2.4__zip → 1.2.6__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 (138) hide show
  1. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/PKG-INFO +20 -5
  2. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/README.md +19 -4
  3. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/env_var +1 -1
  4. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/PKG-INFO +20 -5
  5. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/SOURCES.txt +2 -0
  6. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/cluster_ops.py +3 -3
  7. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/kv_store.py +9 -0
  8. sbcli_pre-1.2.6/simplyblock_core/models/deployer.py +62 -0
  9. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/deploy_stack.sh +7 -0
  10. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +10 -2
  11. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/install_deps.sh +2 -0
  12. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/stack_deploy_wait.sh +1 -1
  13. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/app.py +2 -1
  14. sbcli_pre-1.2.6/simplyblock_web/blueprints/web_api_deployer.py +394 -0
  15. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/pyproject.toml +0 -0
  16. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/dependency_links.txt +0 -0
  17. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/entry_points.txt +0 -0
  18. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/requires.txt +0 -0
  19. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/top_level.txt +0 -0
  20. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/setup.cfg +0 -0
  21. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/setup.py +0 -0
  22. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_cli/cli.py +0 -0
  23. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_cli/main.py +0 -0
  24. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/__init__.py +0 -0
  25. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/cnode_client.py +0 -0
  26. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/compute_node_ops.py +0 -0
  27. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/constants.py +0 -0
  28. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/__init__.py +0 -0
  29. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  30. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/cluster_events.py +0 -0
  31. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/device_controller.py +0 -0
  32. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/device_events.py +0 -0
  33. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/events_controller.py +0 -0
  34. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/health_controller.py +0 -0
  35. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/lvol_controller.py +0 -0
  36. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/lvol_events.py +0 -0
  37. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/mgmt_events.py +0 -0
  38. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/pool_controller.py +0 -0
  39. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/pool_events.py +0 -0
  40. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  41. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/snapshot_events.py +0 -0
  42. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/storage_events.py +0 -0
  43. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/tasks_controller.py +0 -0
  44. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/tasks_events.py +0 -0
  45. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/distr_controller.py +0 -0
  46. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/mgmt_node_ops.py +0 -0
  47. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/__init__.py +0 -0
  48. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/base_model.py +0 -0
  49. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/caching_node.py +0 -0
  50. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/cluster.py +0 -0
  51. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/compute_node.py +0 -0
  52. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/events.py +0 -0
  53. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/global_settings.py +0 -0
  54. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/iface.py +0 -0
  55. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/job_schedule.py +0 -0
  56. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/lvol_model.py +0 -0
  57. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/mgmt_node.py +0 -0
  58. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/nvme_device.py +0 -0
  59. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/pool.py +0 -0
  60. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/port_stat.py +0 -0
  61. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/snapshot.py +0 -0
  62. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/stats.py +0 -0
  63. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/storage_node.py +0 -0
  64. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/pci_utils.py +0 -0
  65. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/rpc_client.py +0 -0
  66. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/__init__.py +0 -0
  67. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  68. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  69. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  70. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/config_docker.sh +0 -0
  71. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  72. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  73. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  74. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  75. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  76. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  77. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/datasource.yml +0 -0
  78. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/db_config_double.sh +0 -0
  79. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/db_config_single.sh +0 -0
  80. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  81. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/haproxy.cfg +0 -0
  82. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/prometheus.yml +0 -0
  83. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/run_ssh.sh +0 -0
  84. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/set_db_config.sh +0 -0
  85. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/__init__.py +0 -0
  86. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/caching_node_monitor.py +0 -0
  87. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/cap_monitor.py +0 -0
  88. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  89. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/device_monitor.py +0 -0
  90. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/distr_event_collector.py +0 -0
  91. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/health_check_service.py +0 -0
  92. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/install_service.sh +0 -0
  93. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/log_agg_service.py +0 -0
  94. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/lvol_monitor.py +0 -0
  95. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  96. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  97. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/port_stat_collector.py +0 -0
  98. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/remove_service.sh +0 -0
  99. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/service_template.service +0 -0
  100. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/storage_node_monitor.py +0 -0
  101. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  102. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  103. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/shell_utils.py +0 -0
  104. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/snode_client.py +0 -0
  105. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/storage_node_ops.py +0 -0
  106. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/utils.py +0 -0
  107. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/__init__.py +0 -0
  108. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/auth_middleware.py +0 -0
  109. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/__init__.py +0 -0
  110. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  111. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  112. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  113. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  114. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  115. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/snode_ops.py +0 -0
  116. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  117. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  118. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_device.py +0 -0
  119. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  120. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  121. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  122. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  123. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  124. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/caching_node_app.py +0 -0
  125. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/caching_node_app_k8s.py +0 -0
  126. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/node_utils.py +0 -0
  127. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/node_webapp.py +0 -0
  128. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/snode_app.py +0 -0
  129. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/delete.py +0 -0
  130. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/deploy.py +0 -0
  131. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  132. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  133. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/is_up.py +0 -0
  134. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/list_deps.py +0 -0
  135. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/rpac.yaml +0 -0
  136. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/tst.py +0 -0
  137. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
  138. {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/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.4
3
+ Version: 1.2.6
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -21,7 +21,7 @@ Requires-Dist: graypy
21
21
 
22
22
  [![Python Unit Testing](https://github.com/simplyblock-io/sbcli/actions/workflows/python-testing.yml/badge.svg)](https://github.com/simplyblock-io/sbcli/actions/workflows/python-testing.yml)
23
23
 
24
-
24
+
25
25
  ## Install
26
26
  Add the package repo from AWS CodeArtifact using [awscli](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
27
27
 
@@ -33,19 +33,34 @@ Install package
33
33
  pip install --extra-index-url https://pypi.org/simple sbcli-dev
34
34
  ```
35
35
 
36
- # Components
36
+ # Components
37
37
 
38
38
  ## Simply Block Core
39
39
  Contains core logic and controllers for the simplyblock cluster
40
40
 
41
41
  ## Simply Block CLI
42
- Please see this document
42
+ Please see this document
43
43
  [README.md](../main/simplyblock_cli/README.md)
44
44
 
45
45
 
46
46
  ## Simply Block Web API
47
- Please see this document
47
+ Please see this document
48
48
  [README.md](../main/simplyblock_web/README.md)
49
49
 
50
50
 
51
51
 
52
+ ### local development
53
+
54
+ FoundationDB requires a client library (libfdb_c.dylib) for the Python bindings to interact with the database.
55
+ Depending on the OS architecture, please install the appropriate version from the official github repo
56
+
57
+ ```
58
+ wget https://github.com/apple/foundationdb/releases/download/7.3.3/FoundationDB-7.3.3_arm64.pkg
59
+ ```
60
+
61
+ setup the code on a management node and the webApp code can be developed by building the `docker-compose-dev.yml` file.
62
+
63
+
64
+ ```
65
+ sudo docker compose -f docker-compose-dev.yml up --build -d
66
+ ```
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![Python Unit Testing](https://github.com/simplyblock-io/sbcli/actions/workflows/python-testing.yml/badge.svg)](https://github.com/simplyblock-io/sbcli/actions/workflows/python-testing.yml)
6
6
 
7
-
7
+
8
8
  ## Install
9
9
  Add the package repo from AWS CodeArtifact using [awscli](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
10
10
 
@@ -16,19 +16,34 @@ Install package
16
16
  pip install --extra-index-url https://pypi.org/simple sbcli-dev
17
17
  ```
18
18
 
19
- # Components
19
+ # Components
20
20
 
21
21
  ## Simply Block Core
22
22
  Contains core logic and controllers for the simplyblock cluster
23
23
 
24
24
  ## Simply Block CLI
25
- Please see this document
25
+ Please see this document
26
26
  [README.md](../main/simplyblock_cli/README.md)
27
27
 
28
28
 
29
29
  ## Simply Block Web API
30
- Please see this document
30
+ Please see this document
31
31
  [README.md](../main/simplyblock_web/README.md)
32
32
 
33
33
 
34
34
 
35
+ ### local development
36
+
37
+ FoundationDB requires a client library (libfdb_c.dylib) for the Python bindings to interact with the database.
38
+ Depending on the OS architecture, please install the appropriate version from the official github repo
39
+
40
+ ```
41
+ wget https://github.com/apple/foundationdb/releases/download/7.3.3/FoundationDB-7.3.3_arm64.pkg
42
+ ```
43
+
44
+ setup the code on a management node and the webApp code can be developed by building the `docker-compose-dev.yml` file.
45
+
46
+
47
+ ```
48
+ sudo docker compose -f docker-compose-dev.yml up --build -d
49
+ ```
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-pre
2
- SIMPLY_BLOCK_VERSION=1.2.4
2
+ SIMPLY_BLOCK_VERSION=1.2.6
3
3
 
4
4
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:pre-release
5
5
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.2.4
3
+ Version: 1.2.6
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -21,7 +21,7 @@ Requires-Dist: graypy
21
21
 
22
22
  [![Python Unit Testing](https://github.com/simplyblock-io/sbcli/actions/workflows/python-testing.yml/badge.svg)](https://github.com/simplyblock-io/sbcli/actions/workflows/python-testing.yml)
23
23
 
24
-
24
+
25
25
  ## Install
26
26
  Add the package repo from AWS CodeArtifact using [awscli](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
27
27
 
@@ -33,19 +33,34 @@ Install package
33
33
  pip install --extra-index-url https://pypi.org/simple sbcli-dev
34
34
  ```
35
35
 
36
- # Components
36
+ # Components
37
37
 
38
38
  ## Simply Block Core
39
39
  Contains core logic and controllers for the simplyblock cluster
40
40
 
41
41
  ## Simply Block CLI
42
- Please see this document
42
+ Please see this document
43
43
  [README.md](../main/simplyblock_cli/README.md)
44
44
 
45
45
 
46
46
  ## Simply Block Web API
47
- Please see this document
47
+ Please see this document
48
48
  [README.md](../main/simplyblock_web/README.md)
49
49
 
50
50
 
51
51
 
52
+ ### local development
53
+
54
+ FoundationDB requires a client library (libfdb_c.dylib) for the Python bindings to interact with the database.
55
+ Depending on the OS architecture, please install the appropriate version from the official github repo
56
+
57
+ ```
58
+ wget https://github.com/apple/foundationdb/releases/download/7.3.3/FoundationDB-7.3.3_arm64.pkg
59
+ ```
60
+
61
+ setup the code on a management node and the webApp code can be developed by building the `docker-compose-dev.yml` file.
62
+
63
+
64
+ ```
65
+ sudo docker compose -f docker-compose-dev.yml up --build -d
66
+ ```
@@ -46,6 +46,7 @@ simplyblock_core/models/base_model.py
46
46
  simplyblock_core/models/caching_node.py
47
47
  simplyblock_core/models/cluster.py
48
48
  simplyblock_core/models/compute_node.py
49
+ simplyblock_core/models/deployer.py
49
50
  simplyblock_core/models/events.py
50
51
  simplyblock_core/models/global_settings.py
51
52
  simplyblock_core/models/iface.py
@@ -117,6 +118,7 @@ simplyblock_web/blueprints/node_api_caching_ks.py
117
118
  simplyblock_web/blueprints/snode_ops.py
118
119
  simplyblock_web/blueprints/web_api_caching_node.py
119
120
  simplyblock_web/blueprints/web_api_cluster.py
121
+ simplyblock_web/blueprints/web_api_deployer.py
120
122
  simplyblock_web/blueprints/web_api_device.py
121
123
  simplyblock_web/blueprints/web_api_lvol.py
122
124
  simplyblock_web/blueprints/web_api_mgmt_node.py
@@ -589,7 +589,7 @@ def update_cluster(cl_id):
589
589
  logger.info("Done")
590
590
  return True
591
591
 
592
-
592
+
593
593
  def cluster_grace_startup(cl_id):
594
594
  db_controller = DBController()
595
595
  cluster = db_controller.get_cluster_by_id(cl_id)
@@ -607,7 +607,7 @@ def cluster_grace_startup(cl_id):
607
607
  get_node = db_controller.get_storage_node_by_id(node.get_id())
608
608
  if get_node.status != StorageNode.STATUS_ONLINE:
609
609
  logger.error("failed to restart node")
610
-
610
+
611
611
  return True
612
612
 
613
613
 
@@ -624,7 +624,7 @@ def cluster_grace_shutdown(cl_id):
624
624
  storage_node_ops.suspend_storage_node(node.get_id())
625
625
  logger.info(f"Shutting down node: {node.get_id()}")
626
626
  storage_node_ops.shutdown_storage_node(node.get_id())
627
-
627
+
628
628
  logger.info(f"Suspending cluster: {cl_id}")
629
629
  suspend_cluster(cl_id)
630
630
  return True
@@ -9,6 +9,7 @@ from simplyblock_core.models.caching_node import CachingNode
9
9
  from simplyblock_core.models.cluster import ClusterMap
10
10
 
11
11
  from simplyblock_core.models.cluster import Cluster
12
+ from simplyblock_core.models.deployer import Deployer
12
13
  from simplyblock_core.models.compute_node import ComputeNode
13
14
  from simplyblock_core.models.job_schedule import JobSchedule
14
15
  from simplyblock_core.models.port_stat import PortStat
@@ -265,6 +266,14 @@ class DBController:
265
266
  if ret:
266
267
  return ret[0]
267
268
 
269
+ def get_deployers(self):
270
+ return Deployer().read_from_db(self.kv_store)
271
+
272
+ def get_deployer_by_id(self, deployer_id):
273
+ ret = Deployer().read_from_db(self.kv_store, id=deployer_id)
274
+ if ret:
275
+ return ret[0]
276
+
268
277
  def get_port_stats(self, node_id, port_id, limit=20):
269
278
  stats = PortStat().read_from_db(self.kv_store, id="%s/%s" % (node_id, port_id), limit=limit, reverse=True)
270
279
  return stats
@@ -0,0 +1,62 @@
1
+ # coding=utf-8
2
+ from simplyblock_core.models.base_model import BaseModel
3
+
4
+ class Deployer(BaseModel):
5
+
6
+ STATUS_ACTIVE = "active"
7
+ STATUS_READONLY = 'read_only'
8
+ STATUS_INACTIVE = "inactive"
9
+ STATUS_SUSPENDED = "suspended"
10
+ STATUS_DEGRADED = "degraded"
11
+
12
+ DOCKER_PULL = "dockerpull"
13
+ TF_STATE_INIT = "tfstate_init"
14
+ TF_PLAN = "tfplan"
15
+ TF_APPLY = "tfapply"
16
+
17
+ STATUS_CODE_MAP = {
18
+ DOCKER_PULL: 0,
19
+ TF_STATE_INIT: 1,
20
+ TF_PLAN: 2,
21
+ TF_APPLY: 3,
22
+ }
23
+
24
+ attributes = {
25
+ "uuid": {"type": str, 'default': ""},
26
+ "region": {"type": str, 'default': ""},
27
+ "availability_zone": {"type": str, 'default': ""},
28
+ "sbcli_cmd": {"type": str, 'default': ""},
29
+ "sbcli_pkg_version": {"type": str, 'default': ""},
30
+ "whitelist_ips": {"type": str, 'default': ""}, # todo: make this a list
31
+ "mgmt_nodes": {"type": int, 'default': 0},
32
+ "storage_nodes": {"type": int, 'default': 0},
33
+ "extra_nodes": {"type": int, 'default': 0},
34
+ "mgmt_nodes_instance_type": {"type": str, 'default': ""},
35
+ "storage_nodes_instance_type": {"type": str, 'default': ""},
36
+ "extra_nodes_instance_type": {"type": str, 'default': ""},
37
+ "storage_nodes_ebs_size1": {"type": int, 'default': 0}, # size in GB
38
+ "storage_nodes_ebs_size2": {"type": int, 'default': 0}, # size in GB
39
+ "volumes_per_storage_nodes": {"type": int, 'default': 0},
40
+ "nr_hugepages": {"type": int, 'default': 0},
41
+ "tf_state_bucket_name": {"type": str, 'default': ""},
42
+ "tf_state_bucket_region": {"type": str, 'default': ""},
43
+ "tf_workspace": {"type": str, 'default': ""},
44
+ "status": {"type": str, 'default': ""},
45
+ "tf_logs_bucket_name": {"type": str, 'default': ""},
46
+ "ecr_account_id": {"type": str, 'default': ""},
47
+ "ecr_region": {"type": str, 'default': ""},
48
+ "ecr_repository_name": {"type": str, 'default': ""},
49
+ "ecr_image_tag": {"type": str, 'default': ""},
50
+ "tf_output": {"type": str, 'default': ""},
51
+ }
52
+
53
+ def __init__(self, data=None):
54
+ super(Deployer, self).__init__()
55
+ self.set_attrs(self.attributes, data)
56
+ self.object_type = "object"
57
+
58
+ def get_id(self):
59
+ return self.uuid
60
+
61
+ def get_status_code(self):
62
+ return self.status
@@ -21,6 +21,13 @@ fi
21
21
 
22
22
  docker network create monitoring-net -d overlay --attachable
23
23
 
24
+ INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
25
+
26
+ if [ -n "$INSTANCE_ID" ]
27
+ then
28
+ export USE_EFS="rexray/efs"
29
+ fi
30
+
24
31
  docker stack deploy --compose-file="$DIR"/docker-compose-swarm-monitoring.yml monitoring
25
32
 
26
33
  # wait for the services to become online
@@ -41,6 +41,7 @@ services:
41
41
  GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost/graylog/"
42
42
  GRAYLOG_ELASTICSEARCH_HOSTS: "http://opensearch:9200"
43
43
  GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
44
+ GRAYLOG_SKIP_PREFLIGHT_CHECKS: "true"
44
45
  ports:
45
46
  - "5044:5044/tcp" # Beats
46
47
  - "5140:5140/udp" # Syslog
@@ -64,7 +65,7 @@ services:
64
65
  image: simplyblock/promagent
65
66
  environment:
66
67
  ClusterID: "${CLUSTER_ID}"
67
- ClusterIP: "${CLUSTER_IP}"
68
+ ClusterIP: "HAProxy"
68
69
  ClusterSecret: "${CLUSTER_SECRET}"
69
70
  deploy:
70
71
  placement:
@@ -151,12 +152,19 @@ services:
151
152
 
152
153
  volumes:
153
154
  mongodb_data:
155
+ driver: ${USE_EFS:-local}
154
156
  os_data:
157
+ driver: ${USE_EFS:-local}
155
158
  graylog_data:
159
+ driver: ${USE_EFS:-local}
156
160
  graylog_journal:
161
+ driver: ${USE_EFS:-local}
157
162
  grafana_data:
163
+ driver: ${USE_EFS:-local}
164
+ graylog_config:
165
+ driver: ${USE_EFS:-local}
158
166
  prometheus_data:
159
- alertmanager_data:
167
+ driver: ${USE_EFS:-local}
160
168
 
161
169
  networks:
162
170
  monitoring-net:
@@ -15,6 +15,8 @@ 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 --grant-all-permissions rexray/efs REXRAY_PREEMPT=true
19
+
18
20
  wget https://github.com/apple/foundationdb/releases/download/7.3.3/foundationdb-clients-7.3.3-1.el7.x86_64.rpm -q
19
21
  sudo rpm -U foundationdb-clients-7.3.3-1.el7.x86_64.rpm --quiet --reinstall
20
22
  rm -f foundationdb-clients-7.3.3-1.el7.x86_64.rpm
@@ -6,7 +6,7 @@ opt_h=0
6
6
  opt_l=""
7
7
  opt_r=0
8
8
  opt_s=5
9
- opt_t=600 # 10 min
9
+ opt_t=900 # 15 min
10
10
 
11
11
  start_epoc=$(date +%s)
12
12
  cmd_min_timeout=15
@@ -7,7 +7,7 @@ from flask import Flask
7
7
 
8
8
  import utils
9
9
  from blueprints import web_api_cluster, web_api_mgmt_node, web_api_device, \
10
- web_api_lvol, web_api_storage_node, web_api_pool, web_api_caching_node, web_api_snapshot
10
+ web_api_lvol, web_api_storage_node, web_api_pool, web_api_caching_node, web_api_snapshot, web_api_deployer
11
11
  from auth_middleware import token_required
12
12
  from simplyblock_core import constants
13
13
 
@@ -31,6 +31,7 @@ app.register_blueprint(web_api_snapshot.bp)
31
31
  app.register_blueprint(web_api_storage_node.bp)
32
32
  app.register_blueprint(web_api_pool.bp)
33
33
  app.register_blueprint(web_api_caching_node.bp)
34
+ app.register_blueprint(web_api_deployer.bp)
34
35
 
35
36
 
36
37
  @app.before_request