sbcli-dev 10.7.4__tar.gz → 10.7.6__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-10.7.4 → sbcli_dev-10.7.6}/PKG-INFO +1 -1
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/cluster_ops.py +20 -2
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/device_controller.py +19 -2
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/lvol_controller.py +22 -2
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/env_var +1 -1
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/storage_node_ops.py +23 -3
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/utils.py +7 -5
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/README.md +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/pyproject.toml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/requirements.txt +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/setup.cfg +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/setup.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_cli/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/db_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/README.md +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/app.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/requirements.txt +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_web/utils.py +0 -0
|
@@ -541,7 +541,16 @@ def get_capacity(cluster_id, history, records_count=20, is_json=False):
|
|
|
541
541
|
|
|
542
542
|
records = db_controller.get_cluster_capacity(cluster, records_number)
|
|
543
543
|
|
|
544
|
-
|
|
544
|
+
cap_stats_keys = [
|
|
545
|
+
"date",
|
|
546
|
+
"size_total",
|
|
547
|
+
"size_prov",
|
|
548
|
+
"size_used",
|
|
549
|
+
"size_free",
|
|
550
|
+
"size_util",
|
|
551
|
+
"size_prov_util",
|
|
552
|
+
]
|
|
553
|
+
new_records = utils.process_records(records, records_count, keys=cap_stats_keys)
|
|
545
554
|
|
|
546
555
|
if is_json:
|
|
547
556
|
return json.dumps(new_records, indent=2)
|
|
@@ -582,8 +591,17 @@ def get_iostats_history(cluster_id, history_string, records_count=20, parse_size
|
|
|
582
591
|
|
|
583
592
|
records = db_controller.get_cluster_stats(cluster, records_number)
|
|
584
593
|
|
|
594
|
+
io_stats_keys = [
|
|
595
|
+
"date",
|
|
596
|
+
"read_bytes_ps",
|
|
597
|
+
"read_io_ps",
|
|
598
|
+
"read_latency_ps",
|
|
599
|
+
"write_bytes_ps",
|
|
600
|
+
"write_io_ps",
|
|
601
|
+
"write_latency_ps",
|
|
602
|
+
]
|
|
585
603
|
# combine records
|
|
586
|
-
new_records = utils.process_records(records, records_count)
|
|
604
|
+
new_records = utils.process_records(records, records_count, keys=io_stats_keys)
|
|
587
605
|
|
|
588
606
|
if not parse_sizes:
|
|
589
607
|
return new_records
|
|
@@ -432,7 +432,14 @@ def get_device_capacity(device_id, history, records_count=20, parse_sizes=True):
|
|
|
432
432
|
records_number = 20
|
|
433
433
|
|
|
434
434
|
records = db_controller.get_device_capacity(device, records_number)
|
|
435
|
-
|
|
435
|
+
cap_stats_keys = [
|
|
436
|
+
"date",
|
|
437
|
+
"size_total",
|
|
438
|
+
"size_used",
|
|
439
|
+
"size_free",
|
|
440
|
+
"size_util",
|
|
441
|
+
]
|
|
442
|
+
records_list = utils.process_records(records, records_count, keys=cap_stats_keys)
|
|
436
443
|
|
|
437
444
|
if not parse_sizes:
|
|
438
445
|
return records_list
|
|
@@ -466,7 +473,17 @@ def get_device_iostats(device_id, history, records_count=20, parse_sizes=True):
|
|
|
466
473
|
records_number = 20
|
|
467
474
|
|
|
468
475
|
records_list = db_controller.get_device_stats(device, records_number)
|
|
469
|
-
|
|
476
|
+
io_stats_keys = [
|
|
477
|
+
"date",
|
|
478
|
+
"read_bytes_ps",
|
|
479
|
+
"read_io_ps",
|
|
480
|
+
"read_latency_ps",
|
|
481
|
+
"write_bytes_ps",
|
|
482
|
+
"write_io_ps",
|
|
483
|
+
"write_latency_ps",
|
|
484
|
+
]
|
|
485
|
+
# combine records
|
|
486
|
+
new_records = utils.process_records(records_list, records_count, keys=io_stats_keys)
|
|
470
487
|
|
|
471
488
|
if not parse_sizes:
|
|
472
489
|
return new_records
|
|
@@ -1222,7 +1222,14 @@ def get_capacity(lvol_uuid, history, records_count=20, parse_sizes=True):
|
|
|
1222
1222
|
records_list = db_controller.get_lvol_stats(lvol, limit=records_number)
|
|
1223
1223
|
if not records_list:
|
|
1224
1224
|
return False
|
|
1225
|
-
|
|
1225
|
+
cap_stats_keys = [
|
|
1226
|
+
"date",
|
|
1227
|
+
"size_total",
|
|
1228
|
+
"size_used",
|
|
1229
|
+
"size_free",
|
|
1230
|
+
"size_util",
|
|
1231
|
+
]
|
|
1232
|
+
new_records = utils.process_records(records_list, records_count, keys=cap_stats_keys)
|
|
1226
1233
|
|
|
1227
1234
|
if not parse_sizes:
|
|
1228
1235
|
return new_records
|
|
@@ -1256,7 +1263,20 @@ def get_io_stats(lvol_uuid, history, records_count=20, parse_sizes=True):
|
|
|
1256
1263
|
records_list = db_controller.get_lvol_stats(lvol, limit=records_number)
|
|
1257
1264
|
if not records_list:
|
|
1258
1265
|
return False
|
|
1259
|
-
|
|
1266
|
+
io_stats_keys = [
|
|
1267
|
+
"date",
|
|
1268
|
+
"read_bytes",
|
|
1269
|
+
"read_bytes_ps",
|
|
1270
|
+
"read_io_ps",
|
|
1271
|
+
"read_latency_ps",
|
|
1272
|
+
"write_bytes",
|
|
1273
|
+
"write_bytes_ps",
|
|
1274
|
+
"write_io_ps",
|
|
1275
|
+
"write_latency_ps",
|
|
1276
|
+
"connected_clients",
|
|
1277
|
+
]
|
|
1278
|
+
# combine records
|
|
1279
|
+
new_records = utils.process_records(records_list, records_count, keys=io_stats_keys)
|
|
1260
1280
|
|
|
1261
1281
|
if not parse_sizes:
|
|
1262
1282
|
return new_records
|
|
@@ -1864,7 +1864,7 @@ def restart_storage_node(
|
|
|
1864
1864
|
snode.nvme_devices.append(dev)
|
|
1865
1865
|
|
|
1866
1866
|
snode.write_to_db(db_controller.kv_store)
|
|
1867
|
-
if node_ip:
|
|
1867
|
+
if node_ip and len(new_devices)>0:
|
|
1868
1868
|
# prepare devices on new node
|
|
1869
1869
|
if snode.num_partitions_per_dev == 0 or snode.jm_percent == 0:
|
|
1870
1870
|
|
|
@@ -2365,7 +2365,16 @@ def get_node_capacity(node_id, history, records_count=20, parse_sizes=True):
|
|
|
2365
2365
|
records_number = 20
|
|
2366
2366
|
|
|
2367
2367
|
records = db_controller.get_node_capacity(this_node, records_number)
|
|
2368
|
-
|
|
2368
|
+
cap_stats_keys = [
|
|
2369
|
+
"date",
|
|
2370
|
+
"size_total",
|
|
2371
|
+
"size_prov",
|
|
2372
|
+
"size_used",
|
|
2373
|
+
"size_free",
|
|
2374
|
+
"size_util",
|
|
2375
|
+
"size_prov_util",
|
|
2376
|
+
]
|
|
2377
|
+
new_records = utils.process_records(records, records_count, keys=cap_stats_keys)
|
|
2369
2378
|
|
|
2370
2379
|
if not parse_sizes:
|
|
2371
2380
|
return new_records
|
|
@@ -2400,7 +2409,18 @@ def get_node_iostats_history(node_id, history, records_count=20, parse_sizes=Tru
|
|
|
2400
2409
|
records_number = 20
|
|
2401
2410
|
|
|
2402
2411
|
records = db_controller.get_node_stats(node, records_number)
|
|
2403
|
-
|
|
2412
|
+
|
|
2413
|
+
io_stats_keys = [
|
|
2414
|
+
"date",
|
|
2415
|
+
"read_bytes_ps",
|
|
2416
|
+
"read_io_ps",
|
|
2417
|
+
"read_latency_ps",
|
|
2418
|
+
"write_bytes_ps",
|
|
2419
|
+
"write_io_ps",
|
|
2420
|
+
"write_latency_ps",
|
|
2421
|
+
]
|
|
2422
|
+
# combine records
|
|
2423
|
+
new_records = utils.process_records(records, records_count, keys=io_stats_keys)
|
|
2404
2424
|
|
|
2405
2425
|
if not parse_sizes:
|
|
2406
2426
|
return new_records
|
|
@@ -143,10 +143,12 @@ def get_docker_client(cluster_id=None):
|
|
|
143
143
|
return False
|
|
144
144
|
|
|
145
145
|
|
|
146
|
-
def dict_agg(data, mean=False):
|
|
146
|
+
def dict_agg(data, mean=False, keys=None):
|
|
147
147
|
out = {}
|
|
148
|
+
if not keys and data:
|
|
149
|
+
keys = data[0].keys()
|
|
148
150
|
for d in data:
|
|
149
|
-
for key in
|
|
151
|
+
for key in keys:
|
|
150
152
|
if isinstance(d[key], int) or isinstance(d[key], float):
|
|
151
153
|
if key in out:
|
|
152
154
|
out[key] += d[key]
|
|
@@ -249,11 +251,11 @@ def parse_history_param(history_string):
|
|
|
249
251
|
if ind == 'm':
|
|
250
252
|
history_in_seconds += v * 60
|
|
251
253
|
|
|
252
|
-
records_number = int(history_in_seconds/
|
|
254
|
+
records_number = int(history_in_seconds/5)
|
|
253
255
|
return records_number
|
|
254
256
|
|
|
255
257
|
|
|
256
|
-
def process_records(records, records_count):
|
|
258
|
+
def process_records(records, records_count, keys=None):
|
|
257
259
|
# combine records
|
|
258
260
|
if not records:
|
|
259
261
|
return []
|
|
@@ -267,7 +269,7 @@ def process_records(records, records_count):
|
|
|
267
269
|
last_index = (i + 1) * data_per_record
|
|
268
270
|
last_index = min(last_index, len(records))
|
|
269
271
|
sl = records[first_index:last_index]
|
|
270
|
-
rec = dict_agg(sl, mean=True)
|
|
272
|
+
rec = dict_agg(sl, mean=True, keys=keys)
|
|
271
273
|
new_records.append(rec)
|
|
272
274
|
return new_records
|
|
273
275
|
|
|
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-10.7.4 → sbcli_dev-10.7.6}/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
|
{sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/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-10.7.4 → sbcli_dev-10.7.6}/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-10.7.4 → sbcli_dev-10.7.6}/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-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/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
|
{sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/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
|
{sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.7.4 → sbcli_dev-10.7.6}/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
|
|
File without changes
|
|
File without changes
|