sbcli-dev 17.3.7__tar.gz → 17.3.8__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-17.3.7 → sbcli_dev-17.3.8}/PKG-INFO +1 -1
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/health_controller.py +159 -7
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/env_var +1 -1
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/hublvol.py +3 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/health_check_service.py +14 -5
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/README.md +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/pyproject.toml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/requirements.txt +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/setup.cfg +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/setup.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_cli/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_cli/clibase.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/db_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/spdk/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/spdk/client.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/spdk_stats_collector.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/storage_node_ops.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/test/test_utils.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/README.md +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/app.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/node_utils_k8s.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/requirements.txt +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/swagger.yaml +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/utils.py +0 -0
|
@@ -118,6 +118,159 @@ def _check_node_ping(ip):
|
|
|
118
118
|
else:
|
|
119
119
|
return False
|
|
120
120
|
|
|
121
|
+
def _check_node_hublvol(node: StorageNode, node_bdev_names=None, node_lvols_nqns=None):
|
|
122
|
+
logger.info(f"Checking Hublvol: {node.hublvol.name} on node {node.get_id()}")
|
|
123
|
+
db_controller = DBController()
|
|
124
|
+
|
|
125
|
+
passed = True
|
|
126
|
+
try:
|
|
127
|
+
rpc_client = RPCClient(
|
|
128
|
+
node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
129
|
+
|
|
130
|
+
# if not node_bdev_names:
|
|
131
|
+
# ret = rpc_client.get_bdevs()
|
|
132
|
+
# if ret:
|
|
133
|
+
# node_bdev_names = [b['name'] for b in ret]
|
|
134
|
+
# else:
|
|
135
|
+
# node_bdev_names = []
|
|
136
|
+
|
|
137
|
+
if not node_lvols_nqns:
|
|
138
|
+
node_lvols_nqns = {}
|
|
139
|
+
ret = rpc_client.subsystem_list()
|
|
140
|
+
for sub in ret:
|
|
141
|
+
node_lvols_nqns[sub['nqn']] = sub
|
|
142
|
+
|
|
143
|
+
if node.hublvol.uuid in node_bdev_names:
|
|
144
|
+
logger.info(f"Checking bdev: {node.hublvol.uuid} ... ok")
|
|
145
|
+
else:
|
|
146
|
+
logger.error(f"Checking bdev: {node.hublvol.uuid} ... failed")
|
|
147
|
+
passed = False
|
|
148
|
+
|
|
149
|
+
if node.hublvol.nqn in node_lvols_nqns:
|
|
150
|
+
logger.info(f"Checking subsystem ... ok")
|
|
151
|
+
if node_lvols_nqns[node.hublvol.nqn]["listen_addresses"]:
|
|
152
|
+
logger.info(f"Checking listener ... ok")
|
|
153
|
+
else:
|
|
154
|
+
logger.info(f"Checking listener ... not found")
|
|
155
|
+
passed = False
|
|
156
|
+
|
|
157
|
+
if node_lvols_nqns[node.hublvol.nqn]["namespaces"]:
|
|
158
|
+
logger.info(f"Checking namespaces ... ok")
|
|
159
|
+
else:
|
|
160
|
+
logger.info(f"Checking namespaces ... not found")
|
|
161
|
+
passed = False
|
|
162
|
+
else:
|
|
163
|
+
logger.info(f"Checking subsystem ... not found")
|
|
164
|
+
passed = False
|
|
165
|
+
cl = db_controller.get_cluster_by_id(node.cluster_id)
|
|
166
|
+
|
|
167
|
+
ret = rpc_client.bdev_lvol_get_lvstores(node.lvstore)
|
|
168
|
+
if ret:
|
|
169
|
+
logger.info(f"Checking lvstore: {node.lvstore} ... ok")
|
|
170
|
+
lvs_info = ret[0]
|
|
171
|
+
logger.info(f"lVol store Info:")
|
|
172
|
+
lvs_info_dict = []
|
|
173
|
+
expected = {}
|
|
174
|
+
expected["lvs leadership"] = True
|
|
175
|
+
expected["lvs_primary"] = True
|
|
176
|
+
expected["lvs_read_only"] = False
|
|
177
|
+
expected["name"] = node.lvstore
|
|
178
|
+
expected["base_bdev"] = node.raid
|
|
179
|
+
expected["block_size"] = cl.blk_size
|
|
180
|
+
expected["cluster_size"] = cl.page_size_in_blocks
|
|
181
|
+
|
|
182
|
+
for k, v in lvs_info.items():
|
|
183
|
+
if k in expected:
|
|
184
|
+
value = expected[k] == v
|
|
185
|
+
lvs_info_dict.append({"Key": k, "Value": v, "expected": value})
|
|
186
|
+
if value is bool and v is False:
|
|
187
|
+
passed = False
|
|
188
|
+
else:
|
|
189
|
+
lvs_info_dict.append({"Key": k, "Value": v, "expected": " "})
|
|
190
|
+
for line in utils.print_table(lvs_info_dict).splitlines():
|
|
191
|
+
logger.info(line)
|
|
192
|
+
|
|
193
|
+
except Exception as e:
|
|
194
|
+
logger.debug(e)
|
|
195
|
+
return passed
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
def _check_sec_node_hublvol(node: StorageNode, node_bdev=None, node_lvols_nqns=None):
|
|
200
|
+
logger.info(f"Checking secondary Hublvol: {node.hublvol.name} on node {node.get_id()}")
|
|
201
|
+
db_controller = DBController()
|
|
202
|
+
|
|
203
|
+
passed = True
|
|
204
|
+
try:
|
|
205
|
+
rpc_client = RPCClient(
|
|
206
|
+
node.mgmt_ip, node.rpc_port, node.rpc_username, node.rpc_password, timeout=5, retry=1)
|
|
207
|
+
|
|
208
|
+
if not node_bdev:
|
|
209
|
+
node_bdev = {}
|
|
210
|
+
ret = rpc_client.get_bdevs()
|
|
211
|
+
if ret:
|
|
212
|
+
for b in ret:
|
|
213
|
+
node_bdev[b['name']] = b
|
|
214
|
+
for al in b['aliases']:
|
|
215
|
+
node_bdev[al]= b
|
|
216
|
+
else:
|
|
217
|
+
node_bdev = []
|
|
218
|
+
|
|
219
|
+
if not node_lvols_nqns:
|
|
220
|
+
node_lvols_nqns = {}
|
|
221
|
+
ret = rpc_client.subsystem_list()
|
|
222
|
+
for sub in ret:
|
|
223
|
+
node_lvols_nqns[sub['nqn']] = sub
|
|
224
|
+
|
|
225
|
+
primary_node = db_controller.get_storage_node_by_id(node.lvstore_stack_secondary_1)
|
|
226
|
+
|
|
227
|
+
ret = rpc_client.bdev_nvme_controller_list(primary_node.hublvol.name)
|
|
228
|
+
if ret:
|
|
229
|
+
logger.info(f"Checking controller: {primary_node.hublvol.name} ... ok")
|
|
230
|
+
else:
|
|
231
|
+
logger.info(f"Checking controller: {primary_node.hublvol.name} ... failed")
|
|
232
|
+
passed = False
|
|
233
|
+
|
|
234
|
+
if primary_node.hublvol.get_remote_bdev_name() in node_bdev:
|
|
235
|
+
logger.info(f"Checking bdev: {primary_node.hublvol.get_remote_bdev_name()} ... ok")
|
|
236
|
+
else:
|
|
237
|
+
logger.error(f"Checking bdev: {primary_node.hublvol.get_remote_bdev_name()} ... failed")
|
|
238
|
+
passed = False
|
|
239
|
+
cl = db_controller.get_cluster_by_id(node.cluster_id)
|
|
240
|
+
ret = rpc_client.bdev_lvol_get_lvstores(primary_node.lvstore)
|
|
241
|
+
if ret:
|
|
242
|
+
logger.info(f"Checking lvstore: {primary_node.lvstore} ... ok")
|
|
243
|
+
lvs_info = ret[0]
|
|
244
|
+
logger.info(f"lVol store Info:")
|
|
245
|
+
lvs_info_dict = []
|
|
246
|
+
expected = {}
|
|
247
|
+
expected["name"] = primary_node.lvstore
|
|
248
|
+
expected["lvs leadership"] = False
|
|
249
|
+
expected["lvs_secondary"] = True
|
|
250
|
+
expected["lvs_read_only"] = False
|
|
251
|
+
expected["lvs_redirect"] = True
|
|
252
|
+
expected["remote_bdev"] = primary_node.hublvol.get_remote_bdev_name()
|
|
253
|
+
expected["connect_state"] = True
|
|
254
|
+
expected["base_bdev"] = primary_node.raid
|
|
255
|
+
expected["block_size"] = cl.blk_size
|
|
256
|
+
expected["cluster_size"] = cl.page_size_in_blocks
|
|
257
|
+
|
|
258
|
+
for k, v in lvs_info.items():
|
|
259
|
+
|
|
260
|
+
if k in expected:
|
|
261
|
+
value = expected[k] == v
|
|
262
|
+
lvs_info_dict.append({"Key": k, "Value": v, "expected": value})
|
|
263
|
+
if value is bool and value is False:
|
|
264
|
+
passed = False
|
|
265
|
+
|
|
266
|
+
else:
|
|
267
|
+
lvs_info_dict.append({"Key": k, "Value": v, "expected": " "})
|
|
268
|
+
for line in utils.print_table(lvs_info_dict).splitlines():
|
|
269
|
+
logger.info(line)
|
|
270
|
+
except Exception as e:
|
|
271
|
+
logger.error(e)
|
|
272
|
+
return passed
|
|
273
|
+
|
|
121
274
|
|
|
122
275
|
def _check_node_lvstore(
|
|
123
276
|
lvstore_stack, node, auto_fix=False, node_bdev_names=None, stack_src_node=None):
|
|
@@ -330,17 +483,16 @@ def check_node(node_id, with_devices=True):
|
|
|
330
483
|
if snode.lvstore_stack:
|
|
331
484
|
lvstore_stack = snode.lvstore_stack
|
|
332
485
|
lvstore_check &= _check_node_lvstore(lvstore_stack, snode)
|
|
333
|
-
|
|
486
|
+
print("*" * 100)
|
|
334
487
|
if snode.secondary_node_id:
|
|
335
488
|
second_node_1 = db_controller.get_storage_node_by_id(snode.secondary_node_id)
|
|
336
489
|
if second_node_1.status == StorageNode.STATUS_ONLINE:
|
|
337
490
|
lvstore_check &= _check_node_lvstore(lvstore_stack, second_node_1, stack_src_node=snode)
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
# lvstore_check &= _check_node_lvstore(node.lvstore_stack, snode)
|
|
491
|
+
print("*" * 100)
|
|
492
|
+
lvstore_check &= _check_node_hublvol(snode)
|
|
493
|
+
if second_node_1.status == StorageNode.STATUS_ONLINE:
|
|
494
|
+
print("*" * 100)
|
|
495
|
+
lvstore_check &= _check_sec_node_hublvol(second_node_1)
|
|
344
496
|
|
|
345
497
|
return is_node_online and node_devices_check and node_remote_devices_check and lvstore_check
|
|
346
498
|
|
|
@@ -96,15 +96,20 @@ while True:
|
|
|
96
96
|
|
|
97
97
|
node_bdevs = rpc_client.get_bdevs()
|
|
98
98
|
if node_bdevs:
|
|
99
|
-
node_bdev_names = [b['name'] for b in node_bdevs]
|
|
99
|
+
# node_bdev_names = [b['name'] for b in node_bdevs]
|
|
100
|
+
node_bdev_names = {}
|
|
101
|
+
for b in node_bdevs:
|
|
102
|
+
node_bdev_names[b['name']] = b
|
|
103
|
+
for al in b['aliases']:
|
|
104
|
+
node_bdev_names[al] = b
|
|
100
105
|
else:
|
|
101
106
|
node_bdev_names = []
|
|
102
107
|
|
|
103
108
|
sub_list = rpc_client.subsystem_list()
|
|
104
109
|
if sub_list:
|
|
105
|
-
subsystem_list =
|
|
110
|
+
subsystem_list = {item['nqn']: item for item in sub_list }
|
|
106
111
|
else:
|
|
107
|
-
subsystem_list =
|
|
112
|
+
subsystem_list = {}
|
|
108
113
|
|
|
109
114
|
for device in snode.nvme_devices:
|
|
110
115
|
passed = True
|
|
@@ -230,11 +235,15 @@ while True:
|
|
|
230
235
|
lvstore_check &= health_controller._check_node_lvstore(
|
|
231
236
|
lvstore_stack, snode, auto_fix=True, node_bdev_names=node_bdev_names)
|
|
232
237
|
|
|
238
|
+
lvstore_check &= health_controller._check_node_hublvol(
|
|
239
|
+
snode, node_bdev_names=node_bdev_names, node_lvols_nqns=subsystem_list)
|
|
240
|
+
|
|
233
241
|
if snode.secondary_node_id:
|
|
234
242
|
second_node_1 = db_controller.get_storage_node_by_id(snode.secondary_node_id)
|
|
235
243
|
if second_node_1 and second_node_1.status == StorageNode.STATUS_ONLINE:
|
|
236
|
-
lvstore_check &= health_controller._check_node_lvstore(
|
|
237
|
-
|
|
244
|
+
lvstore_check &= health_controller._check_node_lvstore(
|
|
245
|
+
lvstore_stack, second_node_1, auto_fix=True, stack_src_node=snode)
|
|
246
|
+
lvstore_check &= health_controller._check_sec_node_hublvol(second_node_1)
|
|
238
247
|
|
|
239
248
|
lvol_port_check = False
|
|
240
249
|
# if node_api_check:
|
|
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-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/controllers/caching_node_controller.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
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/clean_local_storage_deploy.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/scripts/dashboards/node-exporter.json
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
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/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
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/main_distr_event_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
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/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
|
{sbcli_dev-17.3.7 → sbcli_dev-17.3.8}/simplyblock_web/static/SimplyBlock-API.postman_collection.json
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
|