sbcli-pre 1.4.4__zip → 1.4.5__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.4.4 → sbcli_pre-1.4.5}/PKG-INFO +11 -1
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/env_var +1 -1
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/sbcli_pre.egg-info/PKG-INFO +11 -1
- sbcli_pre-1.4.5/sbcli_pre.egg-info/requires.txt +18 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/setup.py +10 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/cnode_client.py +11 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/constants.py +1 -1
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/caching_node_controller.py +43 -24
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/storage_node.py +3 -4
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/deploy_stack.sh +9 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +5 -14
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/caching_node_monitor.py +2 -14
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/cap_monitor.py +2 -15
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/capacity_and_stats_collector.py +3 -13
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/device_monitor.py +2 -14
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/distr_event_collector.py +3 -14
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/health_check_service.py +4 -15
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/lvol_monitor.py +5 -17
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/lvol_stat_collector.py +3 -15
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/mgmt_node_monitor.py +2 -12
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/port_stat_collector.py +3 -16
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/storage_node_monitor.py +3 -17
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/tasks_runner_migration.py +2 -14
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/tasks_runner_restart.py +2 -15
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/storage_node_ops.py +91 -87
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/utils.py +15 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/app.py +1 -2
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/caching_node_ops.py +72 -1
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/caching_node_ops_k8s.py +76 -1
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/snode_ops.py +42 -42
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/templates/deploy_spdk.yaml.j2 +8 -3
- sbcli_pre-1.4.4/sbcli_pre.egg-info/requires.txt +0 -8
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/README.md +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/pyproject.toml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/sbcli_pre.egg-info/SOURCES.txt +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/sbcli_pre.egg-info/dependency_links.txt +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/sbcli_pre.egg-info/entry_points.txt +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/sbcli_pre.egg-info/top_level.txt +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/setup.cfg +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_cli/cli.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_cli/main.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/__init__.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/kv_store.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/events.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/iface.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/pool.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/models/stats.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/snode_client.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/__init__.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/node_utils.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/snode_app.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/delete.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_web/static/tst.py +0 -0
- {sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/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.
|
3
|
+
Version: 1.4.5
|
4
4
|
Summary: CLI for managing SimplyBlock cluster
|
5
5
|
Home-page: https://www.simplyblock.io/
|
6
6
|
Author: Hamdy
|
@@ -8,12 +8,22 @@ Author-email: hamdy@simplyblock.io
|
|
8
8
|
Description-Content-Type: text/markdown
|
9
9
|
Requires-Dist: foundationdb
|
10
10
|
Requires-Dist: requests
|
11
|
+
Requires-Dist: numpy
|
11
12
|
Requires-Dist: typing
|
12
13
|
Requires-Dist: prettytable
|
13
14
|
Requires-Dist: docker
|
14
15
|
Requires-Dist: psutil
|
15
16
|
Requires-Dist: py-cpuinfo
|
17
|
+
Requires-Dist: pytest
|
18
|
+
Requires-Dist: mock
|
19
|
+
Requires-Dist: setuptools
|
20
|
+
Requires-Dist: flask
|
21
|
+
Requires-Dist: kubernetes
|
22
|
+
Requires-Dist: PyYAML
|
23
|
+
Requires-Dist: urllib3
|
16
24
|
Requires-Dist: graypy
|
25
|
+
Requires-Dist: boto3
|
26
|
+
Requires-Dist: jinja2
|
17
27
|
|
18
28
|
|
19
29
|
# Simply Block
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sbcli-pre
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.5
|
4
4
|
Summary: CLI for managing SimplyBlock cluster
|
5
5
|
Home-page: https://www.simplyblock.io/
|
6
6
|
Author: Hamdy
|
@@ -8,12 +8,22 @@ Author-email: hamdy@simplyblock.io
|
|
8
8
|
Description-Content-Type: text/markdown
|
9
9
|
Requires-Dist: foundationdb
|
10
10
|
Requires-Dist: requests
|
11
|
+
Requires-Dist: numpy
|
11
12
|
Requires-Dist: typing
|
12
13
|
Requires-Dist: prettytable
|
13
14
|
Requires-Dist: docker
|
14
15
|
Requires-Dist: psutil
|
15
16
|
Requires-Dist: py-cpuinfo
|
17
|
+
Requires-Dist: pytest
|
18
|
+
Requires-Dist: mock
|
19
|
+
Requires-Dist: setuptools
|
20
|
+
Requires-Dist: flask
|
21
|
+
Requires-Dist: kubernetes
|
22
|
+
Requires-Dist: PyYAML
|
23
|
+
Requires-Dist: urllib3
|
16
24
|
Requires-Dist: graypy
|
25
|
+
Requires-Dist: boto3
|
26
|
+
Requires-Dist: jinja2
|
17
27
|
|
18
28
|
|
19
29
|
# Simply Block
|
@@ -68,12 +68,22 @@ setup(
|
|
68
68
|
install_requires=[
|
69
69
|
"foundationdb",
|
70
70
|
"requests",
|
71
|
+
"numpy",
|
71
72
|
"typing",
|
72
73
|
"prettytable",
|
73
74
|
"docker",
|
74
75
|
"psutil",
|
75
76
|
"py-cpuinfo",
|
77
|
+
"pytest",
|
78
|
+
"mock",
|
79
|
+
"setuptools",
|
80
|
+
"flask",
|
81
|
+
"kubernetes",
|
82
|
+
"PyYAML",
|
83
|
+
"urllib3",
|
76
84
|
"graypy",
|
85
|
+
"boto3",
|
86
|
+
"jinja2",
|
77
87
|
],
|
78
88
|
entry_points={
|
79
89
|
'console_scripts': [
|
@@ -111,3 +111,14 @@ class CNodeClient:
|
|
111
111
|
|
112
112
|
def disconnect_all(self):
|
113
113
|
return self._request("POST", "cnode/disconnect_all")
|
114
|
+
|
115
|
+
def make_gpt_partitions(self, nbd_device, jm_percent):
|
116
|
+
params = {
|
117
|
+
"nbd_device": nbd_device,
|
118
|
+
"jm_percent": jm_percent,
|
119
|
+
}
|
120
|
+
return self._request("POST", "cnode/make_gpt_partitions", params)
|
121
|
+
|
122
|
+
def delete_dev_gpt_partitions(self, device_pci):
|
123
|
+
params = {"device_pci": device_pci}
|
124
|
+
return self._request("POST", "cnode/delete_dev_gpt_partitions", params)
|
@@ -84,9 +84,9 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
84
84
|
return False
|
85
85
|
|
86
86
|
logger.info(f"Add Caching node: {node_ip}")
|
87
|
-
|
87
|
+
cnode_api = CNodeClient(node_ip)
|
88
88
|
|
89
|
-
node_info, _ =
|
89
|
+
node_info, _ = cnode_api.info()
|
90
90
|
system_id = node_info['system_id']
|
91
91
|
hostname = node_info['hostname']
|
92
92
|
logger.info(f"Node found: {node_info['hostname']}")
|
@@ -95,8 +95,8 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
95
95
|
logger.error("Node already exists, try remove it first.")
|
96
96
|
return False
|
97
97
|
|
98
|
-
node_info, _ =
|
99
|
-
results, err =
|
98
|
+
node_info, _ = cnode_api.info()
|
99
|
+
results, err = cnode_api.join_db(db_connection=cluster.db_connection)
|
100
100
|
|
101
101
|
data_nics = []
|
102
102
|
names = data_nics_list or [iface_name]
|
@@ -156,7 +156,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
156
156
|
return False
|
157
157
|
|
158
158
|
logger.info(f"Deploying SPDK with HP: {utils.humanbytes(spdk_mem)}")
|
159
|
-
results, err =
|
159
|
+
results, err = cnode_api.spdk_process_start(
|
160
160
|
spdk_cpu_mask, spdk_mem, spdk_image, snode.mgmt_ip,
|
161
161
|
snode.rpc_port, snode.rpc_username, snode.rpc_password, namespace)
|
162
162
|
if not results:
|
@@ -165,7 +165,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
165
165
|
|
166
166
|
retries = 20
|
167
167
|
while retries > 0:
|
168
|
-
resp, _ =
|
168
|
+
resp, _ = cnode_api.spdk_process_is_up()
|
169
169
|
if resp:
|
170
170
|
logger.info(f"Pod is up")
|
171
171
|
break
|
@@ -178,7 +178,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
178
178
|
logger.error("Pod is not running, exiting")
|
179
179
|
return False
|
180
180
|
|
181
|
-
time.sleep(
|
181
|
+
time.sleep(20)
|
182
182
|
|
183
183
|
# creating RPCClient instance
|
184
184
|
rpc_client = RPCClient(
|
@@ -187,7 +187,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
187
187
|
timeout=60*5, retry=5)
|
188
188
|
|
189
189
|
# # get new node info after starting spdk
|
190
|
-
|
190
|
+
node_info, _ = cnode_api.info()
|
191
191
|
# mem = node_info['memory_details']['huge_free']
|
192
192
|
# logger.info(f"Free Hugepages detected: {utils.humanbytes(mem)}")
|
193
193
|
|
@@ -211,21 +211,40 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
211
211
|
|
212
212
|
ssd_size = ssd_dev.size
|
213
213
|
supported_ssd_size = mem * 100 / 2.25
|
214
|
-
split_factor = math.ceil(ssd_size/supported_ssd_size)
|
215
214
|
|
216
215
|
logger.info(f"Supported SSD size: {utils.humanbytes(supported_ssd_size)}")
|
217
216
|
logger.info(f"SSD size: {utils.humanbytes(ssd_size)}")
|
218
217
|
|
219
|
-
cache_size = 0
|
220
|
-
cache_bdev = None
|
221
218
|
if supported_ssd_size < ssd_size:
|
222
|
-
logger.info(f"SSD size is bigger than the supported size,
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
219
|
+
logger.info(f"SSD size is bigger than the supported size, creating partition")
|
220
|
+
|
221
|
+
nbd_device = rpc_client.nbd_start_disk(ssd_dev.nvme_bdev)
|
222
|
+
time.sleep(3)
|
223
|
+
if not nbd_device:
|
224
|
+
logger.error(f"Failed to start nbd dev")
|
225
|
+
return False
|
226
|
+
|
227
|
+
jm_percent = int((supported_ssd_size/ssd_size) * 100)
|
228
|
+
result, error = cnode_api.make_gpt_partitions(nbd_device, jm_percent)
|
229
|
+
if error:
|
230
|
+
logger.error(f"Failed to make partitions")
|
231
|
+
logger.error(error)
|
232
|
+
return False
|
233
|
+
time.sleep(3)
|
234
|
+
rpc_client.nbd_stop_disk(nbd_device)
|
235
|
+
time.sleep(1)
|
236
|
+
rpc_client.bdev_nvme_detach_controller(ssd_dev.nvme_controller)
|
237
|
+
time.sleep(1)
|
238
|
+
rpc_client.bdev_nvme_controller_attach(ssd_dev.nvme_controller, ssd_dev.pcie_address)
|
239
|
+
time.sleep(1)
|
240
|
+
rpc_client.bdev_examine(ssd_dev.nvme_bdev)
|
241
|
+
time.sleep(1)
|
242
|
+
|
243
|
+
cache_bdev = f"{ssd_dev.nvme_bdev}p1"
|
244
|
+
cache_size = int(supported_ssd_size)
|
245
|
+
|
227
246
|
else:
|
228
|
-
|
247
|
+
|
229
248
|
cache_bdev = ssd_dev.nvme_bdev
|
230
249
|
cache_size = ssd_dev.size
|
231
250
|
|
@@ -282,13 +301,13 @@ def recreate(node_id):
|
|
282
301
|
logger.error("No NVMe devices was found!")
|
283
302
|
return False
|
284
303
|
|
285
|
-
snode.nvme_devices = nvme_devs
|
304
|
+
# snode.nvme_devices = nvme_devs
|
286
305
|
# snode.write_to_db(db_controller.kv_store)
|
287
306
|
|
288
|
-
ssd_dev = nvme_devs[0]
|
307
|
+
# ssd_dev = nvme_devs[0]
|
289
308
|
|
290
|
-
if snode.cache_split_factor > 1:
|
291
|
-
|
309
|
+
# if snode.cache_split_factor > 1:
|
310
|
+
# ret = rpc_client.bdev_split(ssd_dev.nvme_bdev, snode.cache_split_factor)
|
292
311
|
|
293
312
|
logger.info(f"Cache size: {utils.humanbytes(snode.cache_size)}")
|
294
313
|
|
@@ -688,13 +707,13 @@ def remove_node(node_id, force=False):
|
|
688
707
|
|
689
708
|
logger.info("Removing node")
|
690
709
|
|
691
|
-
|
692
710
|
try:
|
693
711
|
snode_api = CNodeClient(snode.api_endpoint)
|
694
712
|
results, err = snode_api.spdk_process_kill()
|
713
|
+
ret = snode_api.delete_dev_gpt_partitions(snode.nvme_devices[0].pcie_address)
|
714
|
+
|
695
715
|
except:
|
696
716
|
pass
|
697
|
-
snode.remove(db_controller.kv_store)
|
698
717
|
|
699
|
-
|
718
|
+
snode.remove(db_controller.kv_store)
|
700
719
|
logger.info("done")
|
@@ -85,10 +85,9 @@ class StorageNode(BaseModel):
|
|
85
85
|
"spdk_image": {"type": str, "default": ""},
|
86
86
|
"spdk_debug": {"type": bool, "default": False},
|
87
87
|
|
88
|
-
|
89
|
-
"
|
90
|
-
"
|
91
|
-
"ec2_public_ip": {"type": str, "default": ""},
|
88
|
+
"cloud_instance_id": {"type": str, "default": ""},
|
89
|
+
"cloud_instance_type": {"type": str, "default": ""},
|
90
|
+
"cloud_instance_public_ip": {"type": str, "default": ""},
|
92
91
|
|
93
92
|
# IO buffer options
|
94
93
|
"iobuf_small_pool_count": {"type": int, "default": 0},
|
@@ -19,6 +19,15 @@ then
|
|
19
19
|
export FDB_CLUSTER_FILE_CONTENTS=$FDB_CLUSTER_FILE_CONTENTS
|
20
20
|
fi
|
21
21
|
|
22
|
+
if [[ "$LOG_DELETION_INTERVAL" == *d ]]; then
|
23
|
+
export MAX_NUMBER_OF_INDICES=${LOG_DELETION_INTERVAL%d}
|
24
|
+
elif [[ "$LOG_DELETION_INTERVAL" == *h || "$LOG_DELETION_INTERVAL" == *m ]]; then
|
25
|
+
export MAX_NUMBER_OF_INDICES=1
|
26
|
+
else
|
27
|
+
echo "Invalid LOG_DELETION_INTERVAL format. Please use a value ending in 'd', 'h', or 'm'."
|
28
|
+
exit 1
|
29
|
+
fi
|
30
|
+
|
22
31
|
docker network create monitoring-net -d overlay --attachable
|
23
32
|
|
24
33
|
docker stack deploy --compose-file="$DIR"/docker-compose-swarm-monitoring.yml monitoring
|
{sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
RENAMED
@@ -42,6 +42,10 @@ services:
|
|
42
42
|
GRAYLOG_ELASTICSEARCH_HOSTS: "http://opensearch:9200"
|
43
43
|
GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
|
44
44
|
GRAYLOG_SKIP_PREFLIGHT_CHECKS: "true"
|
45
|
+
GRAYLOG_ROTATION_STRATEGY: "time"
|
46
|
+
GRAYLOG_RETENTION_STRATEGY: "delete"
|
47
|
+
GRAYLOG_ELASTICSEARCH_MAX_NUMBER_OF_INDICES: "${MAX_NUMBER_OF_INDICES}"
|
48
|
+
GRAYLOG_ELASTICSEARCH_MAX_TIME_PER_INDEX: "1d"
|
45
49
|
ports:
|
46
50
|
- "5044:5044/tcp" # Beats
|
47
51
|
- "5140:5140/udp" # Syslog
|
@@ -190,8 +194,6 @@ services:
|
|
190
194
|
restart: "always"
|
191
195
|
deploy:
|
192
196
|
mode: global
|
193
|
-
placement:
|
194
|
-
constraints: [node.role == worker]
|
195
197
|
networks:
|
196
198
|
- monitoring-net
|
197
199
|
|
@@ -216,24 +218,13 @@ services:
|
|
216
218
|
networks:
|
217
219
|
- monitoring-net
|
218
220
|
|
219
|
-
CleanupGraylog:
|
220
|
-
image: $SIMPLYBLOCK_DOCKER_IMAGE
|
221
|
-
environment:
|
222
|
-
LOG_DELETION_INTERVAL: "${LOG_DELETION_INTERVAL}"
|
223
|
-
command: "python simplyblock_core/workers/cleanup_graylog.py"
|
224
|
-
deploy:
|
225
|
-
placement:
|
226
|
-
constraints: [node.role == manager]
|
227
|
-
networks:
|
228
|
-
- monitoring-net
|
229
|
-
|
230
221
|
volumes:
|
231
222
|
mongodb_data:
|
232
223
|
os_data:
|
233
224
|
graylog_data:
|
234
225
|
graylog_journal:
|
235
226
|
grafana_data:
|
236
|
-
graylog_config:
|
227
|
+
graylog_config:
|
237
228
|
prometheus_data:
|
238
229
|
thanos_compactor_data:
|
239
230
|
|
@@ -1,28 +1,16 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
2
|
import os
|
4
3
|
|
5
4
|
import time
|
6
|
-
import sys
|
7
5
|
from datetime import datetime
|
8
6
|
|
9
7
|
|
10
|
-
from simplyblock_core import constants, kv_store
|
8
|
+
from simplyblock_core import constants, kv_store, utils
|
11
9
|
from simplyblock_core.rpc_client import RPCClient
|
12
10
|
from simplyblock_core.models.caching_node import CachingNode
|
13
11
|
|
14
|
-
# Import the GELF logger
|
15
|
-
from graypy import GELFUDPHandler
|
16
|
-
|
17
|
-
# configure logging
|
18
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
19
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
20
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
21
|
-
logger = logging.getLogger()
|
22
|
-
logger.addHandler(gelf_handler)
|
23
|
-
logger.addHandler(logger_handler)
|
24
|
-
logger.setLevel(logging.DEBUG)
|
25
12
|
|
13
|
+
logger = utils.get_logger(__name__)
|
26
14
|
|
27
15
|
# get DB controller
|
28
16
|
db_store = kv_store.KVStore()
|
@@ -1,28 +1,15 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
2
|
|
4
3
|
import time
|
5
|
-
import sys
|
6
4
|
|
7
5
|
|
8
|
-
|
9
|
-
from simplyblock_core import kv_store, constants, cluster_ops
|
6
|
+
from simplyblock_core import kv_store, constants, cluster_ops, utils
|
10
7
|
from simplyblock_core.controllers import cluster_events
|
11
8
|
from simplyblock_core.models.cluster import Cluster
|
12
9
|
|
13
|
-
# Import the GELF logger
|
14
|
-
from graypy import GELFUDPHandler
|
15
10
|
|
16
|
-
|
17
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
18
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
19
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
20
|
-
logger = logging.getLogger()
|
21
|
-
logger.addHandler(gelf_handler)
|
22
|
-
logger.addHandler(logger_handler)
|
23
|
-
logger.setLevel(logging.DEBUG)
|
11
|
+
logger = utils.get_logger(__name__)
|
24
12
|
|
25
|
-
### script to test connection once connection is ascertain
|
26
13
|
# get DB controller
|
27
14
|
db_controller = kv_store.DBController()
|
28
15
|
|
{sbcli_pre-1.4.4 → sbcli_pre-1.4.5}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
@@ -1,16 +1,14 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
|
-
|
4
2
|
import time
|
5
|
-
import sys
|
6
3
|
|
7
4
|
from simplyblock_core import constants, kv_store, utils
|
8
5
|
from simplyblock_core.models.nvme_device import NVMeDevice
|
9
6
|
from simplyblock_core.rpc_client import RPCClient
|
10
7
|
from simplyblock_core.models.stats import DeviceStatObject, NodeStatObject, ClusterStatObject
|
11
8
|
|
12
|
-
|
13
|
-
|
9
|
+
|
10
|
+
logger = utils.get_logger(__name__)
|
11
|
+
|
14
12
|
|
15
13
|
last_object_record = {}
|
16
14
|
|
@@ -150,14 +148,6 @@ def add_cluster_stats(cl, records):
|
|
150
148
|
return stat_obj
|
151
149
|
|
152
150
|
|
153
|
-
# configure logging
|
154
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
155
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
156
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
157
|
-
logger = logging.getLogger()
|
158
|
-
logger.addHandler(gelf_handler)
|
159
|
-
logger.addHandler(logger_handler)
|
160
|
-
logger.setLevel(logging.DEBUG)
|
161
151
|
|
162
152
|
# get DB controller
|
163
153
|
db_controller = kv_store.DBController()
|
@@ -1,26 +1,14 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
2
|
import time
|
4
|
-
import sys
|
5
|
-
import uuid
|
6
3
|
|
7
|
-
from simplyblock_core import constants, kv_store
|
4
|
+
from simplyblock_core import constants, kv_store, utils
|
8
5
|
from simplyblock_core.controllers import tasks_controller
|
9
6
|
from simplyblock_core.models.nvme_device import NVMeDevice
|
10
7
|
from simplyblock_core.models.storage_node import StorageNode
|
11
8
|
|
12
|
-
# Import the GELF logger
|
13
|
-
from graypy import GELFUDPHandler
|
14
9
|
|
10
|
+
logger = utils.get_logger(__name__)
|
15
11
|
|
16
|
-
# configure logging
|
17
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
18
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
19
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
20
|
-
logger = logging.getLogger()
|
21
|
-
logger.addHandler(gelf_handler)
|
22
|
-
logger.addHandler(logger_handler)
|
23
|
-
logger.setLevel(logging.DEBUG)
|
24
12
|
|
25
13
|
# get DB controller
|
26
14
|
db_store = kv_store.KVStore()
|
@@ -1,29 +1,18 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
|
-
import os
|
4
|
-
|
5
2
|
import time
|
6
|
-
import sys
|
7
3
|
|
8
4
|
|
9
5
|
from simplyblock_core import constants, kv_store, utils, rpc_client
|
10
6
|
from simplyblock_core.controllers import events_controller, device_controller, lvol_events
|
11
7
|
from simplyblock_core.models.lvol_model import LVol
|
12
8
|
|
13
|
-
# Import the GELF logger
|
14
|
-
from graypy import GELFUDPHandler
|
15
9
|
|
16
10
|
from simplyblock_core.models.nvme_device import NVMeDevice
|
17
11
|
from simplyblock_core.rpc_client import RPCClient
|
18
12
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
23
|
-
logger = logging.getLogger()
|
24
|
-
logger.addHandler(gelf_handler)
|
25
|
-
logger.addHandler(logger_handler)
|
26
|
-
logger.setLevel(logging.DEBUG)
|
13
|
+
|
14
|
+
logger = utils.get_logger(__name__)
|
15
|
+
|
27
16
|
|
28
17
|
# get DB controller
|
29
18
|
db_controller = kv_store.DBController()
|
@@ -1,18 +1,16 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
|
-
|
4
2
|
import time
|
5
|
-
import sys
|
6
3
|
from datetime import datetime
|
7
4
|
|
8
5
|
|
9
6
|
from simplyblock_core.controllers import health_controller, storage_events, device_events
|
10
7
|
from simplyblock_core.models.storage_node import StorageNode
|
11
8
|
from simplyblock_core.rpc_client import RPCClient
|
12
|
-
from simplyblock_core import constants, kv_store
|
9
|
+
from simplyblock_core import constants, kv_store, utils
|
10
|
+
|
11
|
+
|
12
|
+
logger = utils.get_logger(__name__)
|
13
13
|
|
14
|
-
# Import the GELF logger
|
15
|
-
from graypy import GELFUDPHandler
|
16
14
|
|
17
15
|
def set_node_health_check(snode, health_check_status):
|
18
16
|
snode = db_controller.get_storage_node_by_id(snode.get_id())
|
@@ -40,15 +38,6 @@ def set_device_health_check(cluster_id, device, health_check_status):
|
|
40
38
|
dev, dev.health_check, old_status, caused_by="monitor")
|
41
39
|
|
42
40
|
|
43
|
-
# configure logging
|
44
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
45
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
46
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
47
|
-
logger = logging.getLogger()
|
48
|
-
logger.addHandler(gelf_handler)
|
49
|
-
logger.addHandler(logger_handler)
|
50
|
-
logger.setLevel(logging.DEBUG)
|
51
|
-
|
52
41
|
# get DB controller
|
53
42
|
db_store = kv_store.KVStore()
|
54
43
|
db_controller = kv_store.DBController()
|
@@ -1,17 +1,15 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
|
-
import os
|
4
|
-
|
5
2
|
import time
|
6
|
-
import sys
|
7
3
|
from datetime import datetime
|
8
4
|
|
9
|
-
|
5
|
+
|
6
|
+
from simplyblock_core import constants, kv_store, utils
|
10
7
|
from simplyblock_core.models.lvol_model import LVol
|
11
8
|
from simplyblock_core.controllers import health_controller, lvol_events
|
12
9
|
|
13
|
-
|
14
|
-
|
10
|
+
|
11
|
+
logger = utils.get_logger(__name__)
|
12
|
+
|
15
13
|
|
16
14
|
def set_lvol_status(lvol, status):
|
17
15
|
if lvol.status != status:
|
@@ -33,20 +31,10 @@ def set_lvol_health_check(lvol, health_check_status):
|
|
33
31
|
lvol_events.lvol_health_check_change(lvol, lvol.health_check, old_status, caused_by="monitor")
|
34
32
|
|
35
33
|
|
36
|
-
# configure logging
|
37
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
38
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
39
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
40
|
-
logger = logging.getLogger()
|
41
|
-
logger.addHandler(gelf_handler)
|
42
|
-
logger.addHandler(logger_handler)
|
43
|
-
logger.setLevel(logging.DEBUG)
|
44
|
-
|
45
34
|
# get DB controller
|
46
35
|
db_store = kv_store.KVStore()
|
47
36
|
db_controller = kv_store.DBController()
|
48
37
|
|
49
|
-
|
50
38
|
logger.info("Starting LVol monitor...")
|
51
39
|
while True:
|
52
40
|
lvols = db_controller.get_lvols() # pass
|
@@ -1,8 +1,5 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
|
-
|
4
2
|
import time
|
5
|
-
import sys
|
6
3
|
|
7
4
|
|
8
5
|
from simplyblock_core import constants, kv_store, utils
|
@@ -10,8 +7,9 @@ from simplyblock_core.controllers import lvol_events
|
|
10
7
|
from simplyblock_core.models.stats import LVolStatObject, PoolStatObject
|
11
8
|
from simplyblock_core.rpc_client import RPCClient
|
12
9
|
|
13
|
-
|
14
|
-
|
10
|
+
|
11
|
+
logger = utils.get_logger(__name__)
|
12
|
+
|
15
13
|
|
16
14
|
last_object_record = {}
|
17
15
|
|
@@ -97,20 +95,10 @@ def add_pool_stats(pool, records):
|
|
97
95
|
return stat_obj
|
98
96
|
|
99
97
|
|
100
|
-
# configure logging
|
101
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
102
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
103
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
104
|
-
logger = logging.getLogger()
|
105
|
-
logger.addHandler(gelf_handler)
|
106
|
-
logger.addHandler(logger_handler)
|
107
|
-
logger.setLevel(logging.DEBUG)
|
108
|
-
|
109
98
|
# get DB controller
|
110
99
|
db_store = kv_store.KVStore()
|
111
100
|
db_controller = kv_store.DBController()
|
112
101
|
|
113
|
-
|
114
102
|
logger.info("Starting stats collector...")
|
115
103
|
while True:
|
116
104
|
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
import logging
|
3
2
|
import os
|
4
3
|
|
5
4
|
import time
|
6
|
-
import sys
|
7
5
|
from datetime import datetime
|
8
6
|
|
9
7
|
|
@@ -11,23 +9,15 @@ from simplyblock_core import constants, kv_store, utils
|
|
11
9
|
from simplyblock_core.controllers import mgmt_events
|
12
10
|
from simplyblock_core.models.mgmt_node import MgmtNode
|
13
11
|
|
14
|
-
# Import the GELF logger
|
15
|
-
from graypy import GELFUDPHandler
|
16
12
|
|
17
|
-
|
18
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
19
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
20
|
-
gelf_handler = GELFUDPHandler('0.0.0.0', constants.GELF_PORT)
|
21
|
-
logger = logging.getLogger()
|
22
|
-
logger.addHandler(gelf_handler)
|
23
|
-
logger.addHandler(logger_handler)
|
24
|
-
logger.setLevel(logging.DEBUG)
|
13
|
+
logger = utils.get_logger(__name__)
|
25
14
|
|
26
15
|
|
27
16
|
# get DB controller
|
28
17
|
db_store = kv_store.KVStore()
|
29
18
|
db_controller = kv_store.DBController(kv_store=db_store)
|
30
19
|
|
20
|
+
|
31
21
|
def set_node_online(node):
|
32
22
|
if node.status == MgmtNode.STATUS_UNREACHABLE:
|
33
23
|
snode = db_controller.get_mgmt_node_by_id(node.get_id())
|