sbcli-dev 6.3.0__tar.gz → 6.3.2__tar.gz
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_dev-6.3.0 → sbcli_dev-6.3.2}/PKG-INFO +1 -1
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/env_var +1 -1
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/constants.py +2 -1
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/health_controller.py +2 -1
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/lvol_controller.py +4 -2
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/lvol_stat_collector.py +4 -3
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/new_device_discovery.py +2 -14
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/storage_node_monitor.py +11 -7
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/storage_node_ops.py +11 -16
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/README.md +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/pyproject.toml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/setup.cfg +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/setup.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/kv_store.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/app.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_web/utils.py +0 -0
|
@@ -276,7 +276,8 @@ def check_node(node_id, with_devices=True):
|
|
|
276
276
|
|
|
277
277
|
if snode.secondary_node_id:
|
|
278
278
|
second_node_1 = db_controller.get_storage_node_by_id(snode.secondary_node_id)
|
|
279
|
-
|
|
279
|
+
if second_node_1.status == StorageNode.STATUS_ONLINE:
|
|
280
|
+
lvstore_check &= _check_node_lvstore(lvstore_stack, second_node_1)
|
|
280
281
|
|
|
281
282
|
if snode.is_secondary_node:
|
|
282
283
|
for node in db_controller.get_storage_nodes():
|
|
@@ -1099,9 +1099,11 @@ def connect_lvol(uuid):
|
|
|
1099
1099
|
"nqn": lvol.nqn,
|
|
1100
1100
|
"reconnect-delay": constants.LVOL_NVME_CONNECT_RECONNECT_DELAY,
|
|
1101
1101
|
"ctrl-loss-tmo": constants.LVOL_NVME_CONNECT_CTRL_LOSS_TMO,
|
|
1102
|
+
"nr-io-queues": constants.LVOL_NVME_CONNECT_NR_IO_QUEUES,
|
|
1102
1103
|
"connect": f"sudo nvme connect --reconnect-delay={constants.LVOL_NVME_CONNECT_RECONNECT_DELAY} "
|
|
1103
|
-
f"--ctrl-loss-tmo={constants.LVOL_NVME_CONNECT_CTRL_LOSS_TMO}
|
|
1104
|
-
f"--
|
|
1104
|
+
f"--ctrl-loss-tmo={constants.LVOL_NVME_CONNECT_CTRL_LOSS_TMO} "
|
|
1105
|
+
f"--nr-io-queues={constants.LVOL_NVME_CONNECT_NR_IO_QUEUES} "
|
|
1106
|
+
f"--transport={transport} --traddr={ip} --trsvcid={port} --nqn={lvol.nqn}",
|
|
1105
1107
|
})
|
|
1106
1108
|
return out
|
|
1107
1109
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# coding=utf-8
|
|
2
2
|
import time
|
|
3
|
-
from email.policy import default
|
|
4
3
|
|
|
5
4
|
from simplyblock_core import constants, kv_store, utils
|
|
6
5
|
from simplyblock_core.controllers import lvol_events
|
|
7
6
|
from simplyblock_core.models.stats import LVolStatObject, PoolStatObject
|
|
7
|
+
from simplyblock_core.models.storage_node import StorageNode
|
|
8
8
|
from simplyblock_core.rpc_client import RPCClient
|
|
9
9
|
|
|
10
10
|
|
|
@@ -210,12 +210,13 @@ while True:
|
|
|
210
210
|
hosts=[lvol.node_id]
|
|
211
211
|
for host in hosts:
|
|
212
212
|
snode = db_controller.get_storage_node_by_id(host)
|
|
213
|
+
if snode.status != StorageNode.STATUS_ONLINE:
|
|
214
|
+
continue
|
|
213
215
|
rpc_client = RPCClient(
|
|
214
216
|
snode.mgmt_ip, snode.rpc_port,
|
|
215
217
|
snode.rpc_username, snode.rpc_password,
|
|
216
218
|
timeout=1, retry=2)
|
|
217
|
-
|
|
218
|
-
logger.info("Getting lVol stats: %s", lvol.uuid)
|
|
219
|
+
logger.info("Getting lVol stats: %s from node: %s", lvol.uuid, host)
|
|
219
220
|
stats_dict = rpc_client.get_lvol_stats(lvol.top_bdev)
|
|
220
221
|
if stats_dict and stats_dict['bdevs']:
|
|
221
222
|
stats.append( stats_dict['bdevs'][0])
|
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
# coding=utf-8
|
|
2
|
-
import logging
|
|
3
2
|
import time
|
|
4
|
-
import sys
|
|
5
3
|
|
|
6
|
-
from simplyblock_core import constants, kv_store, storage_node_ops
|
|
4
|
+
from simplyblock_core import constants, kv_store, storage_node_ops, utils
|
|
7
5
|
from simplyblock_core.models.nvme_device import NVMeDevice
|
|
8
6
|
from simplyblock_core.models.storage_node import StorageNode
|
|
9
7
|
|
|
10
|
-
# Import the GELF logger
|
|
11
|
-
from graypy import GELFTCPHandler
|
|
12
|
-
|
|
13
8
|
from simplyblock_core.snode_client import SNodeClient
|
|
14
9
|
|
|
15
|
-
|
|
16
|
-
logger_handler = logging.StreamHandler(stream=sys.stdout)
|
|
17
|
-
logger_handler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
|
|
18
|
-
gelf_handler = GELFTCPHandler('0.0.0.0', constants.GELF_PORT)
|
|
19
|
-
logger = logging.getLogger()
|
|
20
|
-
logger.addHandler(gelf_handler)
|
|
21
|
-
logger.addHandler(logger_handler)
|
|
22
|
-
logger.setLevel(logging.DEBUG)
|
|
10
|
+
logger = utils.get_logger(__name__)
|
|
23
11
|
|
|
24
12
|
# get DB controller
|
|
25
13
|
db_store = kv_store.KVStore()
|
|
@@ -182,8 +182,8 @@ def update_cluster_status(cluster_id):
|
|
|
182
182
|
def set_node_online(node):
|
|
183
183
|
if node.status != StorageNode.STATUS_ONLINE:
|
|
184
184
|
|
|
185
|
-
if not node.is_secondary_node and node.status == StorageNode.STATUS_UNREACHABLE and node.
|
|
186
|
-
|
|
185
|
+
if not node.is_secondary_node and node.status == StorageNode.STATUS_UNREACHABLE and node.lvols and \
|
|
186
|
+
cluster.status in [Cluster.STATUS_ACTIVE, Cluster.STATUS_DEGRADED, Cluster.STATUS_SUSPENDED]:
|
|
187
187
|
tasks_controller.add_node_to_auto_restart(node)
|
|
188
188
|
return
|
|
189
189
|
|
|
@@ -262,13 +262,17 @@ while True:
|
|
|
262
262
|
if snode.status == StorageNode.STATUS_SCHEDULABLE and not ping_check and not node_api_check:
|
|
263
263
|
continue
|
|
264
264
|
|
|
265
|
-
|
|
266
|
-
|
|
265
|
+
spdk_process = False
|
|
266
|
+
if node_api_check:
|
|
267
|
+
# 3- check spdk_process
|
|
268
|
+
spdk_process = health_controller._check_spdk_process_up(snode.mgmt_ip)
|
|
267
269
|
logger.info(f"Check: spdk process {snode.mgmt_ip}:5000 ... {spdk_process}")
|
|
268
270
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
271
|
+
node_rpc_check = False
|
|
272
|
+
if spdk_process:
|
|
273
|
+
# 4- check rpc
|
|
274
|
+
node_rpc_check = health_controller._check_node_rpc(
|
|
275
|
+
snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
|
|
272
276
|
logger.info(f"Check: node RPC {snode.mgmt_ip}:{snode.rpc_port} ... {node_rpc_check}")
|
|
273
277
|
|
|
274
278
|
is_node_online = ping_check and node_api_check and spdk_process and node_rpc_check
|
|
@@ -1255,14 +1255,11 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
|
1255
1255
|
logger.error("Failed to set nvme options")
|
|
1256
1256
|
return False
|
|
1257
1257
|
|
|
1258
|
-
qpair =
|
|
1259
|
-
if is_secondary_node:
|
|
1260
|
-
qpair *= 2
|
|
1261
|
-
|
|
1258
|
+
qpair = cluster.qpair_count
|
|
1262
1259
|
ret = rpc_client.transport_create("TCP", qpair)
|
|
1263
1260
|
if not ret:
|
|
1264
1261
|
logger.error(f"Failed to create transport TCP with qpair: {qpair}")
|
|
1265
|
-
|
|
1262
|
+
return False
|
|
1266
1263
|
|
|
1267
1264
|
# 7- set jc singleton mask
|
|
1268
1265
|
if snode.jc_singleton_mask:
|
|
@@ -1756,15 +1753,11 @@ def restart_storage_node(
|
|
|
1756
1753
|
logger.error("Failed to set nvme options")
|
|
1757
1754
|
return False
|
|
1758
1755
|
|
|
1759
|
-
qpair =
|
|
1760
|
-
constants.QPAIR_COUNT)
|
|
1761
|
-
if snode.is_secondary_node:
|
|
1762
|
-
qpair *= 2
|
|
1763
|
-
|
|
1756
|
+
qpair = cluster.qpair_count
|
|
1764
1757
|
ret = rpc_client.transport_create("TCP", qpair)
|
|
1765
1758
|
if not ret:
|
|
1766
1759
|
logger.error(f"Failed to create transport TCP with qpair: {qpair}")
|
|
1767
|
-
|
|
1760
|
+
return False
|
|
1768
1761
|
|
|
1769
1762
|
# 7- set jc singleton mask
|
|
1770
1763
|
if snode.jc_singleton_mask:
|
|
@@ -2971,7 +2964,7 @@ def recreate_lvstore(snode):
|
|
|
2971
2964
|
lvol.health_check = True
|
|
2972
2965
|
lvol.write_to_db(db_controller.kv_store)
|
|
2973
2966
|
|
|
2974
|
-
time.sleep(
|
|
2967
|
+
time.sleep(10)
|
|
2975
2968
|
|
|
2976
2969
|
if sec_node and sec_node.status == StorageNode.STATUS_ONLINE:
|
|
2977
2970
|
sec_rpc_client = RPCClient(sec_node.mgmt_ip, sec_node.rpc_port, sec_node.rpc_username, sec_node.rpc_password, timeout=3, retry=2)
|
|
@@ -3273,10 +3266,8 @@ def get_cluster_map(node_id):
|
|
|
3273
3266
|
return False
|
|
3274
3267
|
|
|
3275
3268
|
distribs_list = []
|
|
3276
|
-
nodes = []
|
|
3277
|
-
|
|
3269
|
+
nodes = [snode]
|
|
3278
3270
|
if snode.is_secondary_node:
|
|
3279
|
-
nodes = [snode]
|
|
3280
3271
|
for node in db_controller.get_storage_nodes():
|
|
3281
3272
|
if node.secondary_node_id == snode.get_id():
|
|
3282
3273
|
for bdev in node.lvstore_stack:
|
|
@@ -3285,7 +3276,11 @@ def get_cluster_map(node_id):
|
|
|
3285
3276
|
distribs_list.extend(bdev["distribs_list"])
|
|
3286
3277
|
|
|
3287
3278
|
else:
|
|
3288
|
-
|
|
3279
|
+
if snode.secondary_node_id:
|
|
3280
|
+
sec = db_controller.get_storage_node_by_id(snode.secondary_node_id)
|
|
3281
|
+
if sec:
|
|
3282
|
+
nodes.append(sec)
|
|
3283
|
+
|
|
3289
3284
|
for bdev in snode.lvstore_stack:
|
|
3290
3285
|
type = bdev['type']
|
|
3291
3286
|
if type == "bdev_raid":
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-6.3.0 → sbcli_dev-6.3.2}/simplyblock_core/services/tasks_runner_new_dev_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|