sbcli-dev 3.8.40__zip → 3.8.42__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 (149) hide show
  1. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/PKG-INFO +1 -1
  2. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/env_var +1 -1
  3. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/tasks_controller.py +17 -19
  5. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/distr_controller.py +5 -2
  6. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/rpc_client.py +2 -1
  7. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/main_distr_event_collector.py +48 -47
  8. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/README.md +0 -0
  9. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/pyproject.toml +0 -0
  10. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  11. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  12. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/sbcli_dev.egg-info/entry_points.txt +0 -0
  13. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/sbcli_dev.egg-info/requires.txt +0 -0
  14. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/sbcli_dev.egg-info/top_level.txt +0 -0
  15. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/setup.cfg +0 -0
  16. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/setup.py +0 -0
  17. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_cli/cli.py +0 -0
  18. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_cli/main.py +0 -0
  19. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/__init__.py +0 -0
  20. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/cluster_ops.py +0 -0
  21. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/cnode_client.py +0 -0
  22. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/compute_node_ops.py +0 -0
  23. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/constants.py +0 -0
  24. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  26. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/cluster_events.py +0 -0
  27. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/device_controller.py +0 -0
  28. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/device_events.py +0 -0
  29. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/events_controller.py +0 -0
  30. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/health_controller.py +0 -0
  31. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/lvol_controller.py +0 -0
  32. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/lvol_events.py +0 -0
  33. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/mgmt_events.py +0 -0
  34. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/pool_controller.py +0 -0
  35. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/pool_events.py +0 -0
  36. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  37. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/snapshot_events.py +0 -0
  38. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/storage_events.py +0 -0
  39. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/controllers/tasks_events.py +0 -0
  40. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/kv_store.py +0 -0
  41. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/mgmt_node_ops.py +0 -0
  42. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/__init__.py +0 -0
  43. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/base_model.py +0 -0
  44. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/caching_node.py +0 -0
  45. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/cluster.py +0 -0
  46. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/compute_node.py +0 -0
  47. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/deployer.py +0 -0
  48. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/events.py +0 -0
  49. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/global_settings.py +0 -0
  50. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/iface.py +0 -0
  51. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/job_schedule.py +0 -0
  52. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/lvol_model.py +0 -0
  53. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/mgmt_node.py +0 -0
  54. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/nvme_device.py +0 -0
  55. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/pool.py +0 -0
  56. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/port_stat.py +0 -0
  57. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/snapshot.py +0 -0
  58. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/stats.py +0 -0
  59. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/models/storage_node.py +0 -0
  60. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/pci_utils.py +0 -0
  61. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/__init__.py +0 -0
  62. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  63. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  64. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  65. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/config_docker.sh +0 -0
  66. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/dashboard.yml +0 -0
  67. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  68. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  69. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  70. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  71. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  72. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  73. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/datasource.yml +0 -0
  74. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/db_config_double.sh +0 -0
  75. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/db_config_single.sh +0 -0
  76. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  77. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  78. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  79. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/haproxy.cfg +0 -0
  80. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/install_deps.sh +0 -0
  81. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/objstore.yml +0 -0
  82. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/prometheus.yml +0 -0
  83. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/run_ssh.sh +0 -0
  84. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/set_db_config.sh +0 -0
  85. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  86. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/__init__.py +0 -0
  87. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  88. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/caching_node_monitor.py +0 -0
  89. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/cap_monitor.py +0 -0
  90. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  91. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/device_monitor.py +0 -0
  92. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/distr_event_collector.py +0 -0
  93. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/health_check_service.py +0 -0
  94. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/install_service.sh +0 -0
  95. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/log_agg_service.py +0 -0
  96. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/lvol_monitor.py +0 -0
  97. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  98. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  99. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/new_device_discovery.py +0 -0
  100. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/port_stat_collector.py +0 -0
  101. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/remove_service.sh +0 -0
  102. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/service_template.service +0 -0
  103. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/storage_node_monitor.py +0 -0
  104. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  105. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  106. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  107. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  108. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  109. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/shell_utils.py +0 -0
  110. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/snode_client.py +0 -0
  111. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/storage_node_ops.py +0 -0
  112. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_core/utils.py +0 -0
  113. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/__init__.py +0 -0
  114. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/app.py +0 -0
  115. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/auth_middleware.py +0 -0
  116. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/__init__.py +0 -0
  117. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  118. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  119. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  120. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  121. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  122. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/snode_ops.py +0 -0
  123. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
  124. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  125. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  126. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  127. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_device.py +0 -0
  128. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  129. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  130. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  131. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  132. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  133. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-3.8.40 → sbcli_dev-3.8.42}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.8.40
3
+ Version: 3.8.42
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev
2
- SIMPLY_BLOCK_VERSION=3.8.40
2
+ SIMPLY_BLOCK_VERSION=3.8.42
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 3.8.40
3
+ Version: 3.8.42
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -54,22 +54,20 @@ def _add_task(function_name, cluster_id, node_id, device_id,
54
54
 
55
55
 
56
56
  def add_device_mig_task(device_id):
57
- # device = db_controller.get_storage_devices(device_id)
58
- # for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
59
- # for lvol_id in node.lvols:
60
- # _add_task(JobSchedule.FN_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
61
- # max_retry=0, function_params={'lvol_id': lvol_id})
57
+ device = db_controller.get_storage_devices(device_id)
58
+ for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
59
+ for lvol_id in node.lvols:
60
+ _add_task(JobSchedule.FN_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
61
+ max_retry=0, function_params={'lvol_id': lvol_id})
62
62
  return True
63
63
 
64
64
 
65
65
  def add_device_to_auto_restart(device):
66
- return True
67
- # return _add_task(JobSchedule.FN_DEV_RESTART, device.cluster_id, device.node_id, device.get_id())
66
+ return _add_task(JobSchedule.FN_DEV_RESTART, device.cluster_id, device.node_id, device.get_id())
68
67
 
69
68
 
70
69
  def add_node_to_auto_restart(node):
71
- return True
72
- # return _add_task(JobSchedule.FN_NODE_RESTART, node.cluster_id, node.get_id(), "")
70
+ return _add_task(JobSchedule.FN_NODE_RESTART, node.cluster_id, node.get_id(), "")
73
71
 
74
72
 
75
73
  def list_tasks(cluster_id):
@@ -137,20 +135,20 @@ def get_active_node_mig_task(cluster_id, node_id):
137
135
 
138
136
 
139
137
  def add_device_failed_mig_task(device_id):
140
- # device = db_controller.get_storage_devices(device_id)
141
- # for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
142
- # for lvol_id in node.lvols:
143
- # _add_task(JobSchedule.FN_FAILED_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
144
- # max_retry=0, function_params={'lvol_id': lvol_id})
138
+ device = db_controller.get_storage_devices(device_id)
139
+ for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
140
+ for lvol_id in node.lvols:
141
+ _add_task(JobSchedule.FN_FAILED_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
142
+ max_retry=0, function_params={'lvol_id': lvol_id})
145
143
  return True
146
144
 
147
145
 
148
146
  def add_new_device_mig_task(device_id):
149
- # device = db_controller.get_storage_devices(device_id)
150
- # for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
151
- # for lvol_id in node.lvols:
152
- # _add_task(JobSchedule.FN_NEW_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
153
- # max_retry=0, function_params={'lvol_id': lvol_id})
147
+ device = db_controller.get_storage_devices(device_id)
148
+ for node in db_controller.get_storage_nodes_by_cluster_id(device.cluster_id):
149
+ for lvol_id in node.lvols:
150
+ _add_task(JobSchedule.FN_NEW_DEV_MIG, device.cluster_id, node.get_id(), device.get_id(),
151
+ max_retry=0, function_params={'lvol_id': lvol_id})
154
152
  return True
155
153
 
156
154
 
@@ -74,7 +74,8 @@ def disconnect_device(device):
74
74
  def get_distr_cluster_map(snodes, target_node):
75
75
  map_cluster = {}
76
76
  map_prob = []
77
- for snode in snodes:
77
+ local_node_index = 0
78
+ for index, snode in enumerate(snodes):
78
79
  dev_map = {}
79
80
  dev_w_map = []
80
81
  node_w = 0
@@ -88,6 +89,7 @@ def get_distr_cluster_map(snodes, target_node):
88
89
  if snode.get_id() == target_node.get_id():
89
90
  name = dev.alceml_bdev
90
91
  dev_status = dev.status
92
+ local_node_index = index
91
93
  else:
92
94
  for dev2 in target_node.remote_devices:
93
95
  if dev2.get_id() == dev.get_id():
@@ -118,7 +120,8 @@ def get_distr_cluster_map(snodes, target_node):
118
120
  "UUID_node_target": "",
119
121
  "timestamp": datetime.datetime.now().isoformat("T", "seconds")+'Z',
120
122
  "map_cluster": map_cluster,
121
- "map_prob": map_prob
123
+ "map_prob": map_prob,
124
+ 'ppln1': local_node_index
122
125
  }
123
126
  return cl_map
124
127
 
@@ -385,10 +385,11 @@ class RPCClient:
385
385
  "block_size": block_size,
386
386
  "chunk_size": chunk_size,
387
387
  "pba_page_size": pba_page_size,
388
- "ha_is_non_leader": ha_is_non_leader,
389
388
  }
390
389
  if jm_vuid > 0:
391
390
  params["jm_vuid"] = jm_vuid
391
+ params["ha_is_non_leader"] = ha_is_non_leader
392
+
392
393
  if ha_comm_addrs:
393
394
  params['ha_comm_addrs'] = ha_comm_addrs
394
395
  params['ha_inode_self'] = ha_inode_self
@@ -3,7 +3,7 @@ import threading
3
3
  import time
4
4
 
5
5
 
6
- from simplyblock_core import constants, kv_store, utils, rpc_client
6
+ from simplyblock_core import constants, kv_store, utils, rpc_client, distr_controller
7
7
  from simplyblock_core.controllers import events_controller, device_controller, lvol_events
8
8
  from simplyblock_core.models.lvol_model import LVol
9
9
 
@@ -25,7 +25,6 @@ def process_device_event(event):
25
25
  storage_id = event.storage_id
26
26
 
27
27
  device = None
28
- device_node = None
29
28
  for node in db_controller.get_storage_nodes():
30
29
  for dev in node.nvme_devices:
31
30
  if dev.cluster_device_order == storage_id:
@@ -35,7 +34,6 @@ def process_device_event(event):
35
34
  return
36
35
 
37
36
  device = dev
38
- device_node = node
39
37
  break
40
38
 
41
39
  if not device:
@@ -44,60 +42,63 @@ def process_device_event(event):
44
42
  return
45
43
 
46
44
  device_id = device.get_id()
47
- if event.message == 'SPDK_BDEV_EVENT_REMOVE':
48
- if device.node_id == node_id:
49
- logger.info(f"Removing storage id: {storage_id} from node: {node_id}")
50
- device_controller.device_remove(device_id)
51
- else:
52
- logger.info(f"Removing remote storage id: {storage_id} from node: {node_id}")
53
- new_remote_devices = []
54
- rpc_client = RPCClient(device_node.mgmt_ip, device_node.rpc_port,
55
- device_node.rpc_username, device_node.rpc_password)
56
- for rem_dev in device_node.remote_devices:
57
- if rem_dev.get_id() == device.get_id():
58
- ctrl_name = rem_dev.remote_bdev[:-2]
59
- rpc_client.bdev_nvme_detach_controller(ctrl_name)
60
- else:
61
- new_remote_devices.append(rem_dev)
62
- device_node.remote_devices = new_remote_devices
63
- device_node.write_to_db(db_controller.kv_store)
64
-
65
- elif event.message in ['error_write', 'error_unmap']:
66
- logger.info(f"Setting device to read-only")
67
- device_controller.device_set_io_error(device_id, True)
68
- device_controller.device_set_read_only(device_id)
45
+ node = db_controller.get_storage_node_by_id(node_id)
46
+ if device.node_id != node_id:
47
+ logger.info(f"Removing remote storage id: {storage_id} from node: {node_id}")
48
+ new_remote_devices = []
49
+ rpc_client = RPCClient(node.mgmt_ip, node.rpc_port,
50
+ node.rpc_username, node.rpc_password)
51
+ for rem_dev in node.remote_devices:
52
+ if rem_dev.get_id() == device.get_id():
53
+ ctrl_name = rem_dev.remote_bdev[:-2]
54
+ rpc_client.bdev_nvme_detach_controller(ctrl_name)
55
+ else:
56
+ new_remote_devices.append(rem_dev)
57
+ node.remote_devices = new_remote_devices
58
+ node.write_to_db(db_controller.kv_store)
59
+ distr_controller.send_cluster_map_to_node(node)
60
+
69
61
  else:
70
- logger.info(f"Setting device to unavailable")
71
- device_controller.device_set_io_error(device_id, True)
72
- device_controller.device_set_unavailable(device_id)
62
+ if event.message == 'SPDK_BDEV_EVENT_REMOVE':
63
+ if device.node_id == node_id:
64
+ logger.info(f"Removing storage id: {storage_id} from node: {node_id}")
65
+ device_controller.device_remove(device_id)
66
+
67
+ elif event.message in ['error_write', 'error_unmap']:
68
+ logger.info(f"Setting device to read-only")
69
+ device_controller.device_set_io_error(device_id, True)
70
+ device_controller.device_set_read_only(device_id)
71
+ else:
72
+ logger.info(f"Setting device to unavailable")
73
+ device_controller.device_set_io_error(device_id, True)
74
+ device_controller.device_set_unavailable(device_id)
73
75
 
74
76
  event.status = 'processed'
75
77
 
76
78
 
77
79
  def process_lvol_event(event):
78
80
  if event.message in ["error_open", 'error_read', "error_write", "error_unmap"]:
79
- vuid = event.object_dict['vuid']
80
- lvol = None
81
+ # vuid = event.object_dict['vuid']
82
+ node_id = event.node_id
83
+ lvols = []
81
84
  for lv in db_controller.get_lvols(): # pass
82
- if lv.vuid == vuid:
83
- lvol = lv
84
- break
85
+ if lv.node_id == node_id:
86
+ lvols.append(lv)
85
87
 
86
- if not lvol:
87
- logger.error(f"LVol with vuid {vuid} not found")
88
- event.status = 'lvol_not_found'
88
+ if not lvols:
89
+ logger.error(f"LVols on node {node_id} not found")
90
+ event.status = 'lvols_not_found'
89
91
  else:
90
- lvol.io_error = True
91
- if lvol.status == LVol.STATUS_ONLINE:
92
- logger.info("Setting LVol to offline")
93
- old_status = lvol.status
94
- lvol.status = LVol.STATUS_OFFLINE
95
- lvol.write_to_db(db_controller.kv_store)
96
- lvol_events.lvol_status_change(lvol, lvol.status, old_status, caused_by="monitor")
97
- lvol_events.lvol_io_error_change(lvol, True, False, caused_by="monitor")
98
- event.status = 'processed'
99
- else:
100
- event.status = 'skipped'
92
+ for lvol in lvols:
93
+ if lvol.status == LVol.STATUS_ONLINE:
94
+ logger.info("Setting LVol to offline")
95
+ lvol.io_error = True
96
+ old_status = lvol.status
97
+ lvol.status = LVol.STATUS_OFFLINE
98
+ lvol.write_to_db(db_controller.kv_store)
99
+ lvol_events.lvol_status_change(lvol, lvol.status, old_status, caused_by="monitor")
100
+ lvol_events.lvol_io_error_change(lvol, True, False, caused_by="monitor")
101
+ event.status = 'processed'
101
102
  else:
102
103
  logger.error(f"Unknown LVol event message: {event.message}")
103
104
  event.status = "event_unknown"
File without changes
File without changes
File without changes
File without changes