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.
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/PKG-INFO +20 -5
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/README.md +19 -4
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/env_var +1 -1
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/PKG-INFO +20 -5
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/SOURCES.txt +2 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/cluster_ops.py +3 -3
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/kv_store.py +9 -0
- sbcli_pre-1.2.6/simplyblock_core/models/deployer.py +62 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/deploy_stack.sh +7 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +10 -2
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/install_deps.sh +2 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/stack_deploy_wait.sh +1 -1
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/app.py +2 -1
- sbcli_pre-1.2.6/simplyblock_web/blueprints/web_api_deployer.py +394 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/pyproject.toml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/dependency_links.txt +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/entry_points.txt +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/requires.txt +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/sbcli_pre.egg-info/top_level.txt +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/setup.cfg +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/setup.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_cli/cli.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_cli/main.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/__init__.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/constants.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/events.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/iface.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/pool.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/stats.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/distr_event_collector.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/snode_client.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/storage_node_ops.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/utils.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/__init__.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/node_utils.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/snode_app.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/delete.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/static/tst.py +0 -0
- {sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
- {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.
|
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
|
[](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
|
[](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,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sbcli-pre
|
3
|
-
Version: 1.2.
|
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
|
[](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
|
{sbcli_pre-1.2.4 → sbcli_pre-1.2.6}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
RENAMED
@@ -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: "
|
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
|
-
|
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
|
@@ -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
|