sbcli-dev 10.9.3__tar.gz → 10.9.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-10.9.3 → sbcli_dev-10.9.4}/PKG-INFO +1 -1
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_cli/cli.py +3 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/constants.py +1 -1
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/env_var +1 -1
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/storage_node.py +1 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/tasks_runner_migration.py +25 -24
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/storage_node_ops.py +7 -6
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/README.md +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/pyproject.toml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/requirements.txt +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/setup.cfg +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/setup.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_cli/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/db_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/deploy_fdb.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/foundation.yml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/prepare_fdb.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/utils.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/workers/cleanup_foundationdb.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/README.md +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/app.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/requirements.txt +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_web/utils.py +0 -0
|
@@ -57,6 +57,7 @@ class CLIWrapper:
|
|
|
57
57
|
sub_command.add_argument("--iobuf_large_bufsize", help='bdev_set_options param', dest='large_bufsize', type=int, default=0)
|
|
58
58
|
sub_command.add_argument("--enable-test-device", help='Enable creation of test device', action='store_true')
|
|
59
59
|
sub_command.add_argument("--disable-ha-jm", help='Disable HA JM for distrib creation', action='store_false', dest='enable_ha_jm', default=True)
|
|
60
|
+
sub_command.add_argument("--ha-jm-count", help='HA JM count', dest='ha_jm_count', type=int, default=constants.HA_JM_COUNT)
|
|
60
61
|
sub_command.add_argument("--is-secondary-node", help='add as secondary node', action='store_true', dest='is_secondary_node', default=False)
|
|
61
62
|
sub_command.add_argument("--namespace", help='k8s namespace to deploy on',)
|
|
62
63
|
sub_command.add_argument("--id-device-by-nqn", help='Use device nqn to identify it instead of serial number', action='store_true', dest='id_device_by_nqn', default=False)
|
|
@@ -781,6 +782,7 @@ class CLIWrapper:
|
|
|
781
782
|
enable_ha_jm = args.enable_ha_jm
|
|
782
783
|
number_of_distribs = args.number_of_distribs
|
|
783
784
|
namespace = args.namespace
|
|
785
|
+
ha_jm_count = args.ha_jm_count
|
|
784
786
|
|
|
785
787
|
out = storage_ops.add_node(
|
|
786
788
|
cluster_id=cluster_id,
|
|
@@ -805,6 +807,7 @@ class CLIWrapper:
|
|
|
805
807
|
is_secondary_node=args.is_secondary_node,
|
|
806
808
|
id_device_by_nqn=args.id_device_by_nqn,
|
|
807
809
|
partition_size=args.partition_size,
|
|
810
|
+
ha_jm_count=ha_jm_count,
|
|
808
811
|
)
|
|
809
812
|
|
|
810
813
|
return out
|
|
@@ -29,24 +29,6 @@ def task_runner(task):
|
|
|
29
29
|
task.write_to_db(db_controller.kv_store)
|
|
30
30
|
return True
|
|
31
31
|
|
|
32
|
-
if task.status in [JobSchedule.STATUS_NEW, JobSchedule.STATUS_SUSPENDED]:
|
|
33
|
-
if task.status == JobSchedule.STATUS_NEW:
|
|
34
|
-
for node in db_controller.get_storage_nodes_by_cluster_id(task.cluster_id):
|
|
35
|
-
if node.online_since:
|
|
36
|
-
try:
|
|
37
|
-
diff = datetime.now() - datetime.fromisoformat(node.online_since)
|
|
38
|
-
if diff.total_seconds() < 60:
|
|
39
|
-
task.function_result = "node is online < 1 min, retrying"
|
|
40
|
-
task.status = JobSchedule.STATUS_SUSPENDED
|
|
41
|
-
task.retry += 1
|
|
42
|
-
task.write_to_db(db_controller.kv_store)
|
|
43
|
-
return False
|
|
44
|
-
except Exception as e:
|
|
45
|
-
logger.error(f"Failed to get online since: {e}")
|
|
46
|
-
|
|
47
|
-
task.status = JobSchedule.STATUS_RUNNING
|
|
48
|
-
task.write_to_db(db_controller.kv_store)
|
|
49
|
-
|
|
50
32
|
if snode.status != StorageNode.STATUS_ONLINE:
|
|
51
33
|
task.function_result = "node is not online, retrying"
|
|
52
34
|
task.status = JobSchedule.STATUS_SUSPENDED
|
|
@@ -54,9 +36,8 @@ def task_runner(task):
|
|
|
54
36
|
task.write_to_db(db_controller.kv_store)
|
|
55
37
|
return False
|
|
56
38
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if "migration" not in task.function_params:
|
|
39
|
+
|
|
40
|
+
if task.status in [JobSchedule.STATUS_NEW, JobSchedule.STATUS_SUSPENDED]:
|
|
60
41
|
all_devs_online = True
|
|
61
42
|
for node in db_controller.get_storage_nodes_by_cluster_id(task.cluster_id):
|
|
62
43
|
for dev in node.nvme_devices:
|
|
@@ -73,6 +54,27 @@ def task_runner(task):
|
|
|
73
54
|
task.write_to_db(db_controller.kv_store)
|
|
74
55
|
return False
|
|
75
56
|
|
|
57
|
+
if node.online_since:
|
|
58
|
+
try:
|
|
59
|
+
diff = datetime.now() - datetime.fromisoformat(node.online_since)
|
|
60
|
+
if diff.total_seconds() < 60:
|
|
61
|
+
task.function_result = "node is online < 1 min, retrying"
|
|
62
|
+
task.status = JobSchedule.STATUS_SUSPENDED
|
|
63
|
+
task.retry += 1
|
|
64
|
+
task.write_to_db(db_controller.kv_store)
|
|
65
|
+
return False
|
|
66
|
+
except Exception as e:
|
|
67
|
+
logger.error(f"Failed to get online since: {e}")
|
|
68
|
+
|
|
69
|
+
task.status = JobSchedule.STATUS_RUNNING
|
|
70
|
+
task.function_result = ""
|
|
71
|
+
task.write_to_db(db_controller.kv_store)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password,
|
|
75
|
+
timeout=5, retry=2)
|
|
76
|
+
if "migration" not in task.function_params:
|
|
77
|
+
|
|
76
78
|
device = db_controller.get_storage_device_by_id(task.device_id)
|
|
77
79
|
distr_name = task.function_params["distr_name"]
|
|
78
80
|
|
|
@@ -95,7 +97,7 @@ def task_runner(task):
|
|
|
95
97
|
task.function_params['migration'] = {
|
|
96
98
|
"name": distr_name}
|
|
97
99
|
task.write_to_db(db_controller.kv_store)
|
|
98
|
-
time.sleep(
|
|
100
|
+
time.sleep(1)
|
|
99
101
|
|
|
100
102
|
if "migration" in task.function_params:
|
|
101
103
|
mig_info = task.function_params["migration"]
|
|
@@ -112,7 +114,6 @@ db_controller = db_controller.DBController()
|
|
|
112
114
|
|
|
113
115
|
logger.info("Starting Tasks runner...")
|
|
114
116
|
while True:
|
|
115
|
-
time.sleep(3)
|
|
116
117
|
clusters = db_controller.get_clusters()
|
|
117
118
|
if not clusters:
|
|
118
119
|
logger.error("No clusters found!")
|
|
@@ -135,4 +136,4 @@ while True:
|
|
|
135
136
|
tasks_events.task_updated(task)
|
|
136
137
|
continue
|
|
137
138
|
|
|
138
|
-
|
|
139
|
+
time.sleep(3)
|
|
@@ -936,7 +936,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
|
936
936
|
small_bufsize=0, large_bufsize=0, spdk_cpu_mask=None,
|
|
937
937
|
num_partitions_per_dev=0, jm_percent=0, number_of_devices=0, enable_test_device=False,
|
|
938
938
|
namespace=None, number_of_distribs=2, enable_ha_jm=False, is_secondary_node=False, id_device_by_nqn=False,
|
|
939
|
-
partition_size=""):
|
|
939
|
+
partition_size="", ha_jm_count=3):
|
|
940
940
|
|
|
941
941
|
db_controller = DBController()
|
|
942
942
|
kv_store = db_controller.kv_store
|
|
@@ -1175,6 +1175,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
|
1175
1175
|
snode.number_of_distribs = number_of_distribs
|
|
1176
1176
|
snode.enable_ha_jm = enable_ha_jm
|
|
1177
1177
|
snode.is_secondary_node = is_secondary_node
|
|
1178
|
+
snode.ha_jm_count = ha_jm_count
|
|
1178
1179
|
|
|
1179
1180
|
if 'cpu_count' in node_info:
|
|
1180
1181
|
snode.cpu = node_info['cpu_count']
|
|
@@ -2785,7 +2786,7 @@ def recreate_lvstore_on_sec(snode):
|
|
|
2785
2786
|
remote_rpc_client.bdev_distrib_force_to_non_leader(node.jm_vuid)
|
|
2786
2787
|
|
|
2787
2788
|
ret, err = _create_bdev_stack(snode, node.lvstore_stack, primary_node=node)
|
|
2788
|
-
|
|
2789
|
+
ret = rpc_client.bdev_examine(node.raid)
|
|
2789
2790
|
ret = rpc_client.bdev_wait_for_examine()
|
|
2790
2791
|
ret = rpc_client.bdev_lvol_set_lvs_groupid(node.lvstore, node.jm_vuid)
|
|
2791
2792
|
|
|
@@ -2866,7 +2867,7 @@ def recreate_lvstore(snode):
|
|
|
2866
2867
|
for did in devs:
|
|
2867
2868
|
dev = db_controller.get_jm_device_by_id(did)
|
|
2868
2869
|
online_devs.append(dev)
|
|
2869
|
-
if len(online_devs) >
|
|
2870
|
+
if len(online_devs) > snode.ha_jm_count - 1:
|
|
2870
2871
|
break
|
|
2871
2872
|
|
|
2872
2873
|
snode.remote_jm_devices = online_devs
|
|
@@ -2957,7 +2958,7 @@ def get_node_jm_names(current_node):
|
|
|
2957
2958
|
jm_list.append("JM_LOCAL")
|
|
2958
2959
|
|
|
2959
2960
|
if current_node.enable_ha_jm:
|
|
2960
|
-
for jm_dev in current_node.remote_jm_devices[:
|
|
2961
|
+
for jm_dev in current_node.remote_jm_devices[:current_node.ha_jm_count-1]:
|
|
2961
2962
|
jm_list.append(jm_dev.remote_bdev)
|
|
2962
2963
|
return jm_list
|
|
2963
2964
|
|
|
@@ -3079,7 +3080,7 @@ def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blo
|
|
|
3079
3080
|
sec_node_1.mgmt_ip, sec_node_1.rpc_port,
|
|
3080
3081
|
sec_node_1.rpc_username, sec_node_1.rpc_password)
|
|
3081
3082
|
|
|
3082
|
-
|
|
3083
|
+
ret = temp_rpc_client.bdev_examine(snode.raid)
|
|
3083
3084
|
ret = temp_rpc_client.bdev_wait_for_examine()
|
|
3084
3085
|
ret = temp_rpc_client.bdev_lvol_set_lvs_groupid(snode.lvstore, snode.jm_vuid)
|
|
3085
3086
|
|
|
@@ -3120,7 +3121,7 @@ def _create_bdev_stack(snode, lvstore_stack=None, primary_node=None):
|
|
|
3120
3121
|
jm_list.append(bdev_name)
|
|
3121
3122
|
else:
|
|
3122
3123
|
jm_list.append("JM_LOCAL")
|
|
3123
|
-
for jm_dev in primary_node.remote_jm_devices[:
|
|
3124
|
+
for jm_dev in primary_node.remote_jm_devices[:primary_node.ha_jm_count-1]:
|
|
3124
3125
|
jm_list.append(jm_dev.remote_bdev)
|
|
3125
3126
|
params['jm_names'] = jm_list
|
|
3126
3127
|
else:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/controllers/caching_node_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/clean_local_storage_deploy.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/dashboards/node-exporter.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/main_distr_event_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
{sbcli_dev-10.9.3 → sbcli_dev-10.9.4}/simplyblock_core/services/tasks_runner_new_dev_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|