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.
Files changed (146) hide show
  1. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/PKG-INFO +1 -1
  2. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/env_var +2 -1
  3. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/PKG-INFO +1 -1
  4. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/SOURCES.txt +2 -0
  5. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/cluster_ops.py +0 -26
  6. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/device_controller.py +17 -0
  7. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/health_controller.py +1 -1
  8. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/tasks_controller.py +21 -12
  9. sbcli_pre-1.3.7/simplyblock_core/scripts/dashboard.yml +12 -0
  10. sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/cluster.json +2355 -0
  11. sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/devices.json +2436 -0
  12. sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/lvols.json +2441 -0
  13. sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/node-exporter.json +23743 -0
  14. sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/nodes.json +2434 -0
  15. sbcli_pre-1.3.7/simplyblock_core/scripts/dashboards/pools.json +2399 -0
  16. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/datasource.yml +3 -2
  17. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/deploy_stack.sh +0 -7
  18. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +79 -8
  19. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/install_deps.sh +0 -2
  20. sbcli_pre-1.3.7/simplyblock_core/scripts/objstore.yml +3 -0
  21. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/distr_event_collector.py +2 -2
  22. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/health_check_service.py +1 -1
  23. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/tasks_runner_restart.py +14 -1
  24. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/storage_node_ops.py +29 -11
  25. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/snode_ops.py +2 -2
  26. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_deployer.py +3 -3
  27. sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/cluster.json +0 -2357
  28. sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/devices.json +0 -2438
  29. sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/lvols.json +0 -2443
  30. sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/node-exporter.json +0 -23745
  31. sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/nodes.json +0 -2436
  32. sbcli_pre-1.3.5/simplyblock_core/scripts/dashboards/pools.json +0 -2401
  33. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/README.md +0 -0
  34. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/pyproject.toml +0 -0
  35. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/dependency_links.txt +0 -0
  36. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/entry_points.txt +0 -0
  37. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/requires.txt +0 -0
  38. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/sbcli_pre.egg-info/top_level.txt +0 -0
  39. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/setup.cfg +0 -0
  40. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/setup.py +0 -0
  41. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_cli/cli.py +0 -0
  42. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_cli/main.py +0 -0
  43. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/__init__.py +0 -0
  44. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/cnode_client.py +0 -0
  45. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/compute_node_ops.py +0 -0
  46. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/constants.py +0 -0
  47. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/__init__.py +0 -0
  48. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  49. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/cluster_events.py +0 -0
  50. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/device_events.py +0 -0
  51. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/events_controller.py +0 -0
  52. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/lvol_controller.py +0 -0
  53. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/lvol_events.py +0 -0
  54. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/mgmt_events.py +0 -0
  55. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/pool_controller.py +0 -0
  56. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/pool_events.py +0 -0
  57. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  58. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/snapshot_events.py +0 -0
  59. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/storage_events.py +0 -0
  60. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/controllers/tasks_events.py +0 -0
  61. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/distr_controller.py +0 -0
  62. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/kv_store.py +0 -0
  63. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/mgmt_node_ops.py +0 -0
  64. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/__init__.py +0 -0
  65. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/base_model.py +0 -0
  66. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/caching_node.py +0 -0
  67. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/cluster.py +0 -0
  68. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/compute_node.py +0 -0
  69. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/deployer.py +0 -0
  70. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/events.py +0 -0
  71. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/global_settings.py +0 -0
  72. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/iface.py +0 -0
  73. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/job_schedule.py +0 -0
  74. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/lvol_model.py +0 -0
  75. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/mgmt_node.py +0 -0
  76. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/nvme_device.py +0 -0
  77. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/pool.py +0 -0
  78. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/port_stat.py +0 -0
  79. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/snapshot.py +0 -0
  80. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/stats.py +0 -0
  81. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/models/storage_node.py +0 -0
  82. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/pci_utils.py +0 -0
  83. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/rpc_client.py +0 -0
  84. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/__init__.py +0 -0
  85. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  86. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  87. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  88. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/config_docker.sh +0 -0
  89. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/db_config_double.sh +0 -0
  90. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/db_config_single.sh +0 -0
  91. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  92. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/haproxy.cfg +0 -0
  93. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/prometheus.yml +0 -0
  94. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/run_ssh.sh +0 -0
  95. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/set_db_config.sh +0 -0
  96. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  97. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/__init__.py +0 -0
  98. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/caching_node_monitor.py +0 -0
  99. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/cap_monitor.py +0 -0
  100. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  101. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/device_monitor.py +0 -0
  102. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/install_service.sh +0 -0
  103. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/log_agg_service.py +0 -0
  104. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/lvol_monitor.py +0 -0
  105. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  106. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  107. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/port_stat_collector.py +0 -0
  108. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/remove_service.sh +0 -0
  109. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/service_template.service +0 -0
  110. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/storage_node_monitor.py +0 -0
  111. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  112. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/snode_client.py +0 -0
  114. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_core/utils.py +0 -0
  115. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/__init__.py +0 -0
  116. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/app.py +0 -0
  117. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/auth_middleware.py +0 -0
  118. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/__init__.py +0 -0
  119. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  120. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  121. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  122. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  123. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  124. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_device.py +0 -0
  127. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  128. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  129. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  130. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  131. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  132. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/caching_node_app.py +0 -0
  133. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/caching_node_app_k8s.py +0 -0
  134. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/node_utils.py +0 -0
  135. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/node_webapp.py +0 -0
  136. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/snode_app.py +0 -0
  137. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/delete.py +0 -0
  138. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/deploy.py +0 -0
  139. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  140. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  141. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/is_up.py +0 -0
  142. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/list_deps.py +0 -0
  143. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/rpac.yaml +0 -0
  144. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/static/tst.py +0 -0
  145. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
  146. {sbcli_pre-1.3.5 → sbcli_pre-1.3.7}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.3.5
3
+ Version: 1.3.7
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,5 +1,6 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-pre
2
- SIMPLY_BLOCK_VERSION=1.3.5
2
+ SIMPLY_BLOCK_VERSION=1.3.7
3
+
3
4
 
4
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:pre-release
5
6
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.3.5
3
+ Version: 1.3.7
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -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
- if not _validate_new_task_node_restart(cluster_id, node_id):
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
@@ -0,0 +1,12 @@
1
+ apiVersion: 1
2
+
3
+ providers:
4
+ - name: "Dashboard provider"
5
+ orgId: 1
6
+ type: file
7
+ disableDeletion: false
8
+ updateIntervalSeconds: 10
9
+ allowUiUpdates: false
10
+ options:
11
+ path: /var/lib/grafana/dashboards
12
+ foldersFromFilesStructure: true