sbcli-pre 1.3.5__zip → 1.3.7__zip
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_pre-1.3.5 → sbcli_pre-1.3.7}/PKG-INFO +1 -1
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/env_var +2 -1
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/PKG-INFO +1 -1
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/SOURCES.txt +2 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/cluster_ops.py +0 -26
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/device_controller.py +17 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/health_controller.py +1 -1
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/tasks_controller.py +21 -12
- sbcli_pre-1.3.7/simplyblock_core/scripts/dashboard.yml +12 -0
- sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/cluster.json +2355 -0
- sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/devices.json +2436 -0
- sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/lvols.json +2441 -0
- sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/node-exporter.json +23743 -0
- sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/nodes.json +2434 -0
- sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/pools.json +2399 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/datasource.yml +3 -2
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/deploy_stack.sh +0 -7
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +79 -8
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/install_deps.sh +0 -2
- sbcli_pre-1.3.7/simplyblock_core/scripts/objstore.yml +3 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/distr_event_collector.py +2 -2
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/health_check_service.py +1 -1
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/tasks_runner_restart.py +14 -1
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/storage_node_ops.py +29 -11
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/snode_ops.py +2 -2
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_deployer.py +3 -3
- sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/cluster.json +0 -2357
- sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/devices.json +0 -2438
- sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/lvols.json +0 -2443
- sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/node-exporter.json +0 -23745
- sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/nodes.json +0 -2436
- sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/pools.json +0 -2401
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/README.md +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/pyproject.toml +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/dependency_links.txt +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/entry_points.txt +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/requires.txt +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/top_level.txt +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/setup.cfg +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/setup.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_cli/cli.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_cli/main.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/__init__.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/constants.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/kv_store.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/events.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/iface.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/pool.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/stats.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/snode_client.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/utils.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/__init__.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/app.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/node_utils.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/snode_app.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/delete.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/tst.py +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
- {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/utils.py +0 -0
@@ -62,6 +62,7 @@ simplyblock_core/models/storage_node.py
|
|
62
62
|
simplyblock_core/scripts/__init__.py
|
63
63
|
simplyblock_core/scripts/clean_local_storage_deploy.sh
|
64
64
|
simplyblock_core/scripts/config_docker.sh
|
65
|
+
simplyblock_core/scripts/dashboard.yml
|
65
66
|
simplyblock_core/scripts/datasource.yml
|
66
67
|
simplyblock_core/scripts/db_config_double.sh
|
67
68
|
simplyblock_core/scripts/db_config_single.sh
|
@@ -70,6 +71,7 @@ simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
|
|
70
71
|
simplyblock_core/scripts/docker-compose-swarm.yml
|
71
72
|
simplyblock_core/scripts/haproxy.cfg
|
72
73
|
simplyblock_core/scripts/install_deps.sh
|
74
|
+
simplyblock_core/scripts/objstore.yml
|
73
75
|
simplyblock_core/scripts/prometheus.yml
|
74
76
|
simplyblock_core/scripts/run_ssh.sh
|
75
77
|
simplyblock_core/scripts/set_db_config.sh
|
@@ -23,28 +23,6 @@ from simplyblock_core.models.storage_node import StorageNode
|
|
23
23
|
logger = logging.getLogger()
|
24
24
|
TOP_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
25
25
|
|
26
|
-
def _add_grafana_dashboards(username, password, cluster_ip):
|
27
|
-
url = f"http://{username}:{password}@{cluster_ip}/grafana/api/dashboards/import"
|
28
|
-
headers = {'Content-Type': 'application/json'}
|
29
|
-
dirpath, _, filenames = next(os.walk(os.path.join(constants.INSTALL_DIR, "scripts", "dashboards")))
|
30
|
-
ret = True
|
31
|
-
for filename in filenames:
|
32
|
-
with open(os.path.join(dirpath, filename), 'r') as f:
|
33
|
-
st = f.read()
|
34
|
-
# st = st.replace("$Cluster", cluster_id)
|
35
|
-
st = json.loads(st)
|
36
|
-
payload = json.dumps(st)
|
37
|
-
response = requests.post(url, headers=headers, data=payload)
|
38
|
-
logger.debug(response.status_code)
|
39
|
-
logger.debug(response.text)
|
40
|
-
if response.status_code == 200:
|
41
|
-
resp = response.json()
|
42
|
-
logger.info(f"Dashboard: {resp['title']}, imported: {resp['imported']}")
|
43
|
-
else:
|
44
|
-
logger.error(f"Error importing dashboard, status code:{response.status_code} text:{response.text}")
|
45
|
-
ret = False
|
46
|
-
return ret
|
47
|
-
|
48
26
|
|
49
27
|
def _add_graylog_input(cluster_ip, password):
|
50
28
|
url = f"http://{cluster_ip}/graylog/api/system/inputs"
|
@@ -187,10 +165,6 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
|
|
187
165
|
|
188
166
|
mgmt_node_ops.add_mgmt_node(DEV_IP, c.uuid)
|
189
167
|
|
190
|
-
logger.info("Applying dashboard...")
|
191
|
-
ret = _add_grafana_dashboards("admin", c.secret, DEV_IP)
|
192
|
-
logger.info(f"Applying dashboard > {ret}")
|
193
|
-
|
194
168
|
logger.info("New Cluster has been created")
|
195
169
|
logger.info(c.uuid)
|
196
170
|
return c.uuid
|
@@ -194,6 +194,12 @@ def restart_device(device_id, force=False):
|
|
194
194
|
device_obj = dev
|
195
195
|
break
|
196
196
|
|
197
|
+
task_id = tasks_controller.get_active_dev_restart_task(snode.cluster_id, device_id)
|
198
|
+
if task_id:
|
199
|
+
logger.error(f"Restart task found: {task_id}, can not restart device")
|
200
|
+
if force is False:
|
201
|
+
return False
|
202
|
+
|
197
203
|
logger.info(f"Restarting device {device_id}")
|
198
204
|
device_set_unavailable(device_id)
|
199
205
|
|
@@ -280,6 +286,12 @@ def device_remove(device_id, force=True):
|
|
280
286
|
device = dev
|
281
287
|
break
|
282
288
|
|
289
|
+
task_id = tasks_controller.get_active_dev_restart_task(snode.cluster_id, device_id)
|
290
|
+
if task_id:
|
291
|
+
logger.error(f"Restart task found: {task_id}, can not remove device")
|
292
|
+
if force is False:
|
293
|
+
return False
|
294
|
+
|
283
295
|
logger.info("Sending device event")
|
284
296
|
distr_controller.send_dev_status_event(device, NVMeDevice.STATUS_REMOVED)
|
285
297
|
|
@@ -418,6 +430,11 @@ def reset_storage_device(dev_id):
|
|
418
430
|
logger.error(f"Device status: {device.status} is removed")
|
419
431
|
return False
|
420
432
|
|
433
|
+
task_id = tasks_controller.get_active_dev_restart_task(snode.cluster_id, dev_id)
|
434
|
+
if task_id:
|
435
|
+
logger.error(f"Restart task found: {task_id}, can not reset device")
|
436
|
+
return False
|
437
|
+
|
421
438
|
logger.info("Setting devices to unavailable")
|
422
439
|
device_set_unavailable(dev_id)
|
423
440
|
devs = []
|
@@ -164,7 +164,7 @@ def check_node(node_id, with_devices=True):
|
|
164
164
|
logger.info(f"Checking bdev: {remote_device.remote_bdev} ... ok")
|
165
165
|
else:
|
166
166
|
logger.info(f"Checking bdev: {remote_device.remote_bdev} ... not found")
|
167
|
-
node_remote_devices_check &= bool(ret)
|
167
|
+
# node_remote_devices_check &= bool(ret)
|
168
168
|
|
169
169
|
return is_node_online and node_devices_check and node_remote_devices_check
|
170
170
|
|
@@ -10,17 +10,6 @@ from simplyblock_core.models.job_schedule import JobSchedule
|
|
10
10
|
logger = logging.getLogger()
|
11
11
|
db_controller = kv_store.DBController()
|
12
12
|
|
13
|
-
|
14
|
-
def _validate_new_task_node_restart(cluster_id, node_id):
|
15
|
-
tasks = db_controller.get_job_tasks(cluster_id)
|
16
|
-
for task in tasks:
|
17
|
-
if task.function_name == JobSchedule.FN_NODE_RESTART and task.node_id == node_id:
|
18
|
-
if task.status != JobSchedule.STATUS_DONE:
|
19
|
-
logger.info(f"Task found, skip adding new task: {task.get_id()}")
|
20
|
-
return False
|
21
|
-
return True
|
22
|
-
|
23
|
-
|
24
13
|
def _validate_new_task_dev_restart(cluster_id, node_id, device_id):
|
25
14
|
tasks = db_controller.get_job_tasks(cluster_id)
|
26
15
|
for task in tasks:
|
@@ -41,7 +30,9 @@ def _add_task(function_name, cluster_id, node_id, device_id):
|
|
41
30
|
if not _validate_new_task_dev_restart(cluster_id, node_id, device_id):
|
42
31
|
return False
|
43
32
|
elif function_name == JobSchedule.FN_NODE_RESTART:
|
44
|
-
|
33
|
+
task_id = get_active_node_restart_task(cluster_id, node_id)
|
34
|
+
if task_id:
|
35
|
+
logger.info(f"Task found, skip adding new task: {task_id}")
|
45
36
|
return False
|
46
37
|
|
47
38
|
task_obj = JobSchedule()
|
@@ -101,3 +92,21 @@ def cancel_task(task_id):
|
|
101
92
|
task.write_to_db(db_controller.kv_store)
|
102
93
|
tasks_events.task_canceled(task)
|
103
94
|
return True
|
95
|
+
|
96
|
+
|
97
|
+
def get_active_node_restart_task(cluster_id, node_id):
|
98
|
+
tasks = db_controller.get_job_tasks(cluster_id)
|
99
|
+
for task in tasks:
|
100
|
+
if task.function_name == JobSchedule.FN_NODE_RESTART and task.node_id == node_id:
|
101
|
+
if task.status != JobSchedule.STATUS_DONE and task.canceled is False:
|
102
|
+
return task.uuid
|
103
|
+
return False
|
104
|
+
|
105
|
+
|
106
|
+
def get_active_dev_restart_task(cluster_id, device_id):
|
107
|
+
tasks = db_controller.get_job_tasks(cluster_id)
|
108
|
+
for task in tasks:
|
109
|
+
if task.function_name == JobSchedule.FN_DEV_RESTART and task.device_id == device_id:
|
110
|
+
if task.status != JobSchedule.STATUS_DONE and task.canceled is False:
|
111
|
+
return task.uuid
|
112
|
+
return False
|