sbcli-hmdi 0.0.11__tar.gz → 0.0.13__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/PKG-INFO +1 -1
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/sbcli_hmdi.egg-info/PKG-INFO +1 -1
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/lvol_controller.py +5 -4
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/env_var +1 -1
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/lvol_model.py +1 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/storage_node.py +1 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/rpc_client.py +5 -4
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/install_deps.sh +9 -2
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/snode_client.py +9 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/storage_node_ops.py +28 -21
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/snode_ops.py +18 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/node_utils.py +39 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/README.md +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/pyproject.toml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/requirements.txt +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/sbcli_hmdi.egg-info/SOURCES.txt +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/sbcli_hmdi.egg-info/dependency_links.txt +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/sbcli_hmdi.egg-info/entry_points.txt +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/sbcli_hmdi.egg-info/requires.txt +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/sbcli_hmdi.egg-info/top_level.txt +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/setup.cfg +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/setup.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_cli/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_cli/cli.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_cli/main.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/constants.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/db_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/events.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/iface.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/pool.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/models/stats.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/utils.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/README.md +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/app.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/requirements.txt +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/snode_app.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/delete.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/static/tst.py +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/utils.py +0 -0
@@ -449,6 +449,7 @@ def add_lvol_ha(name, size, host_id_or_name, ha_type, pool_id_or_name, use_comp,
|
|
449
449
|
lvol.hostname = host_node.hostname
|
450
450
|
lvol.node_id = host_node.get_id()
|
451
451
|
lvol.lvs_name = host_node.lvstore
|
452
|
+
lvol.subsys_port = host_node.lvol_subsys_port
|
452
453
|
lvol.top_bdev = f"{lvol.lvs_name}/{lvol.lvol_bdev}"
|
453
454
|
lvol.base_bdev = lvol.top_bdev
|
454
455
|
|
@@ -631,13 +632,13 @@ def add_lvol_on_node(lvol, snode, ha_comm_addrs=None, ha_inode_self=0, sec_is_pr
|
|
631
632
|
if iface.ip4_address:
|
632
633
|
tr_type = iface.get_transport_type()
|
633
634
|
logger.info("adding listener for %s on IP %s" % (lvol.nqn, iface.ip4_address))
|
634
|
-
ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address,
|
635
|
+
ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address, lvol.subsys_port)
|
635
636
|
is_optimized = False
|
636
637
|
if lvol.node_id == snode.get_id():
|
637
638
|
is_optimized = True
|
638
639
|
logger.info(f"Setting ANA state: {is_optimized}")
|
639
640
|
ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
|
640
|
-
lvol.nqn, iface.ip4_address,
|
641
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, is_optimized)
|
641
642
|
|
642
643
|
logger.info("Add BDev to subsystem")
|
643
644
|
ret = rpc_client.nvmf_subsystem_add_ns(lvol.nqn, lvol.top_bdev, lvol.uuid, lvol.guid)
|
@@ -714,7 +715,7 @@ def recreate_lvol_on_node(lvol, snode, ha_inode_self=0, ana_state=None):
|
|
714
715
|
ana_state = "optimized"
|
715
716
|
logger.info("adding listener for %s on IP %s" % (lvol.nqn, iface.ip4_address))
|
716
717
|
logger.info(f"Setting ANA state: {ana_state}")
|
717
|
-
ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address,
|
718
|
+
ret = rpc_client.listeners_create(lvol.nqn, tr_type, iface.ip4_address, lvol.subsys_port, ana_state)
|
718
719
|
|
719
720
|
return True, None
|
720
721
|
|
@@ -1111,7 +1112,7 @@ def connect_lvol(uuid):
|
|
1111
1112
|
for nic in snode.data_nics:
|
1112
1113
|
transport = nic.get_transport_type().lower()
|
1113
1114
|
ip = nic.ip4_address
|
1114
|
-
port =
|
1115
|
+
port = lvol.subsys_port
|
1115
1116
|
out.append({
|
1116
1117
|
"transport": transport,
|
1117
1118
|
"ip": ip,
|
@@ -178,7 +178,7 @@ class RPCClient:
|
|
178
178
|
"trtype": trtype,
|
179
179
|
"adrfam": "IPv4",
|
180
180
|
"traddr": traddr,
|
181
|
-
"trsvcid": trsvcid
|
181
|
+
"trsvcid": str(trsvcid)
|
182
182
|
}
|
183
183
|
}
|
184
184
|
if ana_state:
|
@@ -901,7 +901,7 @@ class RPCClient:
|
|
901
901
|
"trtype": trtype,
|
902
902
|
"adrfam": "IPv4",
|
903
903
|
"traddr": traddr,
|
904
|
-
"trsvcid": trsvcid
|
904
|
+
"trsvcid": str(trsvcid)
|
905
905
|
}
|
906
906
|
}
|
907
907
|
return self._request("nvmf_subsystem_remove_listener", params)
|
@@ -980,9 +980,10 @@ class RPCClient:
|
|
980
980
|
}
|
981
981
|
return self._request("nvmf_set_max_subsystems", params)
|
982
982
|
|
983
|
-
def
|
983
|
+
def bdev_lvol_set_lvs_ops(self, lvs_name, groupid, subsystem_port=9090):
|
984
984
|
params = {
|
985
985
|
"groupid": groupid,
|
986
986
|
"lvs_name": lvs_name,
|
987
|
+
"subsystem_port": subsystem_port,
|
987
988
|
}
|
988
|
-
return self._request("
|
989
|
+
return self._request("bdev_lvol_set_lvs_op", params)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
sudo yum install -y yum-utils xorg-x11-xauth nvme-cli fio
|
4
4
|
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
5
5
|
sudo yum install hostname pkg-config git wget python3-pip yum-utils docker-ce docker-ce-cli \
|
6
|
-
containerd.io docker-buildx-plugin docker-compose-plugin -y
|
6
|
+
containerd.io docker-buildx-plugin docker-compose-plugin iptables -y
|
7
7
|
|
8
8
|
sudo systemctl enable docker
|
9
9
|
sudo systemctl start docker
|
@@ -27,4 +27,11 @@ sudo chmod 777 /etc/simplyblock
|
|
27
27
|
|
28
28
|
sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
|
29
29
|
|
30
|
-
sudo sed -i 's/ProcessSizeMax=.*/ProcessSizeMax=5G/' /etc/systemd/coredump.conf
|
30
|
+
sudo sed -i 's/ProcessSizeMax=.*/ProcessSizeMax=5G/' /etc/systemd/coredump.conf
|
31
|
+
|
32
|
+
sudo systemctl restart iptables
|
33
|
+
sudo iptables -F
|
34
|
+
sudo iptables -X
|
35
|
+
sudo iptables -P INPUT ACCEPT
|
36
|
+
sudo iptables -P FORWARD ACCEPT
|
37
|
+
sudo iptables -P OUTPUT ACCEPT
|
@@ -134,3 +134,12 @@ class SNodeClient:
|
|
134
134
|
|
135
135
|
def get_file_content(self, file_name):
|
136
136
|
return self._request("GET", f"get_file_content/{file_name}")
|
137
|
+
|
138
|
+
|
139
|
+
def firewall_set_port(self, port_id, port_type="tcp", action="block"):
|
140
|
+
params = {
|
141
|
+
"port_id": port_id,
|
142
|
+
"port_type": port_type,
|
143
|
+
"action": action,
|
144
|
+
}
|
145
|
+
return self._request("POST", "firewall_set_port", params)
|
@@ -2214,7 +2214,7 @@ def suspend_storage_node(node_id, force=False):
|
|
2214
2214
|
for iface in snode.data_nics:
|
2215
2215
|
if iface.ip4_address:
|
2216
2216
|
ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2217
|
-
lvol.nqn, iface.ip4_address,
|
2217
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
|
2218
2218
|
|
2219
2219
|
rpc_client.bdev_lvol_set_leader(False, lvs_name=node.lvstore)
|
2220
2220
|
rpc_client.bdev_distrib_force_to_non_leader(node.jm_vuid)
|
@@ -2229,7 +2229,7 @@ def suspend_storage_node(node_id, force=False):
|
|
2229
2229
|
for iface in sec_node.data_nics:
|
2230
2230
|
if iface.ip4_address:
|
2231
2231
|
ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
|
2232
|
-
lvol.nqn, iface.ip4_address,
|
2232
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
|
2233
2233
|
|
2234
2234
|
# sec_node_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
|
2235
2235
|
# sec_node_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
|
@@ -2239,7 +2239,7 @@ def suspend_storage_node(node_id, force=False):
|
|
2239
2239
|
for iface in snode.data_nics:
|
2240
2240
|
if iface.ip4_address:
|
2241
2241
|
ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2242
|
-
lvol.nqn, iface.ip4_address,
|
2242
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
|
2243
2243
|
time.sleep(3)
|
2244
2244
|
|
2245
2245
|
rpc_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
|
@@ -2254,7 +2254,7 @@ def suspend_storage_node(node_id, force=False):
|
|
2254
2254
|
for iface in sec_node.data_nics:
|
2255
2255
|
if iface.ip4_address:
|
2256
2256
|
ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
|
2257
|
-
lvol.nqn, iface.ip4_address,
|
2257
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
|
2258
2258
|
|
2259
2259
|
|
2260
2260
|
if snode.jm_device and snode.jm_device.status != JMDevice.STATUS_REMOVED:
|
@@ -2320,7 +2320,7 @@ def resume_storage_node(node_id):
|
|
2320
2320
|
for iface in snode.data_nics:
|
2321
2321
|
if iface.ip4_address:
|
2322
2322
|
ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2323
|
-
lvol.nqn, iface.ip4_address,
|
2323
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
|
2324
2324
|
|
2325
2325
|
|
2326
2326
|
else:
|
@@ -2338,7 +2338,7 @@ def resume_storage_node(node_id):
|
|
2338
2338
|
for iface in sec_node.data_nics:
|
2339
2339
|
if iface.ip4_address:
|
2340
2340
|
ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
|
2341
|
-
lvol.nqn, iface.ip4_address,
|
2341
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False, ana="inaccessible")
|
2342
2342
|
time.sleep(1)
|
2343
2343
|
sec_node_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
|
2344
2344
|
sec_node_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
|
@@ -2348,7 +2348,7 @@ def resume_storage_node(node_id):
|
|
2348
2348
|
for iface in snode.data_nics:
|
2349
2349
|
if iface.ip4_address:
|
2350
2350
|
ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2351
|
-
lvol.nqn, iface.ip4_address,
|
2351
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, True)
|
2352
2352
|
|
2353
2353
|
time.sleep(3)
|
2354
2354
|
|
@@ -2359,7 +2359,7 @@ def resume_storage_node(node_id):
|
|
2359
2359
|
for iface in sec_node.data_nics:
|
2360
2360
|
if iface.ip4_address:
|
2361
2361
|
ret = sec_node_client.nvmf_subsystem_listener_set_ana_state(
|
2362
|
-
lvol.nqn, iface.ip4_address,
|
2362
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
|
2363
2363
|
|
2364
2364
|
logger.info("Setting node status to online")
|
2365
2365
|
set_node_status(snode.get_id(), StorageNode.STATUS_ONLINE)
|
@@ -2810,7 +2810,7 @@ def recreate_lvstore_on_sec(snode):
|
|
2810
2810
|
for iface in node.data_nics:
|
2811
2811
|
if iface.ip4_address:
|
2812
2812
|
ret = remote_rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2813
|
-
lvol.nqn, iface.ip4_address,
|
2813
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False, "inaccessible")
|
2814
2814
|
|
2815
2815
|
remote_rpc_client.bdev_lvol_set_leader(False, lvs_name=node.lvstore)
|
2816
2816
|
remote_rpc_client.bdev_distrib_force_to_non_leader(node.jm_vuid)
|
@@ -2818,7 +2818,7 @@ def recreate_lvstore_on_sec(snode):
|
|
2818
2818
|
ret, err = _create_bdev_stack(snode, node.lvstore_stack, primary_node=node)
|
2819
2819
|
ret = rpc_client.bdev_examine(node.raid)
|
2820
2820
|
ret = rpc_client.bdev_wait_for_examine()
|
2821
|
-
ret = rpc_client.
|
2821
|
+
ret = rpc_client.bdev_lvol_set_lvs_ops(node.lvstore, node.jm_vuid, node.lvol_subsys_port)
|
2822
2822
|
|
2823
2823
|
for lvol in lvol_list:
|
2824
2824
|
is_created, error = lvol_controller.recreate_lvol_on_node(
|
@@ -2840,7 +2840,7 @@ def recreate_lvstore_on_sec(snode):
|
|
2840
2840
|
for iface in node.data_nics:
|
2841
2841
|
if iface.ip4_address:
|
2842
2842
|
ret = remote_rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2843
|
-
lvol.nqn, iface.ip4_address,
|
2843
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, True)
|
2844
2844
|
|
2845
2845
|
time.sleep(5)
|
2846
2846
|
|
@@ -2848,7 +2848,7 @@ def recreate_lvstore_on_sec(snode):
|
|
2848
2848
|
for iface in snode.data_nics:
|
2849
2849
|
if iface.ip4_address:
|
2850
2850
|
ret = rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2851
|
-
lvol.nqn, iface.ip4_address,
|
2851
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
|
2852
2852
|
|
2853
2853
|
return True
|
2854
2854
|
|
@@ -2873,7 +2873,10 @@ def recreate_lvstore(snode):
|
|
2873
2873
|
for iface in sec_node.data_nics:
|
2874
2874
|
if iface.ip4_address:
|
2875
2875
|
ret = sec_rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2876
|
-
lvol.nqn, iface.ip4_address,
|
2876
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False, "inaccessible")
|
2877
|
+
|
2878
|
+
# sec_node_api = SNodeClient(sec_node.api_endpoint)
|
2879
|
+
# sec_node_api.firewall_set_port(snode.lvol_subsys_port, "tcp", "block")
|
2877
2880
|
|
2878
2881
|
sec_rpc_client.bdev_lvol_set_leader(False, lvs_name=snode.lvstore)
|
2879
2882
|
sec_rpc_client.bdev_distrib_force_to_non_leader(snode.jm_vuid)
|
@@ -2918,12 +2921,14 @@ def recreate_lvstore(snode):
|
|
2918
2921
|
|
2919
2922
|
ret = rpc_client.bdev_examine(snode.raid)
|
2920
2923
|
ret = rpc_client.bdev_wait_for_examine()
|
2921
|
-
|
2924
|
+
time.sleep(1)
|
2925
|
+
|
2926
|
+
ret = rpc_client.bdev_lvol_set_lvs_ops(snode.lvstore, snode.jm_vuid, snode.lvol_subsys_port)
|
2922
2927
|
|
2923
|
-
if not prim_node_suspend:
|
2924
|
-
|
2925
|
-
|
2926
|
-
|
2928
|
+
# if not prim_node_suspend:
|
2929
|
+
# if snode.jm_vuid:
|
2930
|
+
# ret = rpc_client.jc_explicit_synchronization(snode.jm_vuid)
|
2931
|
+
# logger.info(f"JM Sync res: {ret}")
|
2927
2932
|
|
2928
2933
|
lvol_ana_state = "optimized"
|
2929
2934
|
if prim_node_suspend:
|
@@ -2955,7 +2960,7 @@ def recreate_lvstore(snode):
|
|
2955
2960
|
for iface in sec_node.data_nics:
|
2956
2961
|
if iface.ip4_address:
|
2957
2962
|
ret = sec_rpc_client.nvmf_subsystem_listener_set_ana_state(
|
2958
|
-
lvol.nqn, iface.ip4_address,
|
2963
|
+
lvol.nqn, iface.ip4_address, lvol.subsys_port, False)
|
2959
2964
|
return True
|
2960
2965
|
|
2961
2966
|
|
@@ -3014,6 +3019,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
|
|
3014
3019
|
strip_size_kb = utils.nearest_upper_power_of_2(strip_size_kb)
|
3015
3020
|
jm_vuid = 0
|
3016
3021
|
jm_ids = []
|
3022
|
+
lvol_subsys_port = 9090
|
3017
3023
|
if snode.enable_ha_jm:
|
3018
3024
|
jm_vuid = utils.get_random_vuid()
|
3019
3025
|
jm_ids = get_sorted_ha_jms(snode)
|
@@ -3089,6 +3095,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
|
|
3089
3095
|
snode.lvstore = lvs_name
|
3090
3096
|
snode.lvstore_stack = lvstore_stack
|
3091
3097
|
snode.raid = raid_device
|
3098
|
+
snode.lvol_subsys_port = lvol_subsys_port
|
3092
3099
|
snode.write_to_db()
|
3093
3100
|
|
3094
3101
|
ret, err = _create_bdev_stack(snode, lvstore_stack)
|
@@ -3112,7 +3119,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
|
|
3112
3119
|
|
3113
3120
|
ret = temp_rpc_client.bdev_examine(snode.raid)
|
3114
3121
|
ret = temp_rpc_client.bdev_wait_for_examine()
|
3115
|
-
ret = temp_rpc_client.
|
3122
|
+
ret = temp_rpc_client.bdev_lvol_set_lvs_ops(snode.lvstore, snode.jm_vuid, snode.lvol_subsys_port)
|
3116
3123
|
|
3117
3124
|
sec_node_1.write_to_db()
|
3118
3125
|
|
@@ -3171,7 +3178,7 @@ def _create_bdev_stack(snode, lvstore_stack=None, primary_node=None):
|
|
3171
3178
|
elif type == "bdev_lvstore" and lvstore_stack and not snode.is_secondary_node:
|
3172
3179
|
ret = rpc_client.create_lvstore(**params)
|
3173
3180
|
if ret and snode.jm_vuid > 0:
|
3174
|
-
rpc_client.
|
3181
|
+
rpc_client.bdev_lvol_set_lvs_ops(snode.lvstore, snode.jm_vuid, snode.lvol_subsys_port)
|
3175
3182
|
|
3176
3183
|
elif type == "bdev_ptnonexcl":
|
3177
3184
|
ret = rpc_client.bdev_PT_NoExcl_create(**params)
|
@@ -483,3 +483,21 @@ def bind_device_to_spdk():
|
|
483
483
|
time.sleep(1)
|
484
484
|
|
485
485
|
return utils.get_response(True)
|
486
|
+
|
487
|
+
|
488
|
+
@bp.route('/firewall_set_port', methods=['POST'])
|
489
|
+
def firewall_set_port():
|
490
|
+
data = request.get_json()
|
491
|
+
if "port_id" not in data:
|
492
|
+
return utils.get_response(False, "Required parameter is missing: port_id")
|
493
|
+
if "port_type" not in data:
|
494
|
+
return utils.get_response(False, "Required parameter is missing: port_type")
|
495
|
+
if "action" not in data:
|
496
|
+
return utils.get_response(False, "Required parameter is missing: action")
|
497
|
+
|
498
|
+
port_id = data['port_id']
|
499
|
+
port_type = data['port_type']
|
500
|
+
action = data['action']
|
501
|
+
|
502
|
+
ret = node_utils.firewall_port(port_id, port_type, block=action=="block")
|
503
|
+
return utils.get_response(ret)
|
@@ -170,3 +170,42 @@ def get_memory_details():
|
|
170
170
|
def get_host_arch():
|
171
171
|
out, err, rc = run_command("uname -m")
|
172
172
|
return out
|
173
|
+
|
174
|
+
|
175
|
+
def firewall_port(port_id=9090, port_type="tcp", block=True):
|
176
|
+
|
177
|
+
if block:
|
178
|
+
cmd_list=[
|
179
|
+
|
180
|
+
f"iptables -D INPUT -p {port_type} --dport {port_id} -j ACCEPT",
|
181
|
+
f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j ACCEPT",
|
182
|
+
|
183
|
+
f"iptables -A INPUT -p {port_type} --dport {port_id} -j DROP",
|
184
|
+
f"iptables -A INPUT -p {port_type} --dport {port_id} -j REJECT",
|
185
|
+
f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j DROP",
|
186
|
+
f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j REJECT",
|
187
|
+
"iptables -L -n",
|
188
|
+
]
|
189
|
+
else:
|
190
|
+
cmd_list=[
|
191
|
+
|
192
|
+
f"iptables -D INPUT -p {port_type} --dport {port_id} -j DROP",
|
193
|
+
f"iptables -D INPUT -p {port_type} --dport {port_id} -j REJECT",
|
194
|
+
f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j DROP",
|
195
|
+
f"iptables -D OUTPUT -p {port_type} --dport {port_id} -j REJECT",
|
196
|
+
|
197
|
+
f"iptables -A INPUT -p {port_type} --dport {port_id} -j ACCEPT",
|
198
|
+
f"iptables -A OUTPUT -p {port_type} --dport {port_id} -j ACCEPT",
|
199
|
+
"iptables -L -n",
|
200
|
+
|
201
|
+
]
|
202
|
+
|
203
|
+
out = ""
|
204
|
+
for cmd in cmd_list:
|
205
|
+
stream = os.popen(cmd)
|
206
|
+
ret = stream.read()
|
207
|
+
if ret != "":
|
208
|
+
out += ret + "\n"
|
209
|
+
logger.info(ret)
|
210
|
+
|
211
|
+
return out
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/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
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
File without changes
|
File without changes
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/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_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/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_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/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
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/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_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/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_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
File without changes
|
File without changes
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/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
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/blueprints/node_api_caching_docker.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
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2
RENAMED
File without changes
|
{sbcli_hmdi-0.0.11 → sbcli_hmdi-0.0.13}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2
RENAMED
File without changes
|
File without changes
|