sbcli-dev 19.0.2__tar.gz → 19.0.4__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-19.0.2 → sbcli_dev-19.0.4}/PKG-INFO +1 -1
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/sbcli_dev.egg-info/SOURCES.txt +0 -2
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_cli/cli.py +1 -110
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_cli/clibase.py +0 -96
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/cluster_ops.py +102 -222
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/cnode_client.py +3 -5
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/device_controller.py +70 -53
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/health_controller.py +40 -21
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/lvol_controller.py +11 -7
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/snapshot_controller.py +9 -7
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/db_controller.py +15 -12
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/distr_controller.py +10 -9
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/env_var +1 -1
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/base_model.py +1 -1
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/caching_node.py +2 -2
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/lvol_model.py +1 -1
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/snapshot.py +1 -1
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/storage_node.py +8 -5
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/rpc_client.py +8 -3
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/spdk/client.py +13 -5
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/tasks_runner_failed_migration.py +7 -7
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/tasks_runner_migration.py +8 -7
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/tasks_runner_new_dev_migration.py +8 -7
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/tasks_runner_port_allow.py +9 -3
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/storage_node_ops.py +128 -94
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/utils.py +4 -4
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/caching_node_ops.py +89 -130
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/caching_node_ops_k8s.py +67 -109
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/snode_ops.py +8 -16
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_device.py +24 -17
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_storage_node.py +31 -20
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/node_webapp.py +4 -4
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/api/test_lvol.py +1 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/api/test_pool.py +1 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/api/test_snapshot.py +1 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/utils.py +33 -0
- sbcli_dev-19.0.2/simplyblock_web/blueprints/node_api_caching_docker.py +0 -179
- sbcli_dev-19.0.2/simplyblock_web/blueprints/node_api_caching_ks.py +0 -174
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/README.md +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/pyproject.toml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/requirements.txt +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/setup.cfg +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/setup.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_cli/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/hublvol.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/helpers/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/spdk/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/tasks_cluster_status.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/test/test_models.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/test/test_utils.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/README.md +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/app.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/swagger_ui_blueprint.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_metrics.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/node_configure.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/node_utils_k8s.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/SimplyBlock-API.postman_collection.json +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/swagger.yaml +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/api/test_storage_node.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/conftest.py +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/pytest.ini +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/requirements.txt +0 -0
- {sbcli_dev-19.0.2 → sbcli_dev-19.0.4}/simplyblock_web/test/util.py +0 -0
|
@@ -135,8 +135,6 @@ simplyblock_web/blueprints/__init__.py
|
|
|
135
135
|
simplyblock_web/blueprints/caching_node_ops.py
|
|
136
136
|
simplyblock_web/blueprints/caching_node_ops_k8s.py
|
|
137
137
|
simplyblock_web/blueprints/node_api_basic.py
|
|
138
|
-
simplyblock_web/blueprints/node_api_caching_docker.py
|
|
139
|
-
simplyblock_web/blueprints/node_api_caching_ks.py
|
|
140
138
|
simplyblock_web/blueprints/snode_ops.py
|
|
141
139
|
simplyblock_web/blueprints/snode_ops_k8s.py
|
|
142
140
|
simplyblock_web/blueprints/swagger_ui_blueprint.py
|
|
@@ -301,7 +301,6 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
301
301
|
|
|
302
302
|
def init_cluster(self):
|
|
303
303
|
subparser = self.add_command('cluster', 'Cluster commands')
|
|
304
|
-
self.init_cluster__deploy(subparser)
|
|
305
304
|
self.init_cluster__create(subparser)
|
|
306
305
|
self.init_cluster__add(subparser)
|
|
307
306
|
self.init_cluster__activate(subparser)
|
|
@@ -330,85 +329,6 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
330
329
|
self.init_cluster__set(subparser)
|
|
331
330
|
|
|
332
331
|
|
|
333
|
-
def init_cluster__deploy(self, subparser):
|
|
334
|
-
subcommand = self.add_sub_command(subparser, 'deploy', 'Deploys a storage nodes')
|
|
335
|
-
argument = subcommand.add_argument('--storage-nodes', help='comma separated ip addresses', type=str, dest='storage_nodes')
|
|
336
|
-
argument = subcommand.add_argument('--test', help='Test Cluster', dest='test', action='store_true')
|
|
337
|
-
argument = subcommand.add_argument('--ha-type', help='Logical volume HA type (single, ha), default is cluster HA type', type=str, default='ha', dest='ha_type', choices=['single','ha',])
|
|
338
|
-
if self.developer_mode:
|
|
339
|
-
argument = subcommand.add_argument('--ha-jm-count', help='HA JM count', type=int, default=3, dest='ha_jm_count')
|
|
340
|
-
argument = subcommand.add_argument('--data-chunks-per-stripe', help='Erasure coding schema parameter k (distributed raid), default: 1', type=int, default=1, dest='distr_ndcs')
|
|
341
|
-
argument = subcommand.add_argument('--parity-chunks-per-stripe', help='Erasure coding schema parameter n (distributed raid), default: 1', type=int, default=1, dest='distr_npcs')
|
|
342
|
-
if self.developer_mode:
|
|
343
|
-
argument = subcommand.add_argument('--enable-qos', help='Enable qos bdev for storage nodes', type=bool, default=False, dest='enable_qos')
|
|
344
|
-
argument = subcommand.add_argument('--ifname', help='Management interface name, e.g. eth0', type=str, dest='ifname')
|
|
345
|
-
if self.developer_mode:
|
|
346
|
-
argument = subcommand.add_argument('--blk_size', help='The block size in bytes', type=int, default=512, dest='blk_size', choices=['512','4096',])
|
|
347
|
-
if self.developer_mode:
|
|
348
|
-
argument = subcommand.add_argument('--page_size', help='The size of a data page in bytes', type=int, default=2097152, dest='page_size')
|
|
349
|
-
if self.developer_mode:
|
|
350
|
-
argument = subcommand.add_argument('--CLI_PASS', help='Password for CLI SSH connection', type=str, dest='CLI_PASS')
|
|
351
|
-
argument = subcommand.add_argument('--cap-warn', help='Capacity warning level in percent, default: 89', type=int, default=89, dest='cap_warn')
|
|
352
|
-
argument = subcommand.add_argument('--cap-crit', help='Capacity critical level in percent, default: 99', type=int, default=99, dest='cap_crit')
|
|
353
|
-
argument = subcommand.add_argument('--prov-cap-warn', help='Capacity warning level in percent, default: 250', type=int, default=250, dest='prov_cap_warn')
|
|
354
|
-
argument = subcommand.add_argument('--prov-cap-crit', help='Capacity critical level in percent, default: 500', type=int, default=500, dest='prov_cap_crit')
|
|
355
|
-
argument = subcommand.add_argument('--log-del-interval', help='Logging retention period, default: 3d', type=str, default='3d', dest='log_del_interval')
|
|
356
|
-
argument = subcommand.add_argument('--metrics-retention-period', help='Retention period for I/O statistics (Prometheus), default: 7d', type=str, default='7d', dest='metrics_retention_period')
|
|
357
|
-
argument = subcommand.add_argument('--contact-point', help='Email or slack webhook url to be used for alerting', type=str, default='', dest='contact_point')
|
|
358
|
-
if self.developer_mode:
|
|
359
|
-
argument = subcommand.add_argument('--distr-bs', help='(Dev) distrb bdev block size, default: 4096', type=int, default=4096, dest='distr_bs')
|
|
360
|
-
argument = subcommand.add_argument('--chunk-size-in-bytes', help='(Dev) distrb bdev chunk block size, default: 4096', type=int, default=4096, dest='distr_chunk_bs')
|
|
361
|
-
argument = subcommand.add_argument('--enable-node-affinity', help='Enable node affinity for storage nodes', dest='enable_node_affinity', action='store_true')
|
|
362
|
-
argument = subcommand.add_argument('--qpair-count', help='NVMe/TCP transport qpair count per logical volume', type=range_type(1, 128), default=3, dest='qpair_count')
|
|
363
|
-
if self.developer_mode:
|
|
364
|
-
argument = subcommand.add_argument('--max-queue-size', help='The max size the queue will grow', type=int, default=128, dest='max_queue_size')
|
|
365
|
-
if self.developer_mode:
|
|
366
|
-
argument = subcommand.add_argument('--inflight-io-threshold', help='The number of inflight IOs allowed before the IO queuing starts', type=int, default=4, dest='inflight_io_threshold')
|
|
367
|
-
argument = subcommand.add_argument('--strict-node-anti-affinity', help='Enable strict node anti affinity for storage nodes. Never more than one chunk is placed on a node. This requires a minimum of _data-chunks-in-stripe + parity-chunks-in-stripe + 1_ nodes in the cluster."', dest='strict_node_anti_affinity', action='store_true')
|
|
368
|
-
argument = subcommand.add_argument('--journal-partition', help='1: auto-partition nvme devices for journal. 0: use a separate nvme device for journal. The smallest NVMe device available on the host will be chosen as a journal. It should provide about 3%% of the entire node’s NVMe capacity. If set to false, partitions on other devices will be auto-created to store the journal.', type=str, default='True', dest='partitions')
|
|
369
|
-
if self.developer_mode:
|
|
370
|
-
argument = subcommand.add_argument('--jm-percent', help='Number in percent to use for JM from each device', type=int, default=3, dest='jm_percent')
|
|
371
|
-
argument = subcommand.add_argument('--data-nics', help='Storage network interface name(s). Can be more than one.', type=str, dest='data_nics', nargs='+')
|
|
372
|
-
argument = subcommand.add_argument('--max-lvol', help='Max logical volume per storage node', type=int, dest='max_lvol')
|
|
373
|
-
if self.developer_mode:
|
|
374
|
-
argument = subcommand.add_argument('--max-snap', help='Max snapshot per storage node', type=int, default=5000, dest='max_snap')
|
|
375
|
-
argument = subcommand.add_argument('--max-size', help='Maximum amount of GB to be provisioned via all storage nodes', type=str, default='', dest='max_prov')
|
|
376
|
-
if self.developer_mode:
|
|
377
|
-
argument = subcommand.add_argument('--size-of-device', help='Size of device per storage node', type=str, dest='partition_size')
|
|
378
|
-
if self.developer_mode:
|
|
379
|
-
argument = subcommand.add_argument('--spdk-image', help='SPDK image uri', type=str, dest='spdk_image')
|
|
380
|
-
if self.developer_mode:
|
|
381
|
-
argument = subcommand.add_argument('--spdk-debug', help='Enable spdk debug logs', dest='spdk_debug', action='store_true')
|
|
382
|
-
if self.developer_mode:
|
|
383
|
-
argument = subcommand.add_argument('--iobuf_small_bufsize', help='bdev_set_options param', type=int, default=0, dest='small_bufsize')
|
|
384
|
-
if self.developer_mode:
|
|
385
|
-
argument = subcommand.add_argument('--iobuf_large_bufsize', help='bdev_set_options param', type=int, default=0, dest='large_bufsize')
|
|
386
|
-
if self.developer_mode:
|
|
387
|
-
argument = subcommand.add_argument('--enable-test-device', help='Enable creation of test device', dest='enable_test_device', action='store_true')
|
|
388
|
-
if self.developer_mode:
|
|
389
|
-
argument = subcommand.add_argument('--disable-ha-jm', help='Disable HA JM for distrib creation', dest='enable_ha_jm', action='store_true')
|
|
390
|
-
argument = subcommand.add_argument('--namespace', help='k8s namespace to deploy on', type=str, dest='namespace')
|
|
391
|
-
argument = subcommand.add_argument('--id-device-by-nqn', help='Use device nqn to identify it instead of serial number', default=False, dest='id_device_by_nqn', action='store_true')
|
|
392
|
-
if self.developer_mode:
|
|
393
|
-
argument = subcommand.add_argument('--lvol-name', help='Logical volume name or id', type=str, default='lvol01', dest='lvol_name')
|
|
394
|
-
if self.developer_mode:
|
|
395
|
-
argument = subcommand.add_argument('--lvol-size', help='Logical volume size: 10M, 10G, 10(bytes)', type=size_type(), default='10G', dest='lvol_size')
|
|
396
|
-
if self.developer_mode:
|
|
397
|
-
argument = subcommand.add_argument('--pool-name', help='Pool id or name', type=str, default='pool01', dest='pool_name')
|
|
398
|
-
if self.developer_mode:
|
|
399
|
-
argument = subcommand.add_argument('--pool-max', help='Pool maximum size: 20M, 20G, 0(default)', type=size_type(), default='25G', dest='pool_max')
|
|
400
|
-
if self.developer_mode:
|
|
401
|
-
argument = subcommand.add_argument('--snapshot', '-s', help='Make logical volume with snapshot capability, default: false', dest='snapshot', action='store_true')
|
|
402
|
-
if self.developer_mode:
|
|
403
|
-
argument = subcommand.add_argument('--max-volume-size', help='Logical volume max size', type=size_type(), default='1000G', dest='max_size')
|
|
404
|
-
argument = subcommand.add_argument('--host-id', help='Primary storage node id or hostname', type=str, dest='host_id')
|
|
405
|
-
if self.developer_mode:
|
|
406
|
-
argument = subcommand.add_argument('--encrypt', help='Use inline data encryption and decryption on the logical volume', dest='encrypt', action='store_true')
|
|
407
|
-
if self.developer_mode:
|
|
408
|
-
argument = subcommand.add_argument('--distr-vuid', help='(Dev) set vuid manually, default: random (1-99999)', type=int, dest='distr_vuid')
|
|
409
|
-
if self.developer_mode:
|
|
410
|
-
argument = subcommand.add_argument('--lvol-ha-type', help='Logical volume HA type (single, ha), default is cluster HA type', type=str, default='ha', dest='lvol_ha_type', choices=['single','default','ha',])
|
|
411
|
-
|
|
412
332
|
def init_cluster__create(self, subparser):
|
|
413
333
|
subcommand = self.add_sub_command(subparser, 'create', 'Creates a new cluster')
|
|
414
334
|
if self.developer_mode:
|
|
@@ -1015,36 +935,7 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
1015
935
|
|
|
1016
936
|
elif args.command in ['cluster']:
|
|
1017
937
|
sub_command = args_dict['cluster']
|
|
1018
|
-
if sub_command in ['
|
|
1019
|
-
if not self.developer_mode:
|
|
1020
|
-
args.ha_jm_count = 3
|
|
1021
|
-
args.enable_qos = False
|
|
1022
|
-
args.blk_size = 512
|
|
1023
|
-
args.page_size = 2097152
|
|
1024
|
-
args.CLI_PASS = None
|
|
1025
|
-
args.distr_bs = 4096
|
|
1026
|
-
args.max_queue_size = 128
|
|
1027
|
-
args.inflight_io_threshold = 4
|
|
1028
|
-
args.jm_percent = 3
|
|
1029
|
-
args.max_snap = 5000
|
|
1030
|
-
args.partition_size = None
|
|
1031
|
-
args.spdk_image = None
|
|
1032
|
-
args.spdk_debug = None
|
|
1033
|
-
args.small_bufsize = 0
|
|
1034
|
-
args.large_bufsize = 0
|
|
1035
|
-
args.enable_test_device = None
|
|
1036
|
-
args.enable_ha_jm = False
|
|
1037
|
-
args.lvol_name = 'lvol01'
|
|
1038
|
-
args.lvol_size = '10G'
|
|
1039
|
-
args.pool_name = 'pool01'
|
|
1040
|
-
args.pool_max = '25G'
|
|
1041
|
-
args.snapshot = False
|
|
1042
|
-
args.max_size = '1000G'
|
|
1043
|
-
args.encrypt = None
|
|
1044
|
-
args.distr_vuid = None
|
|
1045
|
-
args.lvol_ha_type = 'ha'
|
|
1046
|
-
ret = self.cluster__deploy(sub_command, args)
|
|
1047
|
-
elif sub_command in ['create']:
|
|
938
|
+
if sub_command in ['create']:
|
|
1048
939
|
if not self.developer_mode:
|
|
1049
940
|
args.page_size = 2097152
|
|
1050
941
|
args.CLI_PASS = None
|
|
@@ -313,9 +313,6 @@ class CLIWrapperBase:
|
|
|
313
313
|
def storage_node__set(self, sub_command, args):
|
|
314
314
|
return storage_ops.set_value(args.node_id, args.attr_name, args.attr_value)
|
|
315
315
|
|
|
316
|
-
def cluster__deploy(self, sub_command, args):
|
|
317
|
-
return self.cluster_deploy(args)
|
|
318
|
-
|
|
319
316
|
def cluster__create(self, sub_command, args):
|
|
320
317
|
return self.cluster_create(args)
|
|
321
318
|
|
|
@@ -701,99 +698,6 @@ class CLIWrapperBase:
|
|
|
701
698
|
distr_ndcs, distr_npcs, distr_bs, distr_chunk_bs, ha_type, enable_node_affinity,
|
|
702
699
|
qpair_count, max_queue_size, inflight_io_threshold, enable_qos, strict_node_anti_affinity)
|
|
703
700
|
|
|
704
|
-
def cluster_deploy(self, args):
|
|
705
|
-
grafana_endpoint = ""
|
|
706
|
-
secondary_nodes = False
|
|
707
|
-
namespace = None
|
|
708
|
-
lvol_name = "lvol01"
|
|
709
|
-
lvol_size = utils.parse_size("10G")
|
|
710
|
-
pool_max = utils.parse_size("25G")
|
|
711
|
-
max_size = utils.parse_size("1000G")
|
|
712
|
-
pool_name = "pool01"
|
|
713
|
-
with_snapshot = False
|
|
714
|
-
host_id = None
|
|
715
|
-
crypto = False
|
|
716
|
-
crypto_key1 = None
|
|
717
|
-
crypto_key2 = None
|
|
718
|
-
max_rw_iops = None
|
|
719
|
-
max_rw_mbytes = None
|
|
720
|
-
max_r_mbytes = None
|
|
721
|
-
max_w_mbytes = None
|
|
722
|
-
lvol_priority_class = 0
|
|
723
|
-
id_device_by_nqn = False
|
|
724
|
-
fstype = "xfs"
|
|
725
|
-
|
|
726
|
-
storage_nodes = args.storage_nodes
|
|
727
|
-
test = args.test
|
|
728
|
-
ha_type = args.ha_type
|
|
729
|
-
ha_jm_count = args.ha_jm_count
|
|
730
|
-
distr_ndcs = args.distr_ndcs
|
|
731
|
-
distr_npcs = args.distr_npcs
|
|
732
|
-
enable_qos = args.enable_qos
|
|
733
|
-
ifname = args.ifname
|
|
734
|
-
page_size_in_blocks = args.page_size
|
|
735
|
-
blk_size = args.blk_size
|
|
736
|
-
CLI_PASS = args.CLI_PASS
|
|
737
|
-
cap_warn = args.cap_warn
|
|
738
|
-
cap_crit = args.cap_crit
|
|
739
|
-
prov_cap_warn = args.prov_cap_warn
|
|
740
|
-
prov_cap_crit = args.prov_cap_crit
|
|
741
|
-
distr_bs = args.distr_bs
|
|
742
|
-
distr_chunk_bs = args.distr_chunk_bs
|
|
743
|
-
log_del_interval = args.log_del_interval
|
|
744
|
-
metrics_retention_period = args.metrics_retention_period
|
|
745
|
-
contact_point = args.contact_point
|
|
746
|
-
enable_node_affinity = args.enable_node_affinity
|
|
747
|
-
qpair_count = args.qpair_count
|
|
748
|
-
max_queue_size = args.max_queue_size
|
|
749
|
-
inflight_io_threshold = args.inflight_io_threshold
|
|
750
|
-
strict_node_anti_affinity = args.strict_node_anti_affinity
|
|
751
|
-
|
|
752
|
-
data_nics = args.data_nics
|
|
753
|
-
spdk_image = args.spdk_image
|
|
754
|
-
spdk_debug = args.spdk_debug
|
|
755
|
-
|
|
756
|
-
small_bufsize = args.small_bufsize
|
|
757
|
-
large_bufsize = args.large_bufsize
|
|
758
|
-
num_partitions_per_dev = args.partitions
|
|
759
|
-
partition_size = args.partition_size
|
|
760
|
-
jm_percent = args.jm_percent
|
|
761
|
-
spdk_cpu_mask = args.spdk_cpu_mask
|
|
762
|
-
max_lvol = args.max_lvol
|
|
763
|
-
max_snap = args.max_snap
|
|
764
|
-
max_prov = utils.parse_size(args.max_prov, assume_unit='G')
|
|
765
|
-
number_of_devices = args.number_of_devices
|
|
766
|
-
enable_test_device = args.enable_test_device
|
|
767
|
-
enable_ha_jm = args.enable_ha_jm
|
|
768
|
-
number_of_distribs = args.number_of_distribs
|
|
769
|
-
namespace = args.namespace
|
|
770
|
-
secondary_nodes = args.secondary_nodes
|
|
771
|
-
|
|
772
|
-
lvol_name = args.lvol_name
|
|
773
|
-
lvol_size = args.lvol_size
|
|
774
|
-
max_size = args.max_size
|
|
775
|
-
lvol_ha_type = args.lvol_ha_type
|
|
776
|
-
pool_name = args.pool_name
|
|
777
|
-
pool_max = args.pool_max
|
|
778
|
-
host_id = args.host_id
|
|
779
|
-
comp = None
|
|
780
|
-
distr_vuid = args.distr_vuid
|
|
781
|
-
|
|
782
|
-
cluster_ops.deploy_cluster(
|
|
783
|
-
storage_nodes, test, ha_type, distr_ndcs, distr_npcs, enable_qos, ifname,
|
|
784
|
-
blk_size, page_size_in_blocks, CLI_PASS, cap_warn, cap_crit, prov_cap_warn,
|
|
785
|
-
prov_cap_crit, log_del_interval, metrics_retention_period, contact_point, grafana_endpoint,
|
|
786
|
-
distr_bs, distr_chunk_bs, enable_node_affinity,
|
|
787
|
-
qpair_count, max_queue_size, inflight_io_threshold, strict_node_anti_affinity, data_nics,
|
|
788
|
-
spdk_image, spdk_debug, small_bufsize, large_bufsize, num_partitions_per_dev, jm_percent, spdk_cpu_mask,
|
|
789
|
-
max_lvol,
|
|
790
|
-
max_snap, max_prov, number_of_devices, enable_test_device, enable_ha_jm, ha_jm_count, number_of_distribs,
|
|
791
|
-
namespace, secondary_nodes, partition_size,
|
|
792
|
-
lvol_name, lvol_size, lvol_ha_type, pool_name, pool_max, host_id, comp, crypto, distr_vuid, max_rw_iops,
|
|
793
|
-
max_rw_mbytes, max_r_mbytes, max_w_mbytes,
|
|
794
|
-
with_snapshot, max_size, crypto_key1, crypto_key2, lvol_priority_class, id_device_by_nqn, fstype)
|
|
795
|
-
return True
|
|
796
|
-
|
|
797
701
|
def cluster_create(self, args):
|
|
798
702
|
page_size_in_blocks = args.page_size
|
|
799
703
|
blk_size = 4096
|