sbcli-dev 4.0.13__zip → 4.0.15__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.

Potentially problematic release.


This version of sbcli-dev might be problematic. Click here for more details.

Files changed (149) hide show
  1. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/PKG-INFO +1 -1
  2. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/env_var +1 -1
  3. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/sbcli_dev.egg-info/PKG-INFO +1 -1
  4. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/cluster_ops.py +1 -1
  5. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/main_distr_event_collector.py +6 -36
  6. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/tasks_runner_restart.py +4 -1
  7. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/snode_ops.py +26 -0
  8. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/snode_ops_k8s.py +26 -0
  9. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_storage_node.py +2 -1
  10. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/README.md +0 -0
  11. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/pyproject.toml +0 -0
  12. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/sbcli_dev.egg-info/SOURCES.txt +0 -0
  13. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/sbcli_dev.egg-info/dependency_links.txt +0 -0
  14. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/sbcli_dev.egg-info/entry_points.txt +0 -0
  15. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/sbcli_dev.egg-info/requires.txt +0 -0
  16. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/sbcli_dev.egg-info/top_level.txt +0 -0
  17. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/setup.cfg +0 -0
  18. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/setup.py +0 -0
  19. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_cli/cli.py +0 -0
  20. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_cli/main.py +0 -0
  21. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/__init__.py +0 -0
  22. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/cnode_client.py +0 -0
  23. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/compute_node_ops.py +0 -0
  24. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/constants.py +0 -0
  25. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/__init__.py +0 -0
  26. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/caching_node_controller.py +0 -0
  27. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/cluster_events.py +0 -0
  28. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/device_controller.py +0 -0
  29. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/device_events.py +0 -0
  30. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/events_controller.py +0 -0
  31. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/health_controller.py +0 -0
  32. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/lvol_controller.py +0 -0
  33. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/lvol_events.py +0 -0
  34. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/mgmt_events.py +0 -0
  35. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/pool_controller.py +0 -0
  36. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/pool_events.py +0 -0
  37. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  38. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/snapshot_events.py +0 -0
  39. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/storage_events.py +0 -0
  40. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/tasks_controller.py +0 -0
  41. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/controllers/tasks_events.py +0 -0
  42. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/distr_controller.py +0 -0
  43. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/kv_store.py +0 -0
  44. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/mgmt_node_ops.py +0 -0
  45. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/__init__.py +0 -0
  46. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/base_model.py +0 -0
  47. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/caching_node.py +0 -0
  48. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/cluster.py +0 -0
  49. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/compute_node.py +0 -0
  50. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/deployer.py +0 -0
  51. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/events.py +0 -0
  52. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/global_settings.py +0 -0
  53. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/iface.py +0 -0
  54. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/job_schedule.py +0 -0
  55. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/lvol_model.py +0 -0
  56. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/mgmt_node.py +0 -0
  57. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/nvme_device.py +0 -0
  58. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/pool.py +0 -0
  59. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/port_stat.py +0 -0
  60. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/snapshot.py +0 -0
  61. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/stats.py +0 -0
  62. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/models/storage_node.py +0 -0
  63. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/pci_utils.py +0 -0
  64. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/rpc_client.py +0 -0
  65. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/__init__.py +0 -0
  66. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  67. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  68. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  69. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/config_docker.sh +0 -0
  70. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/dashboard.yml +0 -0
  71. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  72. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  73. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  74. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  75. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  76. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  77. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/datasource.yml +0 -0
  78. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/db_config_double.sh +0 -0
  79. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/db_config_single.sh +0 -0
  80. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  81. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  82. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  83. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/haproxy.cfg +0 -0
  84. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/install_deps.sh +0 -0
  85. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/objstore.yml +0 -0
  86. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/prometheus.yml +0 -0
  87. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/run_ssh.sh +0 -0
  88. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/set_db_config.sh +0 -0
  89. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  90. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/__init__.py +0 -0
  91. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
  92. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/caching_node_monitor.py +0 -0
  93. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/cap_monitor.py +0 -0
  94. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  95. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/device_monitor.py +0 -0
  96. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/health_check_service.py +0 -0
  97. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/install_service.sh +0 -0
  98. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/log_agg_service.py +0 -0
  99. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/lvol_monitor.py +0 -0
  100. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  101. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  102. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/new_device_discovery.py +0 -0
  103. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/port_stat_collector.py +0 -0
  104. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/remove_service.sh +0 -0
  105. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/service_template.service +0 -0
  106. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
  107. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/storage_node_monitor.py +0 -0
  108. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
  109. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  110. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
  111. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
  112. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/shell_utils.py +0 -0
  113. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/snode_client.py +0 -0
  114. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/storage_node_ops.py +0 -0
  115. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_core/utils.py +0 -0
  116. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/__init__.py +0 -0
  117. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/app.py +0 -0
  118. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/auth_middleware.py +0 -0
  119. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/__init__.py +0 -0
  120. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  121. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  122. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  123. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  124. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  125. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
  126. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  127. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  128. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_device.py +0 -0
  129. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  130. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  131. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  132. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  133. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/caching_node_app.py +0 -0
  134. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/caching_node_app_k8s.py +0 -0
  135. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/node_utils.py +0 -0
  136. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/node_webapp.py +0 -0
  137. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/snode_app.py +0 -0
  138. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/snode_app_k8s.py +0 -0
  139. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/delete.py +0 -0
  140. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/deploy.py +0 -0
  141. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  142. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  143. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/is_up.py +0 -0
  144. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/list_deps.py +0 -0
  145. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/rpac.yaml +0 -0
  146. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/static/tst.py +0 -0
  147. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
  148. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +0 -0
  149. {sbcli_dev-4.0.13 → sbcli_dev-4.0.15}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 4.0.13
3
+ Version: 4.0.15
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=4.0.13
2
+ SIMPLY_BLOCK_VERSION=4.0.15
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:main-dev
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-dev
3
- Version: 4.0.13
3
+ Version: 4.0.15
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -135,7 +135,7 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
135
135
  c.swarm.leave(force=True)
136
136
  time.sleep(3)
137
137
 
138
- c.swarm.init()
138
+ c.swarm.init(DEV_IP)
139
139
  logger.info("Configuring docker swarm > Done")
140
140
  except Exception as e:
141
141
  print(e)
@@ -33,17 +33,8 @@ def process_device_event(event):
33
33
  if dev.status not in [NVMeDevice.STATUS_ONLINE, NVMeDevice.STATUS_READONLY]:
34
34
  logger.info(f"The storage device is not online, skipping. status: {dev.status}")
35
35
  event.status = 'skipped'
36
- node_status_event = {
37
- "timestamp": datetime.datetime.now().isoformat("T", "seconds") + 'Z',
38
- "event_type": "device_status",
39
- "storage_ID": storage_id,
40
- "status": dev.status}
41
- events = {"events": [node_status_event]}
42
- snode = db_controller.get_storage_node_by_id(node_id)
43
- rpc_client = RPCClient(snode.mgmt_ip, snode.rpc_port, snode.rpc_username, snode.rpc_password)
44
- ret = rpc_client.distr_status_events_update(events)
45
- if not ret:
46
- logger.warning("Failed to send event update")
36
+ n = db_controller.get_storage_node_by_id(node_id)
37
+ distr_controller.send_dev_status_event(dev, NVMeDevice.STATUS_UNAVAILABLE, n)
47
38
  return
48
39
 
49
40
  device = dev
@@ -57,30 +48,9 @@ def process_device_event(event):
57
48
  device_id = device.get_id()
58
49
  node = db_controller.get_storage_node_by_id(node_id)
59
50
  if device.node_id != node_id:
60
- logger.info(f"Removing remote storage id: {storage_id} from node: {node_id}")
61
- new_remote_devices = []
62
- rpc_client = RPCClient(node.mgmt_ip, node.rpc_port,
63
- node.rpc_username, node.rpc_password)
64
- for rem_dev in node.remote_devices:
65
- if rem_dev.get_id() == device.get_id():
66
- ctrl_name = rem_dev.remote_bdev[:-2]
67
- rpc_client.bdev_nvme_detach_controller(ctrl_name)
68
- else:
69
- new_remote_devices.append(rem_dev)
70
- node.remote_devices = new_remote_devices
71
- node.write_to_db(db_controller.kv_store)
72
- node_status_event = {
73
- "timestamp": datetime.datetime.now().isoformat("T", "seconds") + 'Z',
74
- "event_type": "device_status",
75
- "storage_ID": storage_id,
76
- "status": NVMeDevice.STATUS_UNAVAILABLE}
77
- events = {"events": [node_status_event]}
78
- ret = rpc_client.distr_status_events_update(events)
79
- if not ret:
80
- logger.warning("Failed to send event update")
81
-
82
- dev_node = db_controller.get_storage_node_by_id(device.node_id)
83
- if dev_node.status == StorageNode.STATUS_ONLINE:
51
+ logger.info(f"Setting storage id: {storage_id} unavailable")
52
+ distr_controller.send_dev_status_event(device, NVMeDevice.STATUS_UNAVAILABLE, node)
53
+ if device.status == NVMeDevice.STATUS_ONLINE:
84
54
  device_controller.device_set_io_error(device_id, True)
85
55
  device_controller.device_set_unavailable(device_id)
86
56
 
@@ -156,7 +126,7 @@ def start_event_collector_on_node(node_id):
156
126
  snode.rpc_port,
157
127
  snode.rpc_username,
158
128
  snode.rpc_password,
159
- timeout=10, retry=2)
129
+ timeout=5, retry=2)
160
130
 
161
131
  while True:
162
132
  page = 1
@@ -219,4 +219,7 @@ while True:
219
219
  tasks_events.task_updated(task)
220
220
  else:
221
221
  time.sleep(delay_seconds)
222
- delay_seconds *= 2
222
+ if task.retry <= 3 and task.function_name == JobSchedule.FN_DEV_RESTART:
223
+ delay_seconds *= 1
224
+ else:
225
+ delay_seconds *= 2
@@ -40,6 +40,29 @@ def get_google_cloud_info():
40
40
  pass
41
41
 
42
42
 
43
+ def get_equinix_cloud_info():
44
+ try:
45
+ response = requests.get("https://metadata.platformequinix.com/metadata")
46
+ data = response.json()
47
+ public_ip = ""
48
+ ip = ""
49
+ for interface in data["network"]["addresses"]:
50
+ if interface["address_family"] == 4:
51
+ if interface["enabled"] and interface["public"]:
52
+ public_ip = interface["address"]
53
+ elif interface["enabled"] and not interface["public"]:
54
+ public_ip = interface["address"]
55
+ return {
56
+ "id": str(data["id"]),
57
+ "type": data["class"],
58
+ "cloud": "equinix",
59
+ "ip": public_ip,
60
+ "public_ip": ip
61
+ }
62
+ except:
63
+ pass
64
+
65
+
43
66
  def get_amazon_cloud_info():
44
67
  try:
45
68
  from ec2_metadata import ec2_metadata
@@ -408,6 +431,9 @@ CLOUD_INFO = get_amazon_cloud_info()
408
431
  if not CLOUD_INFO:
409
432
  CLOUD_INFO = get_google_cloud_info()
410
433
 
434
+ if not CLOUD_INFO:
435
+ CLOUD_INFO = get_equinix_cloud_info()
436
+
411
437
  if CLOUD_INFO:
412
438
  SYSTEM_ID = CLOUD_INFO["id"]
413
439
  else:
@@ -74,6 +74,29 @@ def get_google_cloud_info():
74
74
  pass
75
75
 
76
76
 
77
+ def get_equinix_cloud_info():
78
+ try:
79
+ response = requests.get("https://metadata.platformequinix.com/metadata")
80
+ data = response.json()
81
+ public_ip = ""
82
+ ip = ""
83
+ for interface in data["network"]["addresses"]:
84
+ if interface["address_family"] == 4:
85
+ if interface["enabled"] and interface["public"]:
86
+ public_ip = interface["address"]
87
+ elif interface["enabled"] and not interface["public"]:
88
+ public_ip = interface["address"]
89
+ return {
90
+ "id": str(data["id"]),
91
+ "type": data["class"],
92
+ "cloud": "equinix",
93
+ "ip": public_ip,
94
+ "public_ip": ip
95
+ }
96
+ except:
97
+ pass
98
+
99
+
77
100
  def get_amazon_cloud_info():
78
101
  try:
79
102
  from ec2_metadata import ec2_metadata
@@ -280,6 +303,9 @@ CLOUD_INFO = get_amazon_cloud_info()
280
303
  if not CLOUD_INFO:
281
304
  CLOUD_INFO = get_google_cloud_info()
282
305
 
306
+ if not CLOUD_INFO:
307
+ CLOUD_INFO = get_equinix_cloud_info()
308
+
283
309
  if CLOUD_INFO:
284
310
  SYSTEM_ID = CLOUD_INFO["id"]
285
311
  else:
@@ -197,6 +197,7 @@ def storage_node_add():
197
197
  max_prov = req_data['max_prov']
198
198
  number_of_distribs = int(req_data.get('number_of_distribs', 4))
199
199
  disable_ha_jm = bool(req_data.get('disable_ha_jm', False))
200
+ enable_test_device = bool(req_data.get('enable_test_device', False))
200
201
 
201
202
  spdk_image = None
202
203
  if 'spdk_image' in req_data:
@@ -259,7 +260,7 @@ def storage_node_add():
259
260
  "num_partitions_per_dev": partitions,
260
261
  "jm_percent": jm_percent,
261
262
  "number_of_devices": number_of_devices,
262
- "enable_test_device": False,
263
+ "enable_test_device": enable_test_device,
263
264
  "number_of_distribs": number_of_distribs,
264
265
  "namespace": namespace,
265
266
  "enable_ha_jm": not disable_ha_jm})
File without changes
File without changes
File without changes
File without changes