sbcli-dev 19.2.30__tar.gz → 19.2.32__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.2.30/sbcli_dev.egg-info → sbcli_dev-19.2.32}/PKG-INFO +1 -3
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/pyproject.toml +1 -1
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32/sbcli_dev.egg-info}/PKG-INFO +1 -3
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/sbcli_dev.egg-info/SOURCES.txt +35 -11
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/sbcli_dev.egg-info/top_level.txt +1 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_cli/cli.py +50 -3
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_cli/clibase.py +233 -9
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/cluster_ops.py +129 -80
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/constants.py +32 -15
- sbcli_dev-19.2.32/simplyblock_core/controllers/backup_controller.py +468 -0
- sbcli_dev-19.2.32/simplyblock_core/controllers/backup_events.py +47 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/cluster_events.py +0 -28
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/device_controller.py +4 -7
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/device_events.py +0 -20
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/health_controller.py +36 -3
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/lvol_controller.py +360 -113
- sbcli_dev-19.2.32/simplyblock_core/controllers/lvol_events.py +45 -0
- sbcli_dev-19.2.32/simplyblock_core/controllers/migration_controller.py +496 -0
- sbcli_dev-19.2.32/simplyblock_core/controllers/migration_events.py +79 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/pool_controller.py +2 -20
- sbcli_dev-19.2.32/simplyblock_core/controllers/pool_events.py +31 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/snapshot_controller.py +126 -34
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/snapshot_events.py +2 -2
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/storage_events.py +2 -66
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/tasks_controller.py +94 -9
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/db_controller.py +95 -1
- sbcli_dev-19.2.32/simplyblock_core/env_var +5 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/mgmt_node_ops.py +8 -2
- sbcli_dev-19.2.32/simplyblock_core/models/backup.py +82 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/cluster.py +7 -3
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/job_schedule.py +4 -0
- sbcli_dev-19.2.32/simplyblock_core/models/lvol_migration.py +124 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/lvol_model.py +1 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/pool.py +0 -6
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/storage_node.py +7 -4
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/rpc_client.py +232 -19
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/Chart.yaml +2 -2
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/app_configmap.yaml +5 -8
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/app_ingress.yaml +2 -4
- sbcli_dev-19.2.32/simplyblock_core/scripts/charts/templates/app_k8s.yaml +1209 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/app_sa.yaml +5 -12
- sbcli_dev-19.2.32/simplyblock_core/scripts/charts/templates/dashboards.yaml +27307 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/foundationdb.yaml +3 -1
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/mongodb.yaml +2 -2
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/monitoring_configmap.yaml +19 -6
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/monitoring_ingress.yaml +3 -4
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/monitoring_k8s.yaml +118 -30
- sbcli_dev-19.2.32/simplyblock_core/scripts/charts/templates/monitoring_secret.yaml +23 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/monitoring_svc.yaml +30 -5
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/values.yaml +28 -56
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/health_check_service.py +32 -22
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/lvol_monitor.py +82 -39
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/lvol_stat_collector.py +20 -12
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/main_distr_event_collector.py +9 -4
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/snapshot_monitor.py +41 -18
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/spdk_http_proxy_server.py +0 -3
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/storage_node_monitor.py +16 -15
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_cluster_status.py +1 -1
- sbcli_dev-19.2.32/simplyblock_core/services/tasks_runner_backup.py +340 -0
- sbcli_dev-19.2.32/simplyblock_core/services/tasks_runner_backup_merge.py +33 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_jc_comp.py +0 -2
- sbcli_dev-19.2.32/simplyblock_core/services/tasks_runner_lvol_migration.py +1591 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_migration.py +25 -14
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_port_allow.py +47 -37
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_restart.py +3 -2
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_sync_lvol_del.py +22 -7
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/snode_client.py +25 -6
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/storage_node_ops.py +555 -189
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/test/test_utils.py +1 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/utils/__init__.py +378 -398
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/internal/storage_node/docker.py +78 -5
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/internal/storage_node/kubernetes.py +53 -41
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/__init__.py +0 -24
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/cluster.py +3 -56
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/storage_node.py +10 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/__init__.py +8 -4
- sbcli_dev-19.2.32/simplyblock_web/api/v2/backup.py +126 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/cluster.py +13 -31
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/device.py +8 -22
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/dtos.py +120 -92
- sbcli_dev-19.2.32/simplyblock_web/api/v2/migration.py +65 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/pool.py +11 -23
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/storage_node.py +20 -39
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/task.py +8 -7
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/volume.py +41 -14
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/auth_middleware.py +0 -4
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/node_configure.py +20 -27
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/node_utils_k8s.py +1 -1
- sbcli_dev-19.2.32/simplyblock_web/static/openapi.json +4250 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/templates/oc_storage_core_isolation.yaml.j2 +7 -7
- sbcli_dev-19.2.32/simplyblock_web/templates/oc_storage_cpu_topology.yaml.j2 +99 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/templates/storage_core_isolation.yaml.j2 +9 -9
- sbcli_dev-19.2.32/simplyblock_web/templates/storage_cpu_topology.yaml.j2 +122 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +56 -24
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/templates/storage_init_job.yaml.j2 +5 -4
- sbcli_dev-19.2.32/simplyblock_web/test/__init__.py +0 -0
- sbcli_dev-19.2.32/tests/__init__.py +0 -0
- sbcli_dev-19.2.32/tests/migration/__init__.py +0 -0
- sbcli_dev-19.2.32/tests/migration/conftest.py +458 -0
- sbcli_dev-19.2.32/tests/migration/db_setup.py +270 -0
- sbcli_dev-19.2.32/tests/migration/mock_rpc_server.py +846 -0
- sbcli_dev-19.2.32/tests/migration/test_complex_tree.py +691 -0
- sbcli_dev-19.2.32/tests/migration/test_ctl.py +370 -0
- sbcli_dev-19.2.32/tests/migration/test_migration_flow.py +796 -0
- sbcli_dev-19.2.32/tests/migration/test_scalability.py +552 -0
- sbcli_dev-19.2.32/tests/migration/test_unit_controller.py +694 -0
- sbcli_dev-19.2.32/tests/migration/test_unit_model.py +125 -0
- sbcli_dev-19.2.32/tests/migration/test_unit_runner_helpers.py +360 -0
- sbcli_dev-19.2.32/tests/migration/topology_loader.py +635 -0
- sbcli_dev-19.2.32/tests/test_backup.py +999 -0
- sbcli_dev-19.2.32/tests/test_dual_fault_tolerance.py +803 -0
- sbcli_dev-19.2.32/tests/test_dual_ft_e2e.py +1324 -0
- sbcli_dev-19.2.32/tests/test_imports.py +87 -0
- sbcli_dev-19.2.32/tests/test_nvmeof_security.py +749 -0
- sbcli_dev-19.2.32/tests/test_nvmeof_security_e2e.py +782 -0
- sbcli_dev-19.2.32/tests/test_port_allocation.py +984 -0
- sbcli_dev-19.2.30/LICENSE +0 -21
- sbcli_dev-19.2.30/simplyblock_core/controllers/lvol_events.py +0 -119
- sbcli_dev-19.2.30/simplyblock_core/controllers/pool_events.py +0 -53
- sbcli_dev-19.2.30/simplyblock_core/env_var +0 -6
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockdevices.yaml +0 -135
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblocklvols.yaml +0 -144
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockpools.yaml +0 -96
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockstorageclusters.yaml +0 -173
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockstoragenodes.yaml +0 -204
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblocktasks.yaml +0 -84
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/templates/_helpers.tpl +0 -21
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/templates/app_k8s.yaml +0 -497
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/templates/dashboards.yaml +0 -12515
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/templates/monitoring_secret.yaml +0 -23
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/templates/simplyblock-manager.yaml +0 -196
- sbcli_dev-19.2.30/simplyblock_core/scripts/charts/templates/simplyblock_customresource.yaml +0 -145
- sbcli_dev-19.2.30/simplyblock_web/static/openapi.json +0 -1
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/README.md +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/requirements.txt +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/setup.cfg +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/setup.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_cli/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/qos_controller.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/controllers/tcp_ports_events.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/fw_api_client.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/hublvol.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/qos.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/prom_client.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/.helmignore +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/crds/apps.foundationdb.org_foundationdbbackups.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/crds/apps.foundationdb.org_foundationdbclusters.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/crds/apps.foundationdb.org_foundationdbrestores.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/app_svc.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/clusterrole.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/csi-hostpath-driverinfo.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/csi-hostpath-plugin.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/charts/templates/storage_class.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/helpers/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/helpers/deploy_cluster.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/helpers/destroy_cluster.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/helpers/nvme_disconnect_by_ip.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/prometheus.yml.j2 +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/test/test_models.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/utils/helpers.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/utils/pci.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/README.md +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/internal/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/internal/node_api_basic.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/internal/storage_node/__init__.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/device.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/lvol.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/metrics.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/mgmt_node.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/pool.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/snapshot.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/static/swagger.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v1/swagger_ui.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/management_node.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/snapshot.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/api/v2/util.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/app.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/static/tst.py +0 -0
- /sbcli_dev-19.2.30/simplyblock_web/test/__init__.py → /sbcli_dev-19.2.32/simplyblock_web/templates/Untitled-1.j2 +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/templates/ubuntu_kernel_extra.yaml.j2 +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/test/conftest.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/test/pytest.ini +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/test/requirements.txt +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/test/util.py +0 -0
- {sbcli_dev-19.2.30 → sbcli_dev-19.2.32}/simplyblock_web/utils.py +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sbcli-dev
|
|
3
|
-
Version: 19.2.
|
|
3
|
+
Version: 19.2.32
|
|
4
4
|
Summary: CLI for managing SimplyBlock cluster
|
|
5
5
|
Home-page: https://www.simplyblock.io/
|
|
6
6
|
Author: Hamdy
|
|
7
7
|
Author-email: hamdy@simplyblock.io
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
-
License-File: LICENSE
|
|
10
9
|
Requires-Dist: foundationdb==7.3.63
|
|
11
10
|
Requires-Dist: requests
|
|
12
11
|
Requires-Dist: prettytable>=3.10.0
|
|
@@ -39,7 +38,6 @@ Dynamic: author-email
|
|
|
39
38
|
Dynamic: description
|
|
40
39
|
Dynamic: description-content-type
|
|
41
40
|
Dynamic: home-page
|
|
42
|
-
Dynamic: license-file
|
|
43
41
|
Dynamic: requires-dist
|
|
44
42
|
Dynamic: summary
|
|
45
43
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sbcli-dev
|
|
3
|
-
Version: 19.2.
|
|
3
|
+
Version: 19.2.32
|
|
4
4
|
Summary: CLI for managing SimplyBlock cluster
|
|
5
5
|
Home-page: https://www.simplyblock.io/
|
|
6
6
|
Author: Hamdy
|
|
7
7
|
Author-email: hamdy@simplyblock.io
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
-
License-File: LICENSE
|
|
10
9
|
Requires-Dist: foundationdb==7.3.63
|
|
11
10
|
Requires-Dist: requests
|
|
12
11
|
Requires-Dist: prettytable>=3.10.0
|
|
@@ -39,7 +38,6 @@ Dynamic: author-email
|
|
|
39
38
|
Dynamic: description
|
|
40
39
|
Dynamic: description-content-type
|
|
41
40
|
Dynamic: home-page
|
|
42
|
-
Dynamic: license-file
|
|
43
41
|
Dynamic: requires-dist
|
|
44
42
|
Dynamic: summary
|
|
45
43
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
LICENSE
|
|
2
1
|
README.md
|
|
3
2
|
pyproject.toml
|
|
4
3
|
requirements.txt
|
|
@@ -27,6 +26,8 @@ simplyblock_core/shell_utils.py
|
|
|
27
26
|
simplyblock_core/snode_client.py
|
|
28
27
|
simplyblock_core/storage_node_ops.py
|
|
29
28
|
simplyblock_core/controllers/__init__.py
|
|
29
|
+
simplyblock_core/controllers/backup_controller.py
|
|
30
|
+
simplyblock_core/controllers/backup_events.py
|
|
30
31
|
simplyblock_core/controllers/cluster_events.py
|
|
31
32
|
simplyblock_core/controllers/device_controller.py
|
|
32
33
|
simplyblock_core/controllers/device_events.py
|
|
@@ -35,6 +36,8 @@ simplyblock_core/controllers/health_controller.py
|
|
|
35
36
|
simplyblock_core/controllers/lvol_controller.py
|
|
36
37
|
simplyblock_core/controllers/lvol_events.py
|
|
37
38
|
simplyblock_core/controllers/mgmt_events.py
|
|
39
|
+
simplyblock_core/controllers/migration_controller.py
|
|
40
|
+
simplyblock_core/controllers/migration_events.py
|
|
38
41
|
simplyblock_core/controllers/pool_controller.py
|
|
39
42
|
simplyblock_core/controllers/pool_events.py
|
|
40
43
|
simplyblock_core/controllers/qos_controller.py
|
|
@@ -45,12 +48,14 @@ simplyblock_core/controllers/tasks_controller.py
|
|
|
45
48
|
simplyblock_core/controllers/tasks_events.py
|
|
46
49
|
simplyblock_core/controllers/tcp_ports_events.py
|
|
47
50
|
simplyblock_core/models/__init__.py
|
|
51
|
+
simplyblock_core/models/backup.py
|
|
48
52
|
simplyblock_core/models/base_model.py
|
|
49
53
|
simplyblock_core/models/cluster.py
|
|
50
54
|
simplyblock_core/models/events.py
|
|
51
55
|
simplyblock_core/models/hublvol.py
|
|
52
56
|
simplyblock_core/models/iface.py
|
|
53
57
|
simplyblock_core/models/job_schedule.py
|
|
58
|
+
simplyblock_core/models/lvol_migration.py
|
|
54
59
|
simplyblock_core/models/lvol_model.py
|
|
55
60
|
simplyblock_core/models/mgmt_node.py
|
|
56
61
|
simplyblock_core/models/nvme_device.py
|
|
@@ -88,13 +93,6 @@ simplyblock_core/scripts/charts/values.yaml
|
|
|
88
93
|
simplyblock_core/scripts/charts/crds/apps.foundationdb.org_foundationdbbackups.yaml
|
|
89
94
|
simplyblock_core/scripts/charts/crds/apps.foundationdb.org_foundationdbclusters.yaml
|
|
90
95
|
simplyblock_core/scripts/charts/crds/apps.foundationdb.org_foundationdbrestores.yaml
|
|
91
|
-
simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockdevices.yaml
|
|
92
|
-
simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblocklvols.yaml
|
|
93
|
-
simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockpools.yaml
|
|
94
|
-
simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockstorageclusters.yaml
|
|
95
|
-
simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblockstoragenodes.yaml
|
|
96
|
-
simplyblock_core/scripts/charts/crds/simplyblock.simplyblock.io_simplyblocktasks.yaml
|
|
97
|
-
simplyblock_core/scripts/charts/templates/_helpers.tpl
|
|
98
96
|
simplyblock_core/scripts/charts/templates/app_configmap.yaml
|
|
99
97
|
simplyblock_core/scripts/charts/templates/app_ingress.yaml
|
|
100
98
|
simplyblock_core/scripts/charts/templates/app_k8s.yaml
|
|
@@ -111,8 +109,6 @@ simplyblock_core/scripts/charts/templates/monitoring_ingress.yaml
|
|
|
111
109
|
simplyblock_core/scripts/charts/templates/monitoring_k8s.yaml
|
|
112
110
|
simplyblock_core/scripts/charts/templates/monitoring_secret.yaml
|
|
113
111
|
simplyblock_core/scripts/charts/templates/monitoring_svc.yaml
|
|
114
|
-
simplyblock_core/scripts/charts/templates/simplyblock-manager.yaml
|
|
115
|
-
simplyblock_core/scripts/charts/templates/simplyblock_customresource.yaml
|
|
116
112
|
simplyblock_core/scripts/charts/templates/storage_class.yaml
|
|
117
113
|
simplyblock_core/scripts/dashboards/cluster.json
|
|
118
114
|
simplyblock_core/scripts/dashboards/devices.json
|
|
@@ -141,8 +137,11 @@ simplyblock_core/services/snapshot_monitor.py
|
|
|
141
137
|
simplyblock_core/services/spdk_http_proxy_server.py
|
|
142
138
|
simplyblock_core/services/storage_node_monitor.py
|
|
143
139
|
simplyblock_core/services/tasks_cluster_status.py
|
|
140
|
+
simplyblock_core/services/tasks_runner_backup.py
|
|
141
|
+
simplyblock_core/services/tasks_runner_backup_merge.py
|
|
144
142
|
simplyblock_core/services/tasks_runner_failed_migration.py
|
|
145
143
|
simplyblock_core/services/tasks_runner_jc_comp.py
|
|
144
|
+
simplyblock_core/services/tasks_runner_lvol_migration.py
|
|
146
145
|
simplyblock_core/services/tasks_runner_migration.py
|
|
147
146
|
simplyblock_core/services/tasks_runner_new_dev_migration.py
|
|
148
147
|
simplyblock_core/services/tasks_runner_node_add.py
|
|
@@ -182,10 +181,12 @@ simplyblock_web/api/v1/storage_node.py
|
|
|
182
181
|
simplyblock_web/api/v1/swagger_ui.py
|
|
183
182
|
simplyblock_web/api/v1/static/swagger.yaml
|
|
184
183
|
simplyblock_web/api/v2/__init__.py
|
|
184
|
+
simplyblock_web/api/v2/backup.py
|
|
185
185
|
simplyblock_web/api/v2/cluster.py
|
|
186
186
|
simplyblock_web/api/v2/device.py
|
|
187
187
|
simplyblock_web/api/v2/dtos.py
|
|
188
188
|
simplyblock_web/api/v2/management_node.py
|
|
189
|
+
simplyblock_web/api/v2/migration.py
|
|
189
190
|
simplyblock_web/api/v2/pool.py
|
|
190
191
|
simplyblock_web/api/v2/snapshot.py
|
|
191
192
|
simplyblock_web/api/v2/storage_node.py
|
|
@@ -201,9 +202,12 @@ simplyblock_web/static/list_deps.py
|
|
|
201
202
|
simplyblock_web/static/openapi.json
|
|
202
203
|
simplyblock_web/static/rpac.yaml
|
|
203
204
|
simplyblock_web/static/tst.py
|
|
205
|
+
simplyblock_web/templates/Untitled-1.j2
|
|
204
206
|
simplyblock_web/templates/caching_deploy_spdk.yaml.j2
|
|
205
207
|
simplyblock_web/templates/oc_storage_core_isolation.yaml.j2
|
|
208
|
+
simplyblock_web/templates/oc_storage_cpu_topology.yaml.j2
|
|
206
209
|
simplyblock_web/templates/storage_core_isolation.yaml.j2
|
|
210
|
+
simplyblock_web/templates/storage_cpu_topology.yaml.j2
|
|
207
211
|
simplyblock_web/templates/storage_deploy_spdk.yaml.j2
|
|
208
212
|
simplyblock_web/templates/storage_init_job.yaml.j2
|
|
209
213
|
simplyblock_web/templates/ubuntu_kernel_extra.yaml.j2
|
|
@@ -211,4 +215,24 @@ simplyblock_web/test/__init__.py
|
|
|
211
215
|
simplyblock_web/test/conftest.py
|
|
212
216
|
simplyblock_web/test/pytest.ini
|
|
213
217
|
simplyblock_web/test/requirements.txt
|
|
214
|
-
simplyblock_web/test/util.py
|
|
218
|
+
simplyblock_web/test/util.py
|
|
219
|
+
tests/__init__.py
|
|
220
|
+
tests/test_backup.py
|
|
221
|
+
tests/test_dual_fault_tolerance.py
|
|
222
|
+
tests/test_dual_ft_e2e.py
|
|
223
|
+
tests/test_imports.py
|
|
224
|
+
tests/test_nvmeof_security.py
|
|
225
|
+
tests/test_nvmeof_security_e2e.py
|
|
226
|
+
tests/test_port_allocation.py
|
|
227
|
+
tests/migration/__init__.py
|
|
228
|
+
tests/migration/conftest.py
|
|
229
|
+
tests/migration/db_setup.py
|
|
230
|
+
tests/migration/mock_rpc_server.py
|
|
231
|
+
tests/migration/test_complex_tree.py
|
|
232
|
+
tests/migration/test_ctl.py
|
|
233
|
+
tests/migration/test_migration_flow.py
|
|
234
|
+
tests/migration/test_scalability.py
|
|
235
|
+
tests/migration/test_unit_controller.py
|
|
236
|
+
tests/migration/test_unit_model.py
|
|
237
|
+
tests/migration/test_unit_runner_helpers.py
|
|
238
|
+
tests/migration/topology_loader.py
|
|
@@ -6,7 +6,7 @@ import sys
|
|
|
6
6
|
import traceback
|
|
7
7
|
|
|
8
8
|
from simplyblock_cli.clibase import CLIWrapperBase, range_type, size_type
|
|
9
|
-
from simplyblock_core import utils
|
|
9
|
+
from simplyblock_core import utils, constants
|
|
10
10
|
|
|
11
11
|
class CLIWrapper(CLIWrapperBase):
|
|
12
12
|
|
|
@@ -78,6 +78,11 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
78
78
|
if self.developer_mode:
|
|
79
79
|
self.init_storage_node__set(subparser)
|
|
80
80
|
self.init_storage_node__new_device_from_failed(subparser)
|
|
81
|
+
self.init_storage_node__list_snapshots(subparser)
|
|
82
|
+
self.init_storage_node__list_lvols(subparser)
|
|
83
|
+
self.init_storage_node__repair_lvstore(subparser)
|
|
84
|
+
if self.developer_mode:
|
|
85
|
+
self.init_storage_node__lvs_dump_tree(subparser)
|
|
81
86
|
|
|
82
87
|
|
|
83
88
|
def init_storage_node__deploy(self, subparser):
|
|
@@ -88,7 +93,7 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
88
93
|
def init_storage_node__configure(self, subparser):
|
|
89
94
|
subcommand = self.add_sub_command(subparser, 'configure', 'Prepare a configuration file to be used when adding the storage node')
|
|
90
95
|
argument = subcommand.add_argument('--max-lvol', help='Max logical volume per storage node', type=int, dest='max_lvol', required=True)
|
|
91
|
-
argument = subcommand.add_argument('--max-size', help='Maximum amount of
|
|
96
|
+
argument = subcommand.add_argument('--max-size', help='Maximum amount of Huge Pages to be set on the node', type=str, dest='max_prov', required=False)
|
|
92
97
|
argument = subcommand.add_argument('--nodes-per-socket', help='number of each node to be added per each socket.', type=int, default=1, dest='nodes_per_socket')
|
|
93
98
|
argument = subcommand.add_argument('--sockets-to-use', help='The system socket to use when adding the storage nodes', type=str, default='0', dest='sockets_to_use')
|
|
94
99
|
argument = subcommand.add_argument('--cores-percentage', help='The percentage of cores to be used for spdk (0-99)', type=range_type(0, 99), default=0, dest='cores_percentage')
|
|
@@ -96,7 +101,10 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
96
101
|
argument = subcommand.add_argument('--pci-blocked', help='Comma separated list of PCI addresses of Nvme devices to not use for storage devices', type=str, default='', dest='pci_blocked', required=False)
|
|
97
102
|
argument = subcommand.add_argument('--device-model', help='NVMe SSD model string, example: --model PM1628, --device-model and --size-range must be set together', type=str, default='', dest='device_model', required=False)
|
|
98
103
|
argument = subcommand.add_argument('--size-range', help='NVMe SSD device size range separated by -, can be X(m,g,t) or bytes as integer, example: --size-range 50G-1T or --size-range 1232345-67823987, --device-model and --size-range must be set together', type=str, default='', dest='size_range', required=False)
|
|
104
|
+
argument = subcommand.add_argument('--nvme-names', help='Comma separated list of nvme namespace names like nvme0n1,nvme1n1...', type=str, default='', dest='nvme_names', required=False)
|
|
99
105
|
argument = subcommand.add_argument('--force', help='Force format detected or passed nvme pci address to 4K and clean partitions', dest='force', action='store_true')
|
|
106
|
+
argument = subcommand.add_argument('--calculate-hp-only', help='Calculate the minimum required huge pages, it depends on the following params: --cores-percentage, --sockets-to-use, --max-lvol, --nodes-per-socket, --number-of-devices', dest='calculate_hp_only', action='store_true')
|
|
107
|
+
argument = subcommand.add_argument('--number-of-devices', help='number of devices that will be used on this host, For calculating huge pages memory only', type=int, dest='number_of_devices')
|
|
100
108
|
|
|
101
109
|
def init_storage_node__configure_upgrade(self, subparser):
|
|
102
110
|
subcommand = self.add_sub_command(subparser, 'configure-upgrade', 'Upgrade the automated configuration file with new changes of cpu mask or storage devices')
|
|
@@ -114,6 +122,7 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
114
122
|
subcommand.add_argument('node_addr', help='Address of storage node api to add, like <node-ip>:5000', type=str)
|
|
115
123
|
subcommand.add_argument('ifname', help='Management interface name', type=str)
|
|
116
124
|
argument = subcommand.add_argument('--journal-partition', help='1: auto-create small partitions for journal on nvme devices. 0: use a separate (the smallest) nvme device of the node for journal. The journal needs a maximum of 3 percent of total available raw disk space.', type=int, default=1, dest='partitions')
|
|
125
|
+
argument = subcommand.add_argument('--format-4k', help='Force format nvme devices with 4K', dest='format_4k', action='store_true')
|
|
117
126
|
if self.developer_mode:
|
|
118
127
|
argument = subcommand.add_argument('--jm-percent', help='Number in percent to use for JM from each device', type=int, default=3, dest='jm_percent')
|
|
119
128
|
argument = subcommand.add_argument('--data-nics', help='Storage network interface names. currently one interface is supported.', type=str, dest='data_nics', nargs='+')
|
|
@@ -310,6 +319,27 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
310
319
|
subcommand = self.add_sub_command(subparser, 'new-device-from-failed', 'Adds a new device to from failed device information')
|
|
311
320
|
subcommand.add_argument('device_id', help='Device id', type=str)
|
|
312
321
|
|
|
322
|
+
def init_storage_node__list_snapshots(self, subparser):
|
|
323
|
+
subcommand = self.add_sub_command(subparser, 'list-snapshots', 'List snapshots on a storage node')
|
|
324
|
+
subcommand.add_argument('node_id', help='Node id', type=str)
|
|
325
|
+
argument = subcommand.add_argument('--json', help='Print json output', dest='json', action='store_true')
|
|
326
|
+
|
|
327
|
+
def init_storage_node__list_lvols(self, subparser):
|
|
328
|
+
subcommand = self.add_sub_command(subparser, 'list-lvols', 'List lvols on a storage node')
|
|
329
|
+
subcommand.add_argument('node_id', help='Node id', type=str)
|
|
330
|
+
argument = subcommand.add_argument('--json', help='Print json output', dest='json', action='store_true')
|
|
331
|
+
|
|
332
|
+
def init_storage_node__repair_lvstore(self, subparser):
|
|
333
|
+
subcommand = self.add_sub_command(subparser, 'repair-lvstore', 'Try repair any inconsistencies in lvstore on a storage node')
|
|
334
|
+
subcommand.add_argument('node_id', help='Node id', type=str)
|
|
335
|
+
argument = subcommand.add_argument('--validate-only', help='Validate only, do not perform any repair actions', dest='validate_only', action='store_true')
|
|
336
|
+
argument = subcommand.add_argument('--force-remove-inconsistent', help='Force remove any inconsistent lvols or snapshots', dest='force_remove_inconsistent', action='store_true')
|
|
337
|
+
argument = subcommand.add_argument('--force_remove_wrong_ref', help='Force remove lvols or snapshots with wrong reference count', dest='force_remove_wrong_ref', action='store_true')
|
|
338
|
+
|
|
339
|
+
def init_storage_node__lvs_dump_tree(self, subparser):
|
|
340
|
+
subcommand = self.add_sub_command(subparser, 'lvs-dump-tree', 'dump lvstore tree for debugging')
|
|
341
|
+
subcommand.add_argument('node_id', help='Node id', type=str)
|
|
342
|
+
|
|
313
343
|
|
|
314
344
|
def init_cluster(self):
|
|
315
345
|
subparser = self.add_command('cluster', 'Cluster commands')
|
|
@@ -384,6 +414,7 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
384
414
|
argument = subcommand.add_argument('--name', '-n', help='Assigns a name to the newly created cluster.', type=str, dest='name')
|
|
385
415
|
argument = subcommand.add_argument('--qpair-count', help='NVMe/TCP transport qpair count per logical volume', type=range_type(0, 128), default=32, dest='qpair_count')
|
|
386
416
|
argument = subcommand.add_argument('--client-qpair-count', help='default NVMe/TCP transport qpair count per logical volume for client', type=range_type(0, 128), default=3, dest='client_qpair_count')
|
|
417
|
+
argument = subcommand.add_argument('--client-data-nic', help='Network interface name from client to use for LVol connection.', type=str, dest='client_data_nic')
|
|
387
418
|
|
|
388
419
|
def init_cluster__add(self, subparser):
|
|
389
420
|
subcommand = self.add_sub_command(subparser, 'add', 'Adds a new cluster')
|
|
@@ -411,6 +442,7 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
411
442
|
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')
|
|
412
443
|
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')
|
|
413
444
|
argument = subcommand.add_argument('--name', '-n', help='Assigns a name to the newly created cluster.', type=str, dest='name')
|
|
445
|
+
argument = subcommand.add_argument('--client-data-nic', help='Network interface name from client to use for LVol connection.', type=str, dest='client_data_nic')
|
|
414
446
|
|
|
415
447
|
def init_cluster__activate(self, subparser):
|
|
416
448
|
subcommand = self.add_sub_command(subparser, 'activate', 'Activates a cluster.')
|
|
@@ -482,7 +514,6 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
482
514
|
subcommand = self.add_sub_command(subparser, 'update', 'Updates a cluster to new version')
|
|
483
515
|
subcommand.add_argument('cluster_id', help='Cluster id', type=str).completer = self._completer_get_cluster_list
|
|
484
516
|
argument = subcommand.add_argument('--cp-only', help='Update the control plane only', type=bool, default=False, dest='mgmt_only')
|
|
485
|
-
argument = subcommand.add_argument('--restart', help='Restart the management services', type=bool, default=False, dest='restart')
|
|
486
517
|
argument = subcommand.add_argument('--spdk-image', help='Restart the storage nodes using the provided image', type=str, dest='spdk_image')
|
|
487
518
|
argument = subcommand.add_argument('--mgmt-image', help='Restart the management services using the provided image', type=str, dest='mgmt_image')
|
|
488
519
|
|
|
@@ -804,6 +835,10 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
804
835
|
else:
|
|
805
836
|
self.logger.setLevel(logging.INFO)
|
|
806
837
|
|
|
838
|
+
if args.version:
|
|
839
|
+
print(f"simplyblock version: {constants.SIMPLY_BLOCK_VERSION}")
|
|
840
|
+
return True
|
|
841
|
+
|
|
807
842
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
808
843
|
|
|
809
844
|
ret = False
|
|
@@ -937,6 +972,18 @@ class CLIWrapper(CLIWrapperBase):
|
|
|
937
972
|
ret = self.storage_node__set(sub_command, args)
|
|
938
973
|
elif sub_command in ['new-device-from-failed']:
|
|
939
974
|
ret = self.storage_node__new_device_from_failed(sub_command, args)
|
|
975
|
+
elif sub_command in ['list-snapshots']:
|
|
976
|
+
ret = self.storage_node__list_snapshots(sub_command, args)
|
|
977
|
+
elif sub_command in ['list-lvols']:
|
|
978
|
+
ret = self.storage_node__list_lvols(sub_command, args)
|
|
979
|
+
elif sub_command in ['repair-lvstore']:
|
|
980
|
+
ret = self.storage_node__repair_lvstore(sub_command, args)
|
|
981
|
+
elif sub_command in ['lvs-dump-tree']:
|
|
982
|
+
if not self.developer_mode:
|
|
983
|
+
print("This command is private.")
|
|
984
|
+
ret = False
|
|
985
|
+
else:
|
|
986
|
+
ret = self.storage_node__lvs_dump_tree(sub_command, args)
|
|
940
987
|
else:
|
|
941
988
|
self.parser.print_help()
|
|
942
989
|
|