hybrid_platforms_conductor 32.18.0 → 33.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +3 -3
  4. data/bin/check-node +0 -1
  5. data/bin/deploy +0 -1
  6. data/bin/get_impacted_nodes +0 -1
  7. data/bin/last_deploys +8 -7
  8. data/bin/nodes_to_deploy +2 -2
  9. data/bin/setup +6 -6
  10. data/bin/topograph +1 -1
  11. data/docs/config_dsl.md +23 -1
  12. data/docs/executables.md +6 -7
  13. data/docs/executables/check-node.md +3 -3
  14. data/docs/executables/deploy.md +3 -3
  15. data/docs/executables/dump_nodes_json.md +3 -3
  16. data/docs/executables/test.md +3 -3
  17. data/docs/executables/topograph.md +3 -3
  18. data/docs/plugins.md +21 -0
  19. data/docs/plugins/secrets_reader/cli.md +31 -0
  20. data/docs/plugins/secrets_reader/thycotic.md +46 -0
  21. data/lib/hybrid_platforms_conductor/action.rb +4 -4
  22. data/lib/hybrid_platforms_conductor/actions_executor.rb +37 -42
  23. data/lib/hybrid_platforms_conductor/bitbucket.rb +5 -4
  24. data/lib/hybrid_platforms_conductor/cmd_runner.rb +26 -23
  25. data/lib/hybrid_platforms_conductor/cmdb.rb +2 -2
  26. data/lib/hybrid_platforms_conductor/common_config_dsl/bitbucket.rb +2 -1
  27. data/lib/hybrid_platforms_conductor/common_config_dsl/confluence.rb +2 -1
  28. data/lib/hybrid_platforms_conductor/common_config_dsl/file_system_tests.rb +5 -4
  29. data/lib/hybrid_platforms_conductor/common_config_dsl/github.rb +4 -3
  30. data/lib/hybrid_platforms_conductor/common_config_dsl/idempotence_tests.rb +2 -2
  31. data/lib/hybrid_platforms_conductor/config.rb +8 -4
  32. data/lib/hybrid_platforms_conductor/confluence.rb +1 -1
  33. data/lib/hybrid_platforms_conductor/connector.rb +5 -2
  34. data/lib/hybrid_platforms_conductor/core_extensions/cleanroom/fix_kwargs.rb +116 -0
  35. data/lib/hybrid_platforms_conductor/core_extensions/symbol/zero.rb +24 -0
  36. data/lib/hybrid_platforms_conductor/credentials.rb +39 -36
  37. data/lib/hybrid_platforms_conductor/current_dir_monitor.rb +4 -1
  38. data/lib/hybrid_platforms_conductor/deployer.rb +185 -127
  39. data/lib/hybrid_platforms_conductor/executable.rb +20 -15
  40. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/config.rb +10 -7
  41. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_ip.rb +1 -1
  42. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_keys.rb +2 -2
  43. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/platform_handlers.rb +4 -4
  44. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/local.rb +5 -1
  45. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +45 -49
  46. data/lib/hybrid_platforms_conductor/hpc_plugins/log/remote_fs.rb +6 -5
  47. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef.rb +77 -79
  48. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/dsl_parser.rb +13 -0
  49. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/recipes_tree_builder.rb +39 -38
  50. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/yaml_inventory.rb +5 -4
  51. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/docker.rb +43 -45
  52. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/podman.rb +18 -20
  53. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb +119 -118
  54. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/proxmox_waiter.rb +39 -43
  55. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/reserve_proxmox_container +9 -13
  56. data/lib/hybrid_platforms_conductor/hpc_plugins/report/confluence.rb +2 -2
  57. data/lib/hybrid_platforms_conductor/hpc_plugins/report/mediawiki.rb +28 -21
  58. data/lib/hybrid_platforms_conductor/hpc_plugins/report/stdout.rb +26 -22
  59. data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/cli.rb +77 -0
  60. data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/my_secrets_reader_plugin.rb.sample +46 -0
  61. data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/thycotic.rb +90 -0
  62. data/lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb +3 -3
  63. data/lib/hybrid_platforms_conductor/hpc_plugins/test/check_deploy_and_idempotence.rb +4 -2
  64. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +0 -1
  65. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +21 -19
  66. data/lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb +2 -2
  67. data/lib/hybrid_platforms_conductor/hpc_plugins/test/executables.rb +2 -2
  68. data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system.rb +19 -21
  69. data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system_hdfs.rb +19 -21
  70. data/lib/hybrid_platforms_conductor/hpc_plugins/test/github_ci.rb +2 -3
  71. data/lib/hybrid_platforms_conductor/hpc_plugins/test/idempotence.rb +2 -2
  72. data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +1 -1
  73. data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_conf.rb +21 -22
  74. data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_masters_ok.rb +10 -12
  75. data/lib/hybrid_platforms_conductor/hpc_plugins/test/linear_strategy.rb +9 -9
  76. data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +2 -2
  77. data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +2 -2
  78. data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +10 -9
  79. data/lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb +2 -2
  80. data/lib/hybrid_platforms_conductor/hpc_plugins/test/private_ips.rb +5 -5
  81. data/lib/hybrid_platforms_conductor/hpc_plugins/test/public_ips.rb +5 -5
  82. data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +4 -6
  83. data/lib/hybrid_platforms_conductor/hpc_plugins/test/veids.rb +3 -3
  84. data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +25 -24
  85. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb +2 -2
  86. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/stdout.rb +8 -6
  87. data/lib/hybrid_platforms_conductor/io_router.rb +14 -13
  88. data/lib/hybrid_platforms_conductor/json_dumper.rb +2 -2
  89. data/lib/hybrid_platforms_conductor/log.rb +2 -2
  90. data/lib/hybrid_platforms_conductor/logger_helpers.rb +19 -16
  91. data/lib/hybrid_platforms_conductor/nodes_handler.rb +89 -71
  92. data/lib/hybrid_platforms_conductor/parallel_threads.rb +7 -11
  93. data/lib/hybrid_platforms_conductor/platform_handler.rb +7 -7
  94. data/lib/hybrid_platforms_conductor/platforms_handler.rb +5 -3
  95. data/lib/hybrid_platforms_conductor/plugin.rb +2 -2
  96. data/lib/hybrid_platforms_conductor/plugins.rb +14 -8
  97. data/lib/hybrid_platforms_conductor/provisioner.rb +4 -4
  98. data/lib/hybrid_platforms_conductor/report.rb +2 -2
  99. data/lib/hybrid_platforms_conductor/reports_handler.rb +3 -2
  100. data/lib/hybrid_platforms_conductor/secrets_reader.rb +31 -0
  101. data/lib/hybrid_platforms_conductor/services_handler.rb +32 -29
  102. data/lib/hybrid_platforms_conductor/test_only_remote_node.rb +1 -1
  103. data/lib/hybrid_platforms_conductor/test_report.rb +15 -18
  104. data/lib/hybrid_platforms_conductor/tests_runner.rb +116 -118
  105. data/lib/hybrid_platforms_conductor/thycotic.rb +28 -19
  106. data/lib/hybrid_platforms_conductor/topographer.rb +200 -190
  107. data/lib/hybrid_platforms_conductor/topographer/plugins/graphviz.rb +8 -8
  108. data/lib/hybrid_platforms_conductor/topographer/plugins/json.rb +4 -4
  109. data/lib/hybrid_platforms_conductor/version.rb +1 -1
  110. data/spec/hybrid_platforms_conductor_test.rb +29 -6
  111. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/bash_spec.rb +18 -11
  112. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/interactive_spec.rb +2 -2
  113. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +32 -21
  114. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/ruby_spec.rb +75 -49
  115. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/scp_spec.rb +27 -15
  116. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions_spec.rb +90 -59
  117. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connection_spec.rb +46 -44
  118. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/connectable_nodes_spec.rb +12 -8
  119. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/remote_actions_spec.rb +4 -7
  120. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb +21 -22
  121. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/config_dsl_spec.rb +23 -24
  122. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connectable_nodes_spec.rb +10 -6
  123. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb +106 -75
  124. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb +145 -126
  125. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/node_helpers_spec.rb +3 -3
  126. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb +29 -25
  127. data/spec/hybrid_platforms_conductor_test/api/actions_executor/logging_spec.rb +167 -142
  128. data/spec/hybrid_platforms_conductor_test/api/actions_executor/parallel_spec.rb +272 -244
  129. data/spec/hybrid_platforms_conductor_test/api/actions_executor/timeout_spec.rb +16 -16
  130. data/spec/hybrid_platforms_conductor_test/api/cmd_runner_spec.rb +42 -36
  131. data/spec/hybrid_platforms_conductor_test/api/config_spec.rb +24 -22
  132. data/spec/hybrid_platforms_conductor_test/api/deployer/check_spec.rb +4 -2
  133. data/spec/hybrid_platforms_conductor_test/api/deployer/config_dsl_spec.rb +24 -6
  134. data/spec/hybrid_platforms_conductor_test/api/deployer/deploy_spec.rb +34 -26
  135. data/spec/hybrid_platforms_conductor_test/api/deployer/log_plugins/remote_fs_spec.rb +21 -21
  136. data/spec/hybrid_platforms_conductor_test/api/deployer/parse_deploy_output_spec.rb +55 -59
  137. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioner_spec.rb +36 -62
  138. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/podman_spec.rb +17 -17
  139. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/config_dsl_spec.rb +4 -4
  140. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/create_spec.rb +44 -51
  141. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/destroy_spec.rb +3 -3
  142. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/ip_spec.rb +12 -16
  143. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/destroy_vm_spec.rb +31 -19
  144. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/expired_containers_spec.rb +324 -266
  145. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/ips_assignment_spec.rb +89 -61
  146. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/other_lxc_containers_resources_spec.rb +117 -93
  147. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/pve_node_resources_spec.rb +71 -54
  148. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/retries_spec.rb +10 -8
  149. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/vm_ids_assignment_spec.rb +80 -60
  150. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/start_spec.rb +1 -1
  151. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/state_spec.rb +1 -1
  152. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/stop_spec.rb +1 -1
  153. data/spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/cli_spec.rb +64 -0
  154. data/spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/thycotic_spec.rb +268 -0
  155. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/config_spec.rb +8 -10
  156. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_ip_spec.rb +33 -24
  157. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_keys_spec.rb +64 -51
  158. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/platform_handlers_spec.rb +3 -3
  159. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs_plugins_api_spec.rb +50 -51
  160. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/common_spec.rb +91 -81
  161. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/config_dsl_spec.rb +14 -16
  162. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/git_diff_impacts_spec.rb +51 -75
  163. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/nodes_selectors_spec.rb +35 -26
  164. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/platform_handlers_plugins_api_spec.rb +24 -16
  165. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/several_platforms_spec.rb +29 -19
  166. data/spec/hybrid_platforms_conductor_test/api/platform_handler_spec.rb +4 -4
  167. data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/config_dsl_spec.rb +2 -2
  168. data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/deploy_output_parsing_spec.rb +6 -6
  169. data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/diff_impacts_spec.rb +57 -99
  170. data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/inventory_spec.rb +4 -4
  171. data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/packaging_spec.rb +32 -35
  172. data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/services_deployment_spec.rb +10 -10
  173. data/spec/hybrid_platforms_conductor_test/api/platforms_handler_spec.rb +38 -27
  174. data/spec/hybrid_platforms_conductor_test/api/plugins_spec.rb +46 -52
  175. data/spec/hybrid_platforms_conductor_test/api/reports_handler_spec.rb +2 -2
  176. data/spec/hybrid_platforms_conductor_test/api/services_handler/actions_to_deploy_spec.rb +90 -58
  177. data/spec/hybrid_platforms_conductor_test/api/services_handler/deploy_allowed_spec.rb +38 -34
  178. data/spec/hybrid_platforms_conductor_test/api/services_handler/log_info_spec.rb +11 -9
  179. data/spec/hybrid_platforms_conductor_test/api/services_handler/package_spec.rb +193 -171
  180. data/spec/hybrid_platforms_conductor_test/api/services_handler/parse_deploy_output_spec.rb +66 -54
  181. data/spec/hybrid_platforms_conductor_test/api/services_handler/prepare_for_deploy_spec.rb +147 -133
  182. data/spec/hybrid_platforms_conductor_test/api/tests_runner/common_spec.rb +69 -49
  183. data/spec/hybrid_platforms_conductor_test/api/tests_runner/global_spec.rb +4 -3
  184. data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_check_spec.rb +8 -5
  185. data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_spec.rb +8 -5
  186. data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_ssh_spec.rb +30 -27
  187. data/spec/hybrid_platforms_conductor_test/api/tests_runner/platform_spec.rb +12 -9
  188. data/spec/hybrid_platforms_conductor_test/api/tests_runner/reports_spec.rb +48 -47
  189. data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/bitbucket_conf_spec.rb +5 -5
  190. data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/github_ci_spec.rb +5 -5
  191. data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_reports_plugins/confluence_spec.rb +5 -5
  192. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb.rb +9 -9
  193. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/{test_cmdb2.rb → test_cmdb_2.rb} +6 -6
  194. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others.rb +3 -3
  195. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/{test_cmdb_others2.rb → test_cmdb_others_2.rb} +2 -2
  196. data/spec/hybrid_platforms_conductor_test/docs_spec.rb +1 -1
  197. data/spec/hybrid_platforms_conductor_test/executables/{check-node_spec.rb → check_node_spec.rb} +4 -6
  198. data/spec/hybrid_platforms_conductor_test/executables/deploy_spec.rb +4 -6
  199. data/spec/hybrid_platforms_conductor_test/executables/get_impacted_nodes_spec.rb +76 -77
  200. data/spec/hybrid_platforms_conductor_test/executables/last_deploys_spec.rb +13 -15
  201. data/spec/hybrid_platforms_conductor_test/executables/nodes_to_deploy_spec.rb +289 -307
  202. data/spec/hybrid_platforms_conductor_test/executables/options/actions_executor_spec.rb +4 -6
  203. data/spec/hybrid_platforms_conductor_test/executables/options/cmd_runner_spec.rb +3 -5
  204. data/spec/hybrid_platforms_conductor_test/executables/options/common_spec.rb +8 -9
  205. data/spec/hybrid_platforms_conductor_test/executables/options/deployer_spec.rb +12 -196
  206. data/spec/hybrid_platforms_conductor_test/executables/options/nodes_handler_spec.rb +9 -10
  207. data/spec/hybrid_platforms_conductor_test/executables/options/nodes_selectors_spec.rb +9 -10
  208. data/spec/hybrid_platforms_conductor_test/executables/options/reports_handler_spec.rb +1 -1
  209. data/spec/hybrid_platforms_conductor_test/executables/options/tests_runner_spec.rb +22 -22
  210. data/spec/hybrid_platforms_conductor_test/executables/report_spec.rb +22 -16
  211. data/spec/hybrid_platforms_conductor_test/executables/run_spec.rb +32 -32
  212. data/spec/hybrid_platforms_conductor_test/executables/ssh_config_spec.rb +7 -9
  213. data/spec/hybrid_platforms_conductor_test/executables/test_spec.rb +3 -5
  214. data/spec/hybrid_platforms_conductor_test/helpers/actions_executor_helpers.rb +2 -2
  215. data/spec/hybrid_platforms_conductor_test/helpers/cmd_runner_helpers.rb +4 -3
  216. data/spec/hybrid_platforms_conductor_test/helpers/cmdb_helpers.rb +2 -2
  217. data/spec/hybrid_platforms_conductor_test/helpers/config_helpers.rb +1 -1
  218. data/spec/hybrid_platforms_conductor_test/helpers/connector_ssh_helpers.rb +12 -13
  219. data/spec/hybrid_platforms_conductor_test/helpers/deployer_helpers.rb +216 -14
  220. data/spec/hybrid_platforms_conductor_test/helpers/executables_helpers.rb +11 -11
  221. data/spec/hybrid_platforms_conductor_test/helpers/nodes_handler_helpers.rb +1 -1
  222. data/spec/hybrid_platforms_conductor_test/helpers/platforms_handler_helpers.rb +39 -28
  223. data/spec/hybrid_platforms_conductor_test/helpers/plugins_helpers.rb +1 -1
  224. data/spec/hybrid_platforms_conductor_test/helpers/provisioner_proxmox_helpers.rb +86 -111
  225. data/spec/hybrid_platforms_conductor_test/helpers/reports_handler_helpers.rb +1 -1
  226. data/spec/hybrid_platforms_conductor_test/helpers/serverless_chef_helpers.rb +3 -3
  227. data/spec/hybrid_platforms_conductor_test/helpers/services_handler_helpers.rb +1 -1
  228. data/spec/hybrid_platforms_conductor_test/helpers/tests_runner_helpers.rb +1 -1
  229. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/{test_plugin_id1.rb → test_plugin_id_1.rb} +0 -0
  230. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/{test_plugin_id2.rb → test_plugin_id_2.rb} +0 -0
  231. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type/{test_plugin_id3.rb → test_plugin_id_3.rb} +0 -0
  232. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/{test_plugin_type2/test_plugin_id4.rb → test_plugin_type_2/test_plugin_id_4.rb} +0 -0
  233. data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/test.rb +1 -1
  234. data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/{test2.rb → test_2.rb} +0 -0
  235. data/spec/hybrid_platforms_conductor_test/rubocop_spec.rb +31 -0
  236. data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/nodes/node.json +3 -3
  237. data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/data_bags/nodes/node.json +3 -3
  238. data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_2/libraries/default.rb +1 -0
  239. data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/other_cookbooks/test_cookbook_2/libraries/default.rb +1 -0
  240. data/spec/hybrid_platforms_conductor_test/shared_examples/deployer.rb +952 -0
  241. data/spec/hybrid_platforms_conductor_test/test_connector.rb +4 -3
  242. data/spec/hybrid_platforms_conductor_test/test_log_no_read_plugin.rb +3 -1
  243. data/spec/hybrid_platforms_conductor_test/test_log_plugin.rb +3 -1
  244. data/spec/hybrid_platforms_conductor_test/test_plugins/global.rb +1 -0
  245. data/spec/hybrid_platforms_conductor_test/test_plugins/node.rb +1 -0
  246. data/spec/hybrid_platforms_conductor_test/test_plugins/node_check.rb +1 -0
  247. data/spec/hybrid_platforms_conductor_test/test_plugins/platform.rb +1 -0
  248. data/spec/hybrid_platforms_conductor_test/test_plugins/several_checks.rb +2 -2
  249. data/spec/hybrid_platforms_conductor_test/test_secrets_reader_plugin.rb +45 -0
  250. data/spec/hybrid_platforms_conductor_test/tests_report_plugin.rb +5 -6
  251. data/spec/spec_helper.rb +17 -18
  252. data/tools/check_md +16 -20
  253. data/tools/generate_mermaid +1 -1
  254. metadata +186 -144
  255. data/spec/hybrid_platforms_conductor_test/helpers/deployer_test_helpers.rb +0 -916
@@ -36,6 +36,7 @@ module HybridPlatformsConductorTest
36
36
  @accept_nodes = []
37
37
  @connected_nodes = nil
38
38
  @remote_bash_code = nil
39
+ @remote_copy_code = nil
39
40
  end
40
41
 
41
42
  # Complete an option parser with options meant to control this connector
@@ -45,7 +46,7 @@ module HybridPlatformsConductorTest
45
46
  #
46
47
  # Parameters::
47
48
  # * *options_parser* (OptionParser): The option parser to complete
48
- def options_parse(options_parser)
49
+ def options_parse(_options_parser)
49
50
  @calls << [:options_parse]
50
51
  end
51
52
 
@@ -102,7 +103,7 @@ module HybridPlatformsConductorTest
102
103
  # * *bash_cmds* (String): Bash commands to execute
103
104
  def remote_bash(bash_cmds)
104
105
  @calls << [:remote_bash, bash_cmds]
105
- @remote_bash_code.call(@stdout_io, @stderr_io, self) unless @remote_bash_code.nil?
106
+ @remote_bash_code&.call(@stdout_io, @stderr_io, self)
106
107
  end
107
108
 
108
109
  # Execute an interactive shell on the remote node
@@ -140,7 +141,7 @@ module HybridPlatformsConductorTest
140
141
  extra_opts[:owner] = owner if owner
141
142
  extra_opts[:group] = group if group
142
143
  @calls << [:remote_copy, from, to] + (extra_opts.empty? ? [] : [extra_opts])
143
- @remote_copy_code.call(@stdout_io, @stderr_io, self) unless @remote_copy_code.nil?
144
+ @remote_copy_code&.call(@stdout_io, @stderr_io, self)
144
145
  end
145
146
 
146
147
  # Integer: The current desired timeout
@@ -4,7 +4,9 @@ module HybridPlatformsConductorTest
4
4
  class TestLogNoReadPlugin < HybridPlatformsConductor::Log
5
5
 
6
6
  class << self
7
+
7
8
  attr_accessor :calls
9
+
8
10
  end
9
11
 
10
12
  # Get actions to save logs
@@ -29,7 +31,7 @@ module HybridPlatformsConductorTest
29
31
  node: node,
30
32
  services: services,
31
33
  # Don't store the date
32
- deployment_info: deployment_info.select { |k, _v| k != :date },
34
+ deployment_info: deployment_info.reject { |k, _v| k == :date },
33
35
  exit_status: exit_status,
34
36
  stdout: stdout,
35
37
  stderr: stderr
@@ -4,7 +4,9 @@ module HybridPlatformsConductorTest
4
4
  class TestLogPlugin < HybridPlatformsConductor::Log
5
5
 
6
6
  class << self
7
+
7
8
  attr_accessor :calls
9
+
8
10
  end
9
11
 
10
12
  # Get actions to save logs
@@ -29,7 +31,7 @@ module HybridPlatformsConductorTest
29
31
  node: node,
30
32
  services: services,
31
33
  # Don't store the date
32
- deployment_info: deployment_info.select { |k, _v| k != :date },
34
+ deployment_info: deployment_info.reject { |k, _v| k == :date },
33
35
  exit_status: exit_status,
34
36
  stdout: stdout,
35
37
  stderr: stderr
@@ -20,6 +20,7 @@ module HybridPlatformsConductorTest
20
20
  # Check my_test_plugin.rb.sample documentation for signature details.
21
21
  def test
22
22
  raise 'Failing test' if Global.fail
23
+
23
24
  Global.nbr_runs += 1
24
25
  end
25
26
 
@@ -33,6 +33,7 @@ module HybridPlatformsConductorTest
33
33
  # Check my_test_plugin.rb.sample documentation for signature details.
34
34
  def test_for_node
35
35
  raise "Failing test #{@name} for #{@node}" if Node.fail_for.key?(@name) && Node.fail_for[@name].include?(@node)
36
+
36
37
  sleep_time = Node.sleeps.dig(@name, @node)
37
38
  sleep sleep_time unless sleep_time.nil?
38
39
  Node.runs << [@name, @node]
@@ -29,6 +29,7 @@ module HybridPlatformsConductorTest
29
29
  # Check my_test_plugin.rb.sample documentation for signature details.
30
30
  def test_on_check_node(stdout, stderr, exit_status)
31
31
  raise 'Failing test' if NodeCheck.fail_for.include? @node
32
+
32
33
  NodeCheck.runs << [@name, @node, stdout, stderr, exit_status]
33
34
  end
34
35
 
@@ -30,6 +30,7 @@ module HybridPlatformsConductorTest
30
30
  def test_on_platform
31
31
  platform_name = @platform.name
32
32
  raise 'Failing test' if Platform.fail_for.include? platform_name
33
+
33
34
  sleep_time = Platform.sleeps.dig(@name, platform_name)
34
35
  sleep sleep_time unless sleep_time.nil?
35
36
  Platform.runs << [@name, platform_name]
@@ -32,14 +32,14 @@ module HybridPlatformsConductorTest
32
32
  # Check my_test_plugin.rb.sample documentation for signature details.
33
33
  def test_on_node
34
34
  {
35
- "test_#{@node}.sh" => proc do |stdout, stderr, exit_code|
35
+ "test_#{@node}.sh" => proc do |stdout, stderr|
36
36
  SeveralChecks.runs << [@name, @node, "Node SSH test: #{stdout.join("\n")} - #{stderr.join("\n")}"]
37
37
  end
38
38
  }
39
39
  end
40
40
 
41
41
  # Check my_test_plugin.rb.sample documentation for signature details.
42
- def test_on_check_node(stdout, stderr, exit_status)
42
+ def test_on_check_node(stdout, _stderr, _exit_status)
43
43
  SeveralChecks.runs << [@name, @node, "Node check-node test: #{stdout}"]
44
44
  end
45
45
 
@@ -0,0 +1,45 @@
1
+ require 'hybrid_platforms_conductor/secrets_reader'
2
+
3
+ module HybridPlatformsConductorTest
4
+
5
+ # Mock a secrets reader plugin
6
+ class TestSecretsReaderPlugin < HybridPlatformsConductor::SecretsReader
7
+
8
+ class << self
9
+
10
+ attr_accessor :calls, :deployer, :mocked_secrets
11
+
12
+ end
13
+
14
+ # Return secrets for a given service to be deployed on a node.
15
+ # [API] - This method is mandatory
16
+ # [API] - The following API components are accessible:
17
+ # * *@config* (Config): Main configuration API.
18
+ # * *@cmd_runner* (CmdRunner): Command Runner API.
19
+ # * *@nodes_handler* (NodesHandler): Nodes handler API.
20
+ #
21
+ # Parameters::
22
+ # * *node* (String): Node to be deployed
23
+ # * *service* (String): Service to be deployed
24
+ # Result::
25
+ # * Hash: The secrets
26
+ def secrets_for(node, service)
27
+ # Get the name by looking into the plugins' map
28
+ plugin_name, _plugin = TestSecretsReaderPlugin.deployer.instance_variable_get(:@secrets_readers).find { |_plugin_name, plugin| plugin == self }
29
+ TestSecretsReaderPlugin.calls << {
30
+ instance: plugin_name,
31
+ node: node,
32
+ service: service
33
+ }
34
+ TestSecretsReaderPlugin.mocked_secrets.dig(node, service, plugin_name) || {
35
+ node => {
36
+ service => {
37
+ plugin_name.to_s => 'Secret value'
38
+ }
39
+ }
40
+ }
41
+ end
42
+
43
+ end
44
+
45
+ end
@@ -4,9 +4,11 @@ module HybridPlatformsConductorTest
4
4
  class TestsReportPlugin < HybridPlatformsConductor::TestReport
5
5
 
6
6
  class << self
7
+
7
8
  # Reports (that can be compared), per report name
8
9
  # Array< Hash<Symbol, Object> >
9
10
  attr_accessor :reports
11
+
10
12
  end
11
13
 
12
14
  # Handle tests reports
@@ -15,12 +17,9 @@ module HybridPlatformsConductorTest
15
17
  global_tests: report_from(global_tests),
16
18
  platform_tests: report_from(platform_tests),
17
19
  node_tests: report_from(node_tests),
18
- errors_per_test: Hash[group_errors(node_tests, :test_name).map do |test_name, errors|
19
- [
20
- test_name,
21
- errors.map { |error| error.split("\n").first }
22
- ]
23
- end],
20
+ errors_per_test: group_errors(node_tests, :test_name).transform_values do |errors|
21
+ errors.map { |error| error.split("\n").first }
22
+ end,
24
23
  nodes_by_nodes_list: nodes_by_nodes_list
25
24
  }
26
25
  end
data/spec/spec_helper.rb CHANGED
@@ -32,7 +32,7 @@ RSpec.configure do |config|
32
32
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
33
33
 
34
34
  # Increase the diffs length being output, as some tests are dealing with a few lines of stdout
35
- expectations.max_formatted_output_length = 65536
35
+ expectations.max_formatted_output_length = 65_536
36
36
 
37
37
  end
38
38
 
@@ -55,57 +55,56 @@ RSpec.configure do |config|
55
55
  # triggering implicit auto-inclusion in groups with matching metadata.
56
56
  config.shared_context_metadata_behavior = :apply_to_host_groups
57
57
 
58
- # The settings below are suggested to provide a good initial experience
59
- # with RSpec, but feel free to customize to your heart's content.
60
- =begin
58
+ # The settings below are suggested to provide a good initial experience
59
+ # with RSpec, but feel free to customize to your heart's content.
60
+
61
61
  # This allows you to limit a spec run to individual examples or groups
62
62
  # you care about by tagging them with `:focus` metadata. When nothing
63
63
  # is tagged with `:focus`, all examples get run. RSpec also provides
64
64
  # aliases for `it`, `describe`, and `context` that include `:focus`
65
65
  # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
66
- config.filter_run_when_matching :focus
66
+ # config.filter_run_when_matching :focus
67
67
 
68
68
  # Allows RSpec to persist some state between runs in order to support
69
69
  # the `--only-failures` and `--next-failure` CLI options. We recommend
70
70
  # you configure your source control system to ignore this file.
71
- config.example_status_persistence_file_path = "spec/examples.txt"
71
+ # config.example_status_persistence_file_path = "spec/examples.txt"
72
72
 
73
73
  # Limits the available syntax to the non-monkey patched syntax that is
74
74
  # recommended. For more details, see:
75
75
  # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
76
76
  # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
77
77
  # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
78
- config.disable_monkey_patching!
78
+ # config.disable_monkey_patching!
79
79
 
80
80
  # This setting enables warnings. It's recommended, but in some cases may
81
81
  # be too noisy due to issues in dependencies.
82
- config.warnings = true
82
+ # config.warnings = true
83
83
 
84
84
  # Many RSpec users commonly either run the entire suite or an individual
85
85
  # file, and it's useful to allow more verbose output when running an
86
86
  # individual spec file.
87
- if config.files_to_run.one?
88
- # Use the documentation formatter for detailed output,
89
- # unless a formatter has already been configured
90
- # (e.g. via a command-line flag).
91
- config.default_formatter = "doc"
92
- end
87
+ # if config.files_to_run.one?
88
+ # # Use the documentation formatter for detailed output,
89
+ # # unless a formatter has already been configured
90
+ # # (e.g. via a command-line flag).
91
+ # config.default_formatter = "doc"
92
+ # end
93
93
 
94
94
  # Print the 10 slowest examples and example groups at the
95
95
  # end of the spec run, to help surface which specs are running
96
96
  # particularly slow.
97
- config.profile_examples = 10
97
+ # config.profile_examples = 10
98
98
 
99
99
  # Run specs in random order to surface order dependencies. If you find an
100
100
  # order dependency and want to debug it, you can fix the order by providing
101
101
  # the seed, which is printed after each run.
102
102
  # --seed 1234
103
- config.order = :random
103
+ # config.order = :random
104
104
 
105
105
  # Seed global randomization in this process using the `--seed` CLI option.
106
106
  # Setting this allows you to use `--seed` to deterministically reproduce
107
107
  # test failures related to randomization by passing the same `--seed` value
108
108
  # as the one that triggered the failure.
109
- Kernel.srand config.seed
110
- =end
109
+ # Kernel.srand config.seed
111
110
  end
data/tools/check_md CHANGED
@@ -18,7 +18,7 @@ def link_to_file(link, file)
18
18
  if link_file == ''
19
19
  file
20
20
  elsif link_file.start_with?('/')
21
- link_file[1..-1]
21
+ link_file[1..]
22
22
  else
23
23
  File.expand_path("#{File.dirname(file)}/#{link_file}").gsub("#{Dir.pwd}/", '')
24
24
  end
@@ -29,22 +29,20 @@ end
29
29
  # Parameters::
30
30
  # * *file* (String): Markdown file to be parsed
31
31
  def parse_md(file)
32
- unless @info.key?(file)
33
- puts "Parsing #{file}..."
34
- content = File.read(file)
35
- @info[file] = {
36
- anchors: content.scan(/<a name="([^"]*)"><\/a>/).map { |(anchor)| anchor },
37
- links: content.scan(/\[[^\]]*\]\(([^\)]*)\)/).map { |(link)| link }
38
- }
39
- # Parse linked files
40
- @info[file][:links].each do |link|
41
- puts "Found #{file} => #{link}"
42
- end
43
- @info[file][:links].each do |link|
44
- unless link.start_with?('http')
45
- linked_file = link_to_file(link, file)
46
- parse_md(linked_file) if File.exist?(linked_file) && linked_file.end_with?('.md')
47
- end
32
+ return if @info.key?(file)
33
+
34
+ puts "Parsing #{file}..."
35
+ content = File.read(file)
36
+ @info[file] = {
37
+ anchors: content.scan(%r{<a name="([^"]*)"></a>}).map { |(anchor)| anchor },
38
+ links: content.scan(/\[[^\]]*\]\(([^)]*)\)/).map { |(link)| link }
39
+ }
40
+ # Parse linked files
41
+ @info[file][:links].each do |link|
42
+ puts "Found #{file} => #{link}"
43
+ unless link.start_with?('http')
44
+ linked_file = link_to_file(link, file)
45
+ parse_md(linked_file) if File.exist?(linked_file) && linked_file.end_with?('.md')
48
46
  end
49
47
  end
50
48
  end
@@ -63,9 +61,7 @@ errors = []
63
61
  anchor = link.split('#')[1]
64
62
  linked_file = link_to_file(link, file)
65
63
  if @info.key?(linked_file)
66
- if anchor.nil?
67
- '*'
68
- elsif @info[linked_file][:anchors].include?(anchor)
64
+ if anchor.nil? || @info[linked_file][:anchors].include?(anchor)
69
65
  '*'
70
66
  else
71
67
  errors << "[#{file} -> #{link}] - Destination has no anchor named #{anchor}"
@@ -64,7 +64,7 @@ def gen_mermaid(file)
64
64
  markdown << line
65
65
  end
66
66
  end
67
- File.write(file, markdown.map { |line| "#{line}\n" }.join) if idx_mermaid > 0
67
+ File.write(file, markdown.map { |line| "#{line}\n" }.join) if idx_mermaid.positive?
68
68
  end
69
69
 
70
70
  Tempfile.create('puppeteer') do |puppeteer_file|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hybrid_platforms_conductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 32.18.0
4
+ version: 33.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Muriel Salvan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-14 00:00:00.000000000 Z
11
+ date: 2021-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: range_operators
@@ -290,184 +290,214 @@ dependencies:
290
290
  - - "~>"
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0.0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: rubocop
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - "~>"
298
+ - !ruby/object:Gem::Version
299
+ version: '1.16'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - "~>"
305
+ - !ruby/object:Gem::Version
306
+ version: '1.16'
307
+ - !ruby/object:Gem::Dependency
308
+ name: rubocop-rspec
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - "~>"
312
+ - !ruby/object:Gem::Version
313
+ version: '2.4'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - "~>"
319
+ - !ruby/object:Gem::Version
320
+ version: '2.4'
293
321
  description: Provides a complete toolset to help DevOps maintain, deploy, monitor
294
322
  and test multiple platforms using various technologies
295
323
  email:
296
324
  - muriel@x-aeon.com
297
325
  executables:
298
- - topograph
299
- - test
326
+ - free_ips
327
+ - setup
300
328
  - check-node
301
- - get_impacted_nodes
302
- - ssh_config
329
+ - deploy
303
330
  - dump_nodes_json
331
+ - topograph
304
332
  - run
305
- - setup
306
333
  - report
334
+ - free_veids
335
+ - get_impacted_nodes
336
+ - ssh_config
307
337
  - last_deploys
308
338
  - nodes_to_deploy
309
- - free_ips
310
- - free_veids
311
- - deploy
339
+ - test
312
340
  extensions: []
313
341
  extra_rdoc_files:
314
- - README.md
315
342
  - CHANGELOG.md
316
343
  - LICENSE.md
317
- - docs/tutorial/05_extend_with_plugins.md
318
- - docs/tutorial/04_test.md
319
- - docs/tutorial/03_scale.md
320
- - docs/tutorial/01_installation.md
321
- - docs/tutorial/02_first_node.md
322
- - docs/tutorial.md
344
+ - README.md
323
345
  - docs/install.md
324
- - docs/plugins_create.md
325
- - docs/executables.md
326
- - docs/api.md
327
- - docs/plugins.md
328
- - docs/gen/mermaid/README.md-0.png
329
- - docs/gen/mermaid/docs/executables/check-node.md-0.png
330
- - docs/gen/mermaid/docs/executables/ssh_config.md-0.png
331
- - docs/gen/mermaid/docs/executables/last_deploys.md-0.png
332
- - docs/gen/mermaid/docs/executables/run.md-0.png
333
- - docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png
334
- - docs/gen/mermaid/docs/executables/test.md-0.png
335
- - docs/gen/mermaid/docs/executables/free_ips.md-0.png
336
- - docs/gen/mermaid/docs/executables/free_veids.md-0.png
337
- - docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png
338
- - docs/gen/mermaid/docs/executables/report.md-0.png
339
- - docs/gen/mermaid/docs/executables/deploy.md-0.png
340
- - docs/gen/mermaid/docs/executables/setup.md-0.png
341
- - docs/executables/test.md
342
- - docs/executables/free_ips.md
343
- - docs/executables/run.md
344
- - docs/executables/get_impacted_nodes.md
345
- - docs/executables/last_deploys.md
346
- - docs/executables/nodes_to_deploy.md
347
- - docs/executables/setup.md
348
- - docs/executables/deploy.md
349
- - docs/executables/report.md
350
- - docs/executables/check-node.md
351
- - docs/executables/free_veids.md
352
- - docs/executables/ssh_config.md
353
- - docs/executables/topograph.md
354
- - docs/executables/dump_nodes_json.md
355
- - docs/plugins/platform_handler/serverless_chef.md
356
- - docs/plugins/platform_handler/yaml_inventory.md
346
+ - docs/plugins/cmdb/platform_handlers.md
347
+ - docs/plugins/cmdb/config.md
348
+ - docs/plugins/cmdb/host_ip.md
349
+ - docs/plugins/cmdb/host_keys.md
357
350
  - docs/plugins/log/remote_fs.md
358
- - docs/plugins/provisioner/proxmox.md
359
- - docs/plugins/provisioner/podman.md
360
351
  - docs/plugins/provisioner/docker.md
361
- - docs/plugins/test/spectre.md
362
- - docs/plugins/test/bitbucket_conf.md
363
- - docs/plugins/test/github_ci.md
364
- - docs/plugins/test/vulnerabilities.md
365
- - docs/plugins/test/deploy_removes_root_access.md
366
- - docs/plugins/test/private_ips.md
367
- - docs/plugins/test/ip.md
352
+ - docs/plugins/provisioner/podman.md
353
+ - docs/plugins/provisioner/proxmox.md
354
+ - docs/plugins/action/bash.md
355
+ - docs/plugins/action/scp.md
356
+ - docs/plugins/action/remote_bash.md
357
+ - docs/plugins/action/interactive.md
358
+ - docs/plugins/action/ruby.md
359
+ - docs/plugins/connector/ssh.md
360
+ - docs/plugins/connector/local.md
361
+ - docs/plugins/report/confluence.md
362
+ - docs/plugins/report/mediawiki.md
363
+ - docs/plugins/report/stdout.md
364
+ - docs/plugins/secrets_reader/thycotic.md
365
+ - docs/plugins/secrets_reader/cli.md
366
+ - docs/plugins/test/file_system_hdfs.md
367
+ - docs/plugins/test/mounts.md
368
+ - docs/plugins/test/idempotence.md
368
369
  - docs/plugins/test/orphan_files.md
370
+ - docs/plugins/test/github_ci.md
369
371
  - docs/plugins/test/veids.md
370
- - docs/plugins/test/executables.md
371
- - docs/plugins/test/ports.md
372
+ - docs/plugins/test/check_deploy_and_idempotence.md
372
373
  - docs/plugins/test/hostname.md
373
- - docs/plugins/test/divergence.md
374
- - docs/plugins/test/deploy_freshness.md
374
+ - docs/plugins/test/bitbucket_conf.md
375
375
  - docs/plugins/test/deploy_from_scratch.md
376
- - docs/plugins/test/can_be_checked.md
376
+ - docs/plugins/test/divergence.md
377
377
  - docs/plugins/test/check_from_scratch.md
378
- - docs/plugins/test/public_ips.md
379
- - docs/plugins/test/linear_strategy.md
380
- - docs/plugins/test/connection.md
381
- - docs/plugins/test/check_deploy_and_idempotence.md
378
+ - docs/plugins/test/deploy_removes_root_access.md
382
379
  - docs/plugins/test/file_system.md
383
- - docs/plugins/test/mounts.md
384
- - docs/plugins/test/local_users.md
380
+ - docs/plugins/test/spectre.md
381
+ - docs/plugins/test/vulnerabilities.md
382
+ - docs/plugins/test/ports.md
383
+ - docs/plugins/test/linear_strategy.md
385
384
  - docs/plugins/test/jenkins_ci_conf.md
385
+ - docs/plugins/test/can_be_checked.md
386
+ - docs/plugins/test/public_ips.md
387
+ - docs/plugins/test/connection.md
386
388
  - docs/plugins/test/jenkins_ci_masters_ok.md
387
- - docs/plugins/test/file_system_hdfs.md
388
- - docs/plugins/test/idempotence.md
389
- - docs/plugins/report/mediawiki.md
390
- - docs/plugins/report/stdout.md
391
- - docs/plugins/report/confluence.md
392
- - docs/plugins/test_report/stdout.md
389
+ - docs/plugins/test/deploy_freshness.md
390
+ - docs/plugins/test/executables.md
391
+ - docs/plugins/test/private_ips.md
392
+ - docs/plugins/test/ip.md
393
+ - docs/plugins/test/local_users.md
394
+ - docs/plugins/platform_handler/serverless_chef.md
395
+ - docs/plugins/platform_handler/yaml_inventory.md
393
396
  - docs/plugins/test_report/confluence.md
394
- - docs/plugins/connector/local.md
395
- - docs/plugins/connector/ssh.md
396
- - docs/plugins/action/interactive.md
397
- - docs/plugins/action/scp.md
398
- - docs/plugins/action/remote_bash.md
399
- - docs/plugins/action/ruby.md
400
- - docs/plugins/action/bash.md
401
- - docs/plugins/cmdb/host_ip.md
402
- - docs/plugins/cmdb/config.md
403
- - docs/plugins/cmdb/platform_handlers.md
404
- - docs/plugins/cmdb/host_keys.md
397
+ - docs/plugins/test_report/stdout.md
405
398
  - docs/config_dsl.md
406
- - examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-python.bash
407
- - examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/hosts.json
408
- - examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-gcc.bash
409
- - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/platform_handler/json_bash.rb
410
- - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/test/root_space.rb
411
- - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/report/web_report.rb
412
- - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/my_hpc_plugins.gemspec
399
+ - docs/executables/free_veids.md
400
+ - docs/executables/last_deploys.md
401
+ - docs/executables/nodes_to_deploy.md
402
+ - docs/executables/topograph.md
403
+ - docs/executables/report.md
404
+ - docs/executables/get_impacted_nodes.md
405
+ - docs/executables/run.md
406
+ - docs/executables/deploy.md
407
+ - docs/executables/dump_nodes_json.md
408
+ - docs/executables/ssh_config.md
409
+ - docs/executables/test.md
410
+ - docs/executables/setup.md
411
+ - docs/executables/free_ips.md
412
+ - docs/executables/check-node.md
413
+ - docs/plugins_create.md
414
+ - docs/tutorial/01_installation.md
415
+ - docs/tutorial/04_test.md
416
+ - docs/tutorial/03_scale.md
417
+ - docs/tutorial/02_first_node.md
418
+ - docs/tutorial/05_extend_with_plugins.md
419
+ - docs/tutorial.md
420
+ - docs/api.md
421
+ - docs/executables.md
422
+ - docs/gen/mermaid/README.md-0.png
423
+ - docs/gen/mermaid/docs/executables/test.md-0.png
424
+ - docs/gen/mermaid/docs/executables/last_deploys.md-0.png
425
+ - docs/gen/mermaid/docs/executables/free_ips.md-0.png
426
+ - docs/gen/mermaid/docs/executables/deploy.md-0.png
427
+ - docs/gen/mermaid/docs/executables/check-node.md-0.png
428
+ - docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png
429
+ - docs/gen/mermaid/docs/executables/setup.md-0.png
430
+ - docs/gen/mermaid/docs/executables/report.md-0.png
431
+ - docs/gen/mermaid/docs/executables/free_veids.md-0.png
432
+ - docs/gen/mermaid/docs/executables/ssh_config.md-0.png
433
+ - docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png
434
+ - docs/gen/mermaid/docs/executables/run.md-0.png
435
+ - docs/plugins.md
436
+ - examples/tutorial/04_test/my-service-conf-repo/service_web-hello.rb
437
+ - examples/tutorial/04_test/my-service-conf-repo/service_my-service.rb
438
+ - examples/tutorial/04_test/my-service-conf-repo/my-service.conf.erb
439
+ - examples/tutorial/04_test/my-service-conf-repo/inventory.yaml
440
+ - examples/tutorial/04_test/my-platforms/hpc_config.rb
441
+ - examples/tutorial/04_test/my-platforms/Gemfile
442
+ - examples/tutorial/04_test/my-platforms/images/debian_10/Dockerfile
443
+ - examples/tutorial/04_test/my-platforms/my_commands.bash
444
+ - examples/tutorial/04_test/web_docker_image/hello_world.txt
445
+ - examples/tutorial/04_test/web_docker_image/test.bash
446
+ - examples/tutorial/04_test/web_docker_image/hpc_root.key.pub
447
+ - examples/tutorial/04_test/web_docker_image/Dockerfile
448
+ - examples/tutorial/04_test/web_docker_image/hpc_root.key
449
+ - examples/tutorial/04_test/web_docker_image/start.sh
450
+ - examples/tutorial/04_test/web_docker_image/main.go
451
+ - examples/tutorial/04_test/node/my-service.conf
452
+ - examples/tutorial/03_scale/my-service-conf-repo/service_web-hello.rb
453
+ - examples/tutorial/03_scale/my-service-conf-repo/service_my-service.rb
454
+ - examples/tutorial/03_scale/my-service-conf-repo/my-service.conf.erb
455
+ - examples/tutorial/03_scale/my-service-conf-repo/inventory.yaml
456
+ - examples/tutorial/03_scale/my-platforms/hpc_config.rb
457
+ - examples/tutorial/03_scale/my-platforms/Gemfile
458
+ - examples/tutorial/03_scale/my-platforms/my_commands.bash
459
+ - examples/tutorial/03_scale/web_docker_image/hello_world.txt
460
+ - examples/tutorial/03_scale/web_docker_image/test.bash
461
+ - examples/tutorial/03_scale/web_docker_image/hpc_root.key.pub
462
+ - examples/tutorial/03_scale/web_docker_image/Dockerfile
463
+ - examples/tutorial/03_scale/web_docker_image/hpc_root.key
464
+ - examples/tutorial/03_scale/web_docker_image/start.sh
465
+ - examples/tutorial/03_scale/web_docker_image/main.go
466
+ - examples/tutorial/03_scale/node/my-service.conf
413
467
  - examples/tutorial/05_extend_with_plugins/my-service-conf-repo/service_web-hello.rb
414
- - examples/tutorial/05_extend_with_plugins/my-service-conf-repo/my-service.conf.erb
415
468
  - examples/tutorial/05_extend_with_plugins/my-service-conf-repo/service_my-service.rb
469
+ - examples/tutorial/05_extend_with_plugins/my-service-conf-repo/my-service.conf.erb
416
470
  - examples/tutorial/05_extend_with_plugins/my-service-conf-repo/inventory.yaml
417
471
  - examples/tutorial/05_extend_with_plugins/my-platforms/hpc_config.rb
418
472
  - examples/tutorial/05_extend_with_plugins/my-platforms/Gemfile
419
- - examples/tutorial/05_extend_with_plugins/my-platforms/my_commands.bash
420
473
  - examples/tutorial/05_extend_with_plugins/my-platforms/images/debian_10/Dockerfile
474
+ - examples/tutorial/05_extend_with_plugins/my-platforms/my_commands.bash
421
475
  - examples/tutorial/05_extend_with_plugins/dev_docker_image/hpc_root.key.pub
422
476
  - examples/tutorial/05_extend_with_plugins/dev_docker_image/Dockerfile
423
477
  - examples/tutorial/05_extend_with_plugins/dev_docker_image/hpc_root.key
424
- - examples/tutorial/05_extend_with_plugins/node/my-service.conf
478
+ - examples/tutorial/05_extend_with_plugins/web_docker_image/hello_world.txt
479
+ - examples/tutorial/05_extend_with_plugins/web_docker_image/test.bash
425
480
  - examples/tutorial/05_extend_with_plugins/web_docker_image/hpc_root.key.pub
426
- - examples/tutorial/05_extend_with_plugins/web_docker_image/main.go
427
- - examples/tutorial/05_extend_with_plugins/web_docker_image/start.sh
428
481
  - examples/tutorial/05_extend_with_plugins/web_docker_image/Dockerfile
429
482
  - examples/tutorial/05_extend_with_plugins/web_docker_image/hpc_root.key
430
- - examples/tutorial/05_extend_with_plugins/web_docker_image/test.bash
431
- - examples/tutorial/05_extend_with_plugins/web_docker_image/hello_world.txt
432
- - examples/tutorial/02_first_node/my-service-conf-repo/my-service.conf.erb
483
+ - examples/tutorial/05_extend_with_plugins/web_docker_image/start.sh
484
+ - examples/tutorial/05_extend_with_plugins/web_docker_image/main.go
485
+ - examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/hosts.json
486
+ - examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-gcc.bash
487
+ - examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-python.bash
488
+ - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/report/web_report.rb
489
+ - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/test/root_space.rb
490
+ - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/platform_handler/json_bash.rb
491
+ - examples/tutorial/05_extend_with_plugins/my_hpc_plugins/my_hpc_plugins.gemspec
492
+ - examples/tutorial/05_extend_with_plugins/node/my-service.conf
433
493
  - examples/tutorial/02_first_node/my-service-conf-repo/service_my-service.rb
494
+ - examples/tutorial/02_first_node/my-service-conf-repo/my-service.conf.erb
434
495
  - examples/tutorial/02_first_node/my-service-conf-repo/inventory.yaml
435
496
  - examples/tutorial/02_first_node/my-platforms/hpc_config.rb
436
497
  - examples/tutorial/02_first_node/my-platforms/Gemfile
437
498
  - examples/tutorial/02_first_node/node/my-service.conf
438
499
  - examples/tutorial/01_installation/my-platforms/hpc_config.rb
439
500
  - examples/tutorial/01_installation/my-platforms/Gemfile
440
- - examples/tutorial/04_test/my-service-conf-repo/service_web-hello.rb
441
- - examples/tutorial/04_test/my-service-conf-repo/my-service.conf.erb
442
- - examples/tutorial/04_test/my-service-conf-repo/service_my-service.rb
443
- - examples/tutorial/04_test/my-service-conf-repo/inventory.yaml
444
- - examples/tutorial/04_test/my-platforms/hpc_config.rb
445
- - examples/tutorial/04_test/my-platforms/Gemfile
446
- - examples/tutorial/04_test/my-platforms/my_commands.bash
447
- - examples/tutorial/04_test/my-platforms/images/debian_10/Dockerfile
448
- - examples/tutorial/04_test/node/my-service.conf
449
- - examples/tutorial/04_test/web_docker_image/hpc_root.key.pub
450
- - examples/tutorial/04_test/web_docker_image/main.go
451
- - examples/tutorial/04_test/web_docker_image/start.sh
452
- - examples/tutorial/04_test/web_docker_image/Dockerfile
453
- - examples/tutorial/04_test/web_docker_image/hpc_root.key
454
- - examples/tutorial/04_test/web_docker_image/test.bash
455
- - examples/tutorial/04_test/web_docker_image/hello_world.txt
456
- - examples/tutorial/03_scale/my-service-conf-repo/service_web-hello.rb
457
- - examples/tutorial/03_scale/my-service-conf-repo/my-service.conf.erb
458
- - examples/tutorial/03_scale/my-service-conf-repo/service_my-service.rb
459
- - examples/tutorial/03_scale/my-service-conf-repo/inventory.yaml
460
- - examples/tutorial/03_scale/my-platforms/hpc_config.rb
461
- - examples/tutorial/03_scale/my-platforms/Gemfile
462
- - examples/tutorial/03_scale/my-platforms/my_commands.bash
463
- - examples/tutorial/03_scale/node/my-service.conf
464
- - examples/tutorial/03_scale/web_docker_image/hpc_root.key.pub
465
- - examples/tutorial/03_scale/web_docker_image/main.go
466
- - examples/tutorial/03_scale/web_docker_image/start.sh
467
- - examples/tutorial/03_scale/web_docker_image/Dockerfile
468
- - examples/tutorial/03_scale/web_docker_image/hpc_root.key
469
- - examples/tutorial/03_scale/web_docker_image/test.bash
470
- - examples/tutorial/03_scale/web_docker_image/hello_world.txt
471
501
  - examples/localhost/hpc_config.rb
472
502
  - examples/localhost/Gemfile
473
503
  - examples/localhost/inventory.yaml
@@ -543,6 +573,8 @@ files:
543
573
  - docs/plugins/report/confluence.md
544
574
  - docs/plugins/report/mediawiki.md
545
575
  - docs/plugins/report/stdout.md
576
+ - docs/plugins/secrets_reader/cli.md
577
+ - docs/plugins/secrets_reader/thycotic.md
546
578
  - docs/plugins/test/bitbucket_conf.md
547
579
  - docs/plugins/test/can_be_checked.md
548
580
  - docs/plugins/test/check_deploy_and_idempotence.md
@@ -663,6 +695,8 @@ files:
663
695
  - lib/hybrid_platforms_conductor/config.rb
664
696
  - lib/hybrid_platforms_conductor/confluence.rb
665
697
  - lib/hybrid_platforms_conductor/connector.rb
698
+ - lib/hybrid_platforms_conductor/core_extensions/cleanroom/fix_kwargs.rb
699
+ - lib/hybrid_platforms_conductor/core_extensions/symbol/zero.rb
666
700
  - lib/hybrid_platforms_conductor/credentials.rb
667
701
  - lib/hybrid_platforms_conductor/current_dir_monitor.rb
668
702
  - lib/hybrid_platforms_conductor/deployer.rb
@@ -699,6 +733,9 @@ files:
699
733
  - lib/hybrid_platforms_conductor/hpc_plugins/report/my_report_plugin.rb.sample
700
734
  - lib/hybrid_platforms_conductor/hpc_plugins/report/stdout.rb
701
735
  - lib/hybrid_platforms_conductor/hpc_plugins/report/templates/confluence_inventory.html.erb
736
+ - lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/cli.rb
737
+ - lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/my_secrets_reader_plugin.rb.sample
738
+ - lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/thycotic.rb
702
739
  - lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb
703
740
  - lib/hybrid_platforms_conductor/hpc_plugins/test/can_be_checked.rb
704
741
  - lib/hybrid_platforms_conductor/hpc_plugins/test/check_deploy_and_idempotence.rb
@@ -749,6 +786,7 @@ files:
749
786
  - lib/hybrid_platforms_conductor/provisioner.rb
750
787
  - lib/hybrid_platforms_conductor/report.rb
751
788
  - lib/hybrid_platforms_conductor/reports_handler.rb
789
+ - lib/hybrid_platforms_conductor/secrets_reader.rb
752
790
  - lib/hybrid_platforms_conductor/services_handler.rb
753
791
  - lib/hybrid_platforms_conductor/test.rb
754
792
  - lib/hybrid_platforms_conductor/test_by_service.rb
@@ -809,6 +847,8 @@ files:
809
847
  - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/start_spec.rb
810
848
  - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/state_spec.rb
811
849
  - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/stop_spec.rb
850
+ - spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/cli_spec.rb
851
+ - spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/thycotic_spec.rb
812
852
  - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/config_spec.rb
813
853
  - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_ip_spec.rb
814
854
  - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_keys_spec.rb
@@ -847,11 +887,11 @@ files:
847
887
  - spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/github_ci_spec.rb
848
888
  - spec/hybrid_platforms_conductor_test/api/tests_runner/test_reports_plugins/confluence_spec.rb
849
889
  - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb.rb
850
- - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb2.rb
890
+ - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_2.rb
851
891
  - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others.rb
852
- - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others2.rb
892
+ - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others_2.rb
853
893
  - spec/hybrid_platforms_conductor_test/docs_spec.rb
854
- - spec/hybrid_platforms_conductor_test/executables/check-node_spec.rb
894
+ - spec/hybrid_platforms_conductor_test/executables/check_node_spec.rb
855
895
  - spec/hybrid_platforms_conductor_test/executables/deploy_spec.rb
856
896
  - spec/hybrid_platforms_conductor_test/executables/get_impacted_nodes_spec.rb
857
897
  - spec/hybrid_platforms_conductor_test/executables/last_deploys_spec.rb
@@ -874,7 +914,6 @@ files:
874
914
  - spec/hybrid_platforms_conductor_test/helpers/config_helpers.rb
875
915
  - spec/hybrid_platforms_conductor_test/helpers/connector_ssh_helpers.rb
876
916
  - spec/hybrid_platforms_conductor_test/helpers/deployer_helpers.rb
877
- - spec/hybrid_platforms_conductor_test/helpers/deployer_test_helpers.rb
878
917
  - spec/hybrid_platforms_conductor_test/helpers/executables_helpers.rb
879
918
  - spec/hybrid_platforms_conductor_test/helpers/nodes_handler_helpers.rb
880
919
  - spec/hybrid_platforms_conductor_test/helpers/platform_handler_helpers.rb
@@ -885,13 +924,14 @@ files:
885
924
  - spec/hybrid_platforms_conductor_test/helpers/serverless_chef_helpers.rb
886
925
  - spec/hybrid_platforms_conductor_test/helpers/services_handler_helpers.rb
887
926
  - spec/hybrid_platforms_conductor_test/helpers/tests_runner_helpers.rb
888
- - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id1.rb
889
- - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id2.rb
890
- - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type/test_plugin_id3.rb
891
- - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type2/test_plugin_id4.rb
927
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id_1.rb
928
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id_2.rb
929
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type/test_plugin_id_3.rb
930
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type_2/test_plugin_id_4.rb
892
931
  - spec/hybrid_platforms_conductor_test/platform_handler_plugins/test.rb
893
- - spec/hybrid_platforms_conductor_test/platform_handler_plugins/test2.rb
932
+ - spec/hybrid_platforms_conductor_test/platform_handler_plugins/test_2.rb
894
933
  - spec/hybrid_platforms_conductor_test/report_plugin.rb
934
+ - spec/hybrid_platforms_conductor_test/rubocop_spec.rb
895
935
  - spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/chef_versions.yml
896
936
  - spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/nodes/node.json
897
937
  - spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/policyfiles/test_policy.rb
@@ -929,6 +969,7 @@ files:
929
969
  - spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/nodes/node2.json
930
970
  - spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/policyfiles/test_policy_1.rb
931
971
  - spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/policyfiles/test_policy_2.rb
972
+ - spec/hybrid_platforms_conductor_test/shared_examples/deployer.rb
932
973
  - spec/hybrid_platforms_conductor_test/test_action.rb
933
974
  - spec/hybrid_platforms_conductor_test/test_connector.rb
934
975
  - spec/hybrid_platforms_conductor_test/test_log_no_read_plugin.rb
@@ -940,6 +981,7 @@ files:
940
981
  - spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
941
982
  - spec/hybrid_platforms_conductor_test/test_plugins/several_checks.rb
942
983
  - spec/hybrid_platforms_conductor_test/test_provisioner.rb
984
+ - spec/hybrid_platforms_conductor_test/test_secrets_reader_plugin.rb
943
985
  - spec/hybrid_platforms_conductor_test/tests_report_plugin.rb
944
986
  - spec/spec_helper.rb
945
987
  - tools/check_md
@@ -954,9 +996,9 @@ require_paths:
954
996
  - lib
955
997
  required_ruby_version: !ruby/object:Gem::Requirement
956
998
  requirements:
957
- - - ">="
999
+ - - "~>"
958
1000
  - !ruby/object:Gem::Version
959
- version: '0'
1001
+ version: '2.6'
960
1002
  required_rubygems_version: !ruby/object:Gem::Requirement
961
1003
  requirements:
962
1004
  - - ">="