hybrid_platforms_conductor 32.3.6

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 (244) hide show
  1. checksums.yaml +7 -0
  2. data/bin/check-node +24 -0
  3. data/bin/deploy +12 -0
  4. data/bin/dump_nodes_json +12 -0
  5. data/bin/free_ips +23 -0
  6. data/bin/free_veids +17 -0
  7. data/bin/get_impacted_nodes +43 -0
  8. data/bin/last_deploys +56 -0
  9. data/bin/nodes_to_deploy +104 -0
  10. data/bin/report +10 -0
  11. data/bin/run +39 -0
  12. data/bin/setup +11 -0
  13. data/bin/ssh_config +14 -0
  14. data/bin/test +13 -0
  15. data/bin/topograph +54 -0
  16. data/lib/hybrid_platforms_conductor/action.rb +82 -0
  17. data/lib/hybrid_platforms_conductor/actions_executor.rb +307 -0
  18. data/lib/hybrid_platforms_conductor/bitbucket.rb +123 -0
  19. data/lib/hybrid_platforms_conductor/cmd_runner.rb +188 -0
  20. data/lib/hybrid_platforms_conductor/cmdb.rb +34 -0
  21. data/lib/hybrid_platforms_conductor/common_config_dsl/bitbucket.rb +78 -0
  22. data/lib/hybrid_platforms_conductor/common_config_dsl/confluence.rb +43 -0
  23. data/lib/hybrid_platforms_conductor/common_config_dsl/file_system_tests.rb +110 -0
  24. data/lib/hybrid_platforms_conductor/common_config_dsl/idempotence_tests.rb +38 -0
  25. data/lib/hybrid_platforms_conductor/config.rb +263 -0
  26. data/lib/hybrid_platforms_conductor/confluence.rb +119 -0
  27. data/lib/hybrid_platforms_conductor/connector.rb +84 -0
  28. data/lib/hybrid_platforms_conductor/credentials.rb +127 -0
  29. data/lib/hybrid_platforms_conductor/current_dir_monitor.rb +42 -0
  30. data/lib/hybrid_platforms_conductor/deployer.rb +598 -0
  31. data/lib/hybrid_platforms_conductor/executable.rb +145 -0
  32. data/lib/hybrid_platforms_conductor/hpc_plugins/action/bash.rb +44 -0
  33. data/lib/hybrid_platforms_conductor/hpc_plugins/action/interactive.rb +44 -0
  34. data/lib/hybrid_platforms_conductor/hpc_plugins/action/my_action.rb.sample +79 -0
  35. data/lib/hybrid_platforms_conductor/hpc_plugins/action/remote_bash.rb +63 -0
  36. data/lib/hybrid_platforms_conductor/hpc_plugins/action/ruby.rb +69 -0
  37. data/lib/hybrid_platforms_conductor/hpc_plugins/action/scp.rb +61 -0
  38. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/config.rb +78 -0
  39. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_ip.rb +104 -0
  40. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_keys.rb +114 -0
  41. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/my_cmdb.rb.sample +129 -0
  42. data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/platform_handlers.rb +66 -0
  43. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/my_connector.rb.sample +156 -0
  44. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +702 -0
  45. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/platform_handler_plugin.rb.sample +292 -0
  46. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/docker.rb +148 -0
  47. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/my_provisioner.rb.sample +103 -0
  48. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/podman.rb +125 -0
  49. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb +522 -0
  50. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/proxmox_waiter.rb +707 -0
  51. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/reserve_proxmox_container +122 -0
  52. data/lib/hybrid_platforms_conductor/hpc_plugins/report/confluence.rb +69 -0
  53. data/lib/hybrid_platforms_conductor/hpc_plugins/report/mediawiki.rb +164 -0
  54. data/lib/hybrid_platforms_conductor/hpc_plugins/report/my_report_plugin.rb.sample +88 -0
  55. data/lib/hybrid_platforms_conductor/hpc_plugins/report/stdout.rb +61 -0
  56. data/lib/hybrid_platforms_conductor/hpc_plugins/report/templates/confluence_inventory.html.erb +33 -0
  57. data/lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb +137 -0
  58. data/lib/hybrid_platforms_conductor/hpc_plugins/test/can_be_checked.rb +21 -0
  59. data/lib/hybrid_platforms_conductor/hpc_plugins/test/check_deploy_and_idempotence.rb +112 -0
  60. data/lib/hybrid_platforms_conductor/hpc_plugins/test/check_from_scratch.rb +35 -0
  61. data/lib/hybrid_platforms_conductor/hpc_plugins/test/connection.rb +28 -0
  62. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +44 -0
  63. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_from_scratch.rb +36 -0
  64. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +49 -0
  65. data/lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb +25 -0
  66. data/lib/hybrid_platforms_conductor/hpc_plugins/test/executables.rb +46 -0
  67. data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system.rb +45 -0
  68. data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system_hdfs.rb +45 -0
  69. data/lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb +25 -0
  70. data/lib/hybrid_platforms_conductor/hpc_plugins/test/idempotence.rb +77 -0
  71. data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +38 -0
  72. data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_conf.rb +56 -0
  73. data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_masters_ok.rb +54 -0
  74. data/lib/hybrid_platforms_conductor/hpc_plugins/test/linear_strategy.rb +47 -0
  75. data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +82 -0
  76. data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +120 -0
  77. data/lib/hybrid_platforms_conductor/hpc_plugins/test/my_test_plugin.rb.sample +143 -0
  78. data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +74 -0
  79. data/lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb +85 -0
  80. data/lib/hybrid_platforms_conductor/hpc_plugins/test/private_ips.rb +38 -0
  81. data/lib/hybrid_platforms_conductor/hpc_plugins/test/public_ips.rb +38 -0
  82. data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre-meltdown-checker.sh +1930 -0
  83. data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +56 -0
  84. data/lib/hybrid_platforms_conductor/hpc_plugins/test/veids.rb +31 -0
  85. data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +159 -0
  86. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb +122 -0
  87. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/my_test_report.rb.sample +48 -0
  88. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/stdout.rb +120 -0
  89. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/templates/_confluence_errors_status.html.erb +46 -0
  90. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/templates/_confluence_gauge.html.erb +49 -0
  91. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/templates/confluence.html.erb +242 -0
  92. data/lib/hybrid_platforms_conductor/io_router.rb +70 -0
  93. data/lib/hybrid_platforms_conductor/json_dumper.rb +88 -0
  94. data/lib/hybrid_platforms_conductor/logger_helpers.rb +319 -0
  95. data/lib/hybrid_platforms_conductor/mutex_dir +76 -0
  96. data/lib/hybrid_platforms_conductor/nodes_handler.rb +597 -0
  97. data/lib/hybrid_platforms_conductor/parallel_threads.rb +97 -0
  98. data/lib/hybrid_platforms_conductor/platform_handler.rb +188 -0
  99. data/lib/hybrid_platforms_conductor/platforms_handler.rb +118 -0
  100. data/lib/hybrid_platforms_conductor/plugin.rb +53 -0
  101. data/lib/hybrid_platforms_conductor/plugins.rb +101 -0
  102. data/lib/hybrid_platforms_conductor/provisioner.rb +181 -0
  103. data/lib/hybrid_platforms_conductor/report.rb +31 -0
  104. data/lib/hybrid_platforms_conductor/reports_handler.rb +84 -0
  105. data/lib/hybrid_platforms_conductor/services_handler.rb +274 -0
  106. data/lib/hybrid_platforms_conductor/test.rb +141 -0
  107. data/lib/hybrid_platforms_conductor/test_by_service.rb +22 -0
  108. data/lib/hybrid_platforms_conductor/test_report.rb +282 -0
  109. data/lib/hybrid_platforms_conductor/tests_runner.rb +590 -0
  110. data/lib/hybrid_platforms_conductor/thycotic.rb +92 -0
  111. data/lib/hybrid_platforms_conductor/topographer.rb +859 -0
  112. data/lib/hybrid_platforms_conductor/topographer/plugin.rb +20 -0
  113. data/lib/hybrid_platforms_conductor/topographer/plugins/graphviz.rb +127 -0
  114. data/lib/hybrid_platforms_conductor/topographer/plugins/json.rb +72 -0
  115. data/lib/hybrid_platforms_conductor/topographer/plugins/my_topographer_output_plugin.rb.sample +37 -0
  116. data/lib/hybrid_platforms_conductor/topographer/plugins/svg.rb +30 -0
  117. data/lib/hybrid_platforms_conductor/version.rb +5 -0
  118. data/spec/hybrid_platforms_conductor_test.rb +159 -0
  119. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/bash_spec.rb +43 -0
  120. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/interactive_spec.rb +18 -0
  121. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +102 -0
  122. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/ruby_spec.rb +108 -0
  123. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/scp_spec.rb +79 -0
  124. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions_spec.rb +199 -0
  125. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connection_spec.rb +212 -0
  126. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb +125 -0
  127. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/config_dsl_spec.rb +50 -0
  128. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connectable_nodes_spec.rb +28 -0
  129. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb +448 -0
  130. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb +313 -0
  131. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/node_helpers_spec.rb +32 -0
  132. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb +134 -0
  133. data/spec/hybrid_platforms_conductor_test/api/actions_executor/logging_spec.rb +256 -0
  134. data/spec/hybrid_platforms_conductor_test/api/actions_executor/parallel_spec.rb +338 -0
  135. data/spec/hybrid_platforms_conductor_test/api/actions_executor/timeout_spec.rb +101 -0
  136. data/spec/hybrid_platforms_conductor_test/api/cmd_runner_spec.rb +165 -0
  137. data/spec/hybrid_platforms_conductor_test/api/config_spec.rb +238 -0
  138. data/spec/hybrid_platforms_conductor_test/api/deployer/check_spec.rb +9 -0
  139. data/spec/hybrid_platforms_conductor_test/api/deployer/deploy_spec.rb +243 -0
  140. data/spec/hybrid_platforms_conductor_test/api/deployer/parse_deploy_output_spec.rb +104 -0
  141. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioner_spec.rb +131 -0
  142. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/docker/Dockerfile +10 -0
  143. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/docker_spec.rb +123 -0
  144. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/podman_spec.rb +211 -0
  145. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/config_dsl_spec.rb +126 -0
  146. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/create_spec.rb +290 -0
  147. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/destroy_spec.rb +43 -0
  148. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/ip_spec.rb +60 -0
  149. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/proxmox.json +3 -0
  150. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/destroy_vm_spec.rb +82 -0
  151. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/expired_containers_spec.rb +786 -0
  152. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/ips_assignment_spec.rb +112 -0
  153. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/other_lxc_containers_resources_spec.rb +190 -0
  154. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/pve_node_resources_spec.rb +200 -0
  155. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/retries_spec.rb +35 -0
  156. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/vm_ids_assignment_spec.rb +67 -0
  157. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/start_spec.rb +79 -0
  158. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/state_spec.rb +28 -0
  159. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/stop_spec.rb +41 -0
  160. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/config_spec.rb +33 -0
  161. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_ip_spec.rb +64 -0
  162. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_keys_spec.rb +133 -0
  163. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/platform_handlers_spec.rb +19 -0
  164. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs_plugins_api_spec.rb +446 -0
  165. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/common_spec.rb +127 -0
  166. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/git_diff_impacts_spec.rb +318 -0
  167. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/nodes_selectors_spec.rb +132 -0
  168. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/platform_handlers_plugins_api_spec.rb +60 -0
  169. data/spec/hybrid_platforms_conductor_test/api/nodes_handler/several_platforms_spec.rb +58 -0
  170. data/spec/hybrid_platforms_conductor_test/api/platform_handler_spec.rb +97 -0
  171. data/spec/hybrid_platforms_conductor_test/api/platforms_handler_spec.rb +104 -0
  172. data/spec/hybrid_platforms_conductor_test/api/plugins_spec.rb +243 -0
  173. data/spec/hybrid_platforms_conductor_test/api/reports_handler_spec.rb +44 -0
  174. data/spec/hybrid_platforms_conductor_test/api/services_handler/actions_to_deploy_spec.rb +121 -0
  175. data/spec/hybrid_platforms_conductor_test/api/services_handler/deploy_allowed_spec.rb +142 -0
  176. data/spec/hybrid_platforms_conductor_test/api/services_handler/log_info_spec.rb +101 -0
  177. data/spec/hybrid_platforms_conductor_test/api/services_handler/package_spec.rb +388 -0
  178. data/spec/hybrid_platforms_conductor_test/api/services_handler/parse_deploy_output_spec.rb +274 -0
  179. data/spec/hybrid_platforms_conductor_test/api/services_handler/prepare_for_deploy_spec.rb +264 -0
  180. data/spec/hybrid_platforms_conductor_test/api/tests_runner/common_spec.rb +194 -0
  181. data/spec/hybrid_platforms_conductor_test/api/tests_runner/global_spec.rb +37 -0
  182. data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_check_spec.rb +194 -0
  183. data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_spec.rb +137 -0
  184. data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_ssh_spec.rb +257 -0
  185. data/spec/hybrid_platforms_conductor_test/api/tests_runner/platform_spec.rb +110 -0
  186. data/spec/hybrid_platforms_conductor_test/api/tests_runner/reports_spec.rb +367 -0
  187. data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/bitbucket_conf_spec.rb +111 -0
  188. data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_reports_plugins/confluence_spec.rb +29 -0
  189. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb.rb +166 -0
  190. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb2.rb +93 -0
  191. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others.rb +60 -0
  192. data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others2.rb +58 -0
  193. data/spec/hybrid_platforms_conductor_test/executables/check-node_spec.rb +35 -0
  194. data/spec/hybrid_platforms_conductor_test/executables/deploy_spec.rb +35 -0
  195. data/spec/hybrid_platforms_conductor_test/executables/get_impacted_nodes_spec.rb +158 -0
  196. data/spec/hybrid_platforms_conductor_test/executables/last_deploys_spec.rb +173 -0
  197. data/spec/hybrid_platforms_conductor_test/executables/nodes_to_deploy_spec.rb +283 -0
  198. data/spec/hybrid_platforms_conductor_test/executables/options/actions_executor_spec.rb +28 -0
  199. data/spec/hybrid_platforms_conductor_test/executables/options/cmd_runner_spec.rb +28 -0
  200. data/spec/hybrid_platforms_conductor_test/executables/options/common_spec.rb +67 -0
  201. data/spec/hybrid_platforms_conductor_test/executables/options/deployer_spec.rb +251 -0
  202. data/spec/hybrid_platforms_conductor_test/executables/options/nodes_handler_spec.rb +111 -0
  203. data/spec/hybrid_platforms_conductor_test/executables/options/nodes_selectors_spec.rb +71 -0
  204. data/spec/hybrid_platforms_conductor_test/executables/options/reports_handler_spec.rb +54 -0
  205. data/spec/hybrid_platforms_conductor_test/executables/options/tests_runner_spec.rb +139 -0
  206. data/spec/hybrid_platforms_conductor_test/executables/report_spec.rb +60 -0
  207. data/spec/hybrid_platforms_conductor_test/executables/run_spec.rb +173 -0
  208. data/spec/hybrid_platforms_conductor_test/executables/ssh_config_spec.rb +35 -0
  209. data/spec/hybrid_platforms_conductor_test/executables/test_spec.rb +41 -0
  210. data/spec/hybrid_platforms_conductor_test/helpers/actions_executor_helpers.rb +98 -0
  211. data/spec/hybrid_platforms_conductor_test/helpers/cmd_runner_helpers.rb +92 -0
  212. data/spec/hybrid_platforms_conductor_test/helpers/cmdb_helpers.rb +37 -0
  213. data/spec/hybrid_platforms_conductor_test/helpers/config_helpers.rb +20 -0
  214. data/spec/hybrid_platforms_conductor_test/helpers/connector_ssh_helpers.rb +130 -0
  215. data/spec/hybrid_platforms_conductor_test/helpers/deployer_helpers.rb +149 -0
  216. data/spec/hybrid_platforms_conductor_test/helpers/deployer_test_helpers.rb +812 -0
  217. data/spec/hybrid_platforms_conductor_test/helpers/executables_helpers.rb +96 -0
  218. data/spec/hybrid_platforms_conductor_test/helpers/nodes_handler_helpers.rb +20 -0
  219. data/spec/hybrid_platforms_conductor_test/helpers/platform_handler_helpers.rb +35 -0
  220. data/spec/hybrid_platforms_conductor_test/helpers/platforms_handler_helpers.rb +127 -0
  221. data/spec/hybrid_platforms_conductor_test/helpers/plugins_helpers.rb +48 -0
  222. data/spec/hybrid_platforms_conductor_test/helpers/provisioner_proxmox_helpers.rb +789 -0
  223. data/spec/hybrid_platforms_conductor_test/helpers/reports_handler_helpers.rb +29 -0
  224. data/spec/hybrid_platforms_conductor_test/helpers/services_handler_helpers.rb +20 -0
  225. data/spec/hybrid_platforms_conductor_test/helpers/tests_runner_helpers.rb +38 -0
  226. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id1.rb +22 -0
  227. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id2.rb +22 -0
  228. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type/test_plugin_id3.rb +26 -0
  229. data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type2/test_plugin_id4.rb +26 -0
  230. data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/test.rb +225 -0
  231. data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/test2.rb +11 -0
  232. data/spec/hybrid_platforms_conductor_test/report_plugin.rb +35 -0
  233. data/spec/hybrid_platforms_conductor_test/test_action.rb +66 -0
  234. data/spec/hybrid_platforms_conductor_test/test_connector.rb +151 -0
  235. data/spec/hybrid_platforms_conductor_test/test_plugins/global.rb +30 -0
  236. data/spec/hybrid_platforms_conductor_test/test_plugins/node.rb +53 -0
  237. data/spec/hybrid_platforms_conductor_test/test_plugins/node_check.rb +47 -0
  238. data/spec/hybrid_platforms_conductor_test/test_plugins/node_ssh.rb +42 -0
  239. data/spec/hybrid_platforms_conductor_test/test_plugins/platform.rb +50 -0
  240. data/spec/hybrid_platforms_conductor_test/test_plugins/several_checks.rb +50 -0
  241. data/spec/hybrid_platforms_conductor_test/test_provisioner.rb +95 -0
  242. data/spec/hybrid_platforms_conductor_test/tests_report_plugin.rb +49 -0
  243. data/spec/spec_helper.rb +111 -0
  244. metadata +566 -0
@@ -0,0 +1,50 @@
1
+ module HybridPlatformsConductorTest
2
+
3
+ module TestPlugins
4
+
5
+ # Test plugin at several levels
6
+ class SeveralChecks < HybridPlatformsConductor::Test
7
+
8
+ class << self
9
+
10
+ # Sequences of tests
11
+ # Array< [ Symbol, String, String, String ] >
12
+ # Array< [ test_name, platform, node, comment ] >
13
+ attr_accessor :runs
14
+
15
+ end
16
+
17
+ # Check my_test_plugin.rb.sample documentation for signature details.
18
+ def test
19
+ SeveralChecks.runs << [@name, '', '', 'Global test']
20
+ end
21
+
22
+ # Check my_test_plugin.rb.sample documentation for signature details.
23
+ def test_on_platform
24
+ SeveralChecks.runs << [@name, @platform.name, '', 'Platform test']
25
+ end
26
+
27
+ # Check my_test_plugin.rb.sample documentation for signature details.
28
+ def test_for_node
29
+ SeveralChecks.runs << [@name, @node, 'Node test']
30
+ end
31
+
32
+ # Check my_test_plugin.rb.sample documentation for signature details.
33
+ def test_on_node
34
+ {
35
+ "test_#{@node}.sh" => proc do |stdout, stderr, exit_code|
36
+ SeveralChecks.runs << [@name, @node, "Node SSH test: #{stdout.join("\n")} - #{stderr.join("\n")}"]
37
+ end
38
+ }
39
+ end
40
+
41
+ # Check my_test_plugin.rb.sample documentation for signature details.
42
+ def test_on_check_node(stdout, stderr, exit_status)
43
+ SeveralChecks.runs << [@name, @node, "Node check-node test: #{stdout}"]
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+
50
+ end
@@ -0,0 +1,95 @@
1
+ require 'hybrid_platforms_conductor/provisioner'
2
+
3
+ module HybridPlatformsConductorTest
4
+
5
+ class TestProvisioner < HybridPlatformsConductor::Provisioner
6
+
7
+ class << self
8
+
9
+ # Array<Symbol>: Mocked states to be returned
10
+ attr_accessor :mocked_states
11
+
12
+ # String: Mocked IP to be returned
13
+ attr_accessor :mocked_ip
14
+
15
+ # Integer: Mocked default_timeout to be returned
16
+ attr_accessor :mocked_default_timeout
17
+
18
+ end
19
+
20
+ # Array<Symbol>: Actions that have been performed on a provisioner
21
+ attr_reader :actions
22
+
23
+ # String: Node being provisioned
24
+ attr_reader :node
25
+
26
+ # String: Environment for which the node is being provisioned
27
+ attr_reader :environment
28
+
29
+ # Create an instance.
30
+ # Reuse an existing one if it already exists.
31
+ # [API] - This method is mandatory
32
+ def create
33
+ @actions = [] unless defined?(@actions)
34
+ @actions << :create
35
+ end
36
+
37
+ # Start an instance
38
+ # Prerequisite: create has been called before
39
+ # [API] - This method is mandatory
40
+ def start
41
+ @actions << :start
42
+ end
43
+
44
+ # Stop an instance
45
+ # Prerequisite: create has been called before
46
+ # [API] - This method is mandatory
47
+ def stop
48
+ @actions << :stop
49
+ end
50
+
51
+ # Destroy an instance
52
+ # Prerequisite: create has been called before
53
+ # [API] - This method is mandatory
54
+ def destroy
55
+ @actions << :destroy
56
+ end
57
+
58
+ # Return the state of an instance
59
+ # [API] - This method is mandatory
60
+ #
61
+ # Result::
62
+ # * Symbol: The state the instance is in. Possible values are:
63
+ # * *:missing*: The instance does not exist
64
+ # * *:created*: The instance has been created but is not running
65
+ # * *:running*: The instance is running
66
+ # * *:exited*: The instance has run and is now stopped
67
+ # * *:error*: The instance is in error
68
+ def state
69
+ @actions << :state
70
+ self.class.mocked_states.shift
71
+ end
72
+
73
+ # Return the IP address of an instance.
74
+ # Prerequisite: create has been called before.
75
+ # [API] - This method is optional
76
+ #
77
+ # Result::
78
+ # * String or nil: The instance IP address, or nil if this information is not relevant
79
+ def ip
80
+ @actions << :ip
81
+ self.class.mocked_ip
82
+ end
83
+
84
+ # Return the default timeout to apply when waiting for an instance to be started/stopped...
85
+ # [API] - This method is optional
86
+ #
87
+ # Result::
88
+ # * Integer: The timeout in seconds
89
+ def default_timeout
90
+ self.class.mocked_default_timeout
91
+ end
92
+
93
+ end
94
+
95
+ end
@@ -0,0 +1,49 @@
1
+ module HybridPlatformsConductorTest
2
+
3
+ # Report plugins for tests
4
+ class TestsReportPlugin < HybridPlatformsConductor::TestReport
5
+
6
+ class << self
7
+ # Reports (that can be compared), per report name
8
+ # Array< Hash<Symbol, Object> >
9
+ attr_accessor :reports
10
+ end
11
+
12
+ # Handle tests reports
13
+ def report
14
+ TestsReportPlugin.reports << {
15
+ global_tests: report_from(global_tests),
16
+ platform_tests: report_from(platform_tests),
17
+ 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],
24
+ nodes_by_nodes_list: nodes_by_nodes_list
25
+ }
26
+ end
27
+
28
+ private
29
+
30
+ # Get a report from a tests list
31
+ #
32
+ # Parameters::
33
+ # * *tests* (Array<Test>): List of tests
34
+ # Result::
35
+ # Array<Object>: The report, that can be comparable in a list
36
+ def report_from(tests)
37
+ tests.map do |test|
38
+ report = [test.name, test.executed?]
39
+ report << test.platform.name unless test.platform.nil?
40
+ report << test.node unless test.node.nil?
41
+ # Only report the first line of the error messages, as some contain callstacks
42
+ report << test.errors.map { |error| error.split("\n").first } unless test.errors.empty?
43
+ report
44
+ end
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,111 @@
1
+ require 'hybrid_platforms_conductor_test'
2
+
3
+ # This file was generated by the `rspec --init` command. Conventionally, all
4
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
5
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
6
+ # this file to always be loaded, without a need to explicitly require it in any
7
+ # files.
8
+ #
9
+ # Given that it is always loaded, you are encouraged to keep this file as
10
+ # light-weight as possible. Requiring heavyweight dependencies from this file
11
+ # will add to the boot time of your test suite on EVERY test run, even for an
12
+ # individual file that may not need all of that loaded. Instead, consider making
13
+ # a separate helper file that requires the additional dependencies and performs
14
+ # the additional setup, and require it from the spec files that actually need
15
+ # it.
16
+ #
17
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
18
+ RSpec.configure do |config|
19
+
20
+ # rspec-expectations config goes here. You can use an alternate
21
+ # assertion/expectation library such as wrong or the stdlib/minitest
22
+ # assertions if you prefer.
23
+ config.expect_with :rspec do |expectations|
24
+
25
+ # This option will default to `true` in RSpec 4. It makes the `description`
26
+ # and `failure_message` of custom matchers include text for helper methods
27
+ # defined using `chain`, e.g.:
28
+ # be_bigger_than(2).and_smaller_than(4).description
29
+ # # => "be bigger than 2 and smaller than 4"
30
+ # ...rather than:
31
+ # # => "be bigger than 2"
32
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
33
+
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
36
+
37
+ end
38
+
39
+ # Add our own helpers
40
+ config.include HybridPlatformsConductorTest::Helpers
41
+
42
+ # rspec-mocks config goes here. You can use an alternate test double
43
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
44
+ config.mock_with :rspec do |mocks|
45
+ # Prevents you from mocking or stubbing a method that does not exist on
46
+ # a real object. This is generally recommended, and will default to
47
+ # `true` in RSpec 4.
48
+ mocks.verify_partial_doubles = true
49
+ end
50
+
51
+ # This option will default to `:apply_to_host_groups` in RSpec 4 (and will
52
+ # have no way to turn it off -- the option exists only for backwards
53
+ # compatibility in RSpec 3). It causes shared context metadata to be
54
+ # inherited by the metadata hash of host groups and examples, rather than
55
+ # triggering implicit auto-inclusion in groups with matching metadata.
56
+ config.shared_context_metadata_behavior = :apply_to_host_groups
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
61
+ # This allows you to limit a spec run to individual examples or groups
62
+ # you care about by tagging them with `:focus` metadata. When nothing
63
+ # is tagged with `:focus`, all examples get run. RSpec also provides
64
+ # aliases for `it`, `describe`, and `context` that include `:focus`
65
+ # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
66
+ config.filter_run_when_matching :focus
67
+
68
+ # Allows RSpec to persist some state between runs in order to support
69
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
70
+ # you configure your source control system to ignore this file.
71
+ config.example_status_persistence_file_path = "spec/examples.txt"
72
+
73
+ # Limits the available syntax to the non-monkey patched syntax that is
74
+ # recommended. For more details, see:
75
+ # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
76
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
77
+ # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
78
+ config.disable_monkey_patching!
79
+
80
+ # This setting enables warnings. It's recommended, but in some cases may
81
+ # be too noisy due to issues in dependencies.
82
+ config.warnings = true
83
+
84
+ # Many RSpec users commonly either run the entire suite or an individual
85
+ # file, and it's useful to allow more verbose output when running an
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
93
+
94
+ # Print the 10 slowest examples and example groups at the
95
+ # end of the spec run, to help surface which specs are running
96
+ # particularly slow.
97
+ config.profile_examples = 10
98
+
99
+ # Run specs in random order to surface order dependencies. If you find an
100
+ # order dependency and want to debug it, you can fix the order by providing
101
+ # the seed, which is printed after each run.
102
+ # --seed 1234
103
+ config.order = :random
104
+
105
+ # Seed global randomization in this process using the `--seed` CLI option.
106
+ # Setting this allows you to use `--seed` to deterministically reproduce
107
+ # test failures related to randomization by passing the same `--seed` value
108
+ # as the one that triggered the failure.
109
+ Kernel.srand config.seed
110
+ =end
111
+ end
metadata ADDED
@@ -0,0 +1,566 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hybrid_platforms_conductor
3
+ version: !ruby/object:Gem::Version
4
+ version: 32.3.6
5
+ platform: ruby
6
+ authors:
7
+ - Muriel Salvan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-02-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: range_operators
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: terminal-table
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: ipaddress
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.8'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: ruby-progressbar
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.10'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: git
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.5'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: erubis
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.7'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.7'
97
+ - !ruby/object:Gem::Dependency
98
+ name: docker-api
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.34'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.34'
111
+ - !ruby/object:Gem::Dependency
112
+ name: net-ssh
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '5.2'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '5.2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: colorize
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.8'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.8'
139
+ - !ruby/object:Gem::Dependency
140
+ name: tty-command
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.8'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.8'
153
+ - !ruby/object:Gem::Dependency
154
+ name: nokogiri
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.10'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '1.10'
167
+ - !ruby/object:Gem::Dependency
168
+ name: netrc
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.11'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.11'
181
+ - !ruby/object:Gem::Dependency
182
+ name: futex
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '0.8'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0.8'
195
+ - !ruby/object:Gem::Dependency
196
+ name: savon
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '2.12'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '2.12'
209
+ - !ruby/object:Gem::Dependency
210
+ name: proxmox
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '0.0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '0.0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: cleanroom
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '1.0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '1.0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: ice_cube
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '0.16'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '0.16'
251
+ - !ruby/object:Gem::Dependency
252
+ name: rspec
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: '3.8'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: '3.8'
265
+ - !ruby/object:Gem::Dependency
266
+ name: sem_ver_components
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: '0.0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: '0.0'
279
+ description: Provides a complete toolset to help DevOps maintain, deploy, monitor
280
+ and test multiple platforms using various technologies
281
+ email:
282
+ - muriel@x-aeon.com
283
+ executables:
284
+ - run
285
+ - last_deploys
286
+ - dump_nodes_json
287
+ - test
288
+ - nodes_to_deploy
289
+ - check-node
290
+ - deploy
291
+ - free_veids
292
+ - ssh_config
293
+ - report
294
+ - topograph
295
+ - setup
296
+ - free_ips
297
+ - get_impacted_nodes
298
+ extensions: []
299
+ extra_rdoc_files: []
300
+ files:
301
+ - bin/check-node
302
+ - bin/deploy
303
+ - bin/dump_nodes_json
304
+ - bin/free_ips
305
+ - bin/free_veids
306
+ - bin/get_impacted_nodes
307
+ - bin/last_deploys
308
+ - bin/nodes_to_deploy
309
+ - bin/report
310
+ - bin/run
311
+ - bin/setup
312
+ - bin/ssh_config
313
+ - bin/test
314
+ - bin/topograph
315
+ - lib/hybrid_platforms_conductor/action.rb
316
+ - lib/hybrid_platforms_conductor/actions_executor.rb
317
+ - lib/hybrid_platforms_conductor/bitbucket.rb
318
+ - lib/hybrid_platforms_conductor/cmd_runner.rb
319
+ - lib/hybrid_platforms_conductor/cmdb.rb
320
+ - lib/hybrid_platforms_conductor/common_config_dsl/bitbucket.rb
321
+ - lib/hybrid_platforms_conductor/common_config_dsl/confluence.rb
322
+ - lib/hybrid_platforms_conductor/common_config_dsl/file_system_tests.rb
323
+ - lib/hybrid_platforms_conductor/common_config_dsl/idempotence_tests.rb
324
+ - lib/hybrid_platforms_conductor/config.rb
325
+ - lib/hybrid_platforms_conductor/confluence.rb
326
+ - lib/hybrid_platforms_conductor/connector.rb
327
+ - lib/hybrid_platforms_conductor/credentials.rb
328
+ - lib/hybrid_platforms_conductor/current_dir_monitor.rb
329
+ - lib/hybrid_platforms_conductor/deployer.rb
330
+ - lib/hybrid_platforms_conductor/executable.rb
331
+ - lib/hybrid_platforms_conductor/hpc_plugins/action/bash.rb
332
+ - lib/hybrid_platforms_conductor/hpc_plugins/action/interactive.rb
333
+ - lib/hybrid_platforms_conductor/hpc_plugins/action/my_action.rb.sample
334
+ - lib/hybrid_platforms_conductor/hpc_plugins/action/remote_bash.rb
335
+ - lib/hybrid_platforms_conductor/hpc_plugins/action/ruby.rb
336
+ - lib/hybrid_platforms_conductor/hpc_plugins/action/scp.rb
337
+ - lib/hybrid_platforms_conductor/hpc_plugins/cmdb/config.rb
338
+ - lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_ip.rb
339
+ - lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_keys.rb
340
+ - lib/hybrid_platforms_conductor/hpc_plugins/cmdb/my_cmdb.rb.sample
341
+ - lib/hybrid_platforms_conductor/hpc_plugins/cmdb/platform_handlers.rb
342
+ - lib/hybrid_platforms_conductor/hpc_plugins/connector/my_connector.rb.sample
343
+ - lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb
344
+ - lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/platform_handler_plugin.rb.sample
345
+ - lib/hybrid_platforms_conductor/hpc_plugins/provisioner/docker.rb
346
+ - lib/hybrid_platforms_conductor/hpc_plugins/provisioner/my_provisioner.rb.sample
347
+ - lib/hybrid_platforms_conductor/hpc_plugins/provisioner/podman.rb
348
+ - lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb
349
+ - lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/proxmox_waiter.rb
350
+ - lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/reserve_proxmox_container
351
+ - lib/hybrid_platforms_conductor/hpc_plugins/report/confluence.rb
352
+ - lib/hybrid_platforms_conductor/hpc_plugins/report/mediawiki.rb
353
+ - lib/hybrid_platforms_conductor/hpc_plugins/report/my_report_plugin.rb.sample
354
+ - lib/hybrid_platforms_conductor/hpc_plugins/report/stdout.rb
355
+ - lib/hybrid_platforms_conductor/hpc_plugins/report/templates/confluence_inventory.html.erb
356
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb
357
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/can_be_checked.rb
358
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/check_deploy_and_idempotence.rb
359
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/check_from_scratch.rb
360
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/connection.rb
361
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb
362
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_from_scratch.rb
363
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb
364
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb
365
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/executables.rb
366
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/file_system.rb
367
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/file_system_hdfs.rb
368
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb
369
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/idempotence.rb
370
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb
371
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_conf.rb
372
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_masters_ok.rb
373
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/linear_strategy.rb
374
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb
375
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb
376
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/my_test_plugin.rb.sample
377
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb
378
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb
379
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/private_ips.rb
380
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/public_ips.rb
381
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/spectre-meltdown-checker.sh
382
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb
383
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/veids.rb
384
+ - lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb
385
+ - lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb
386
+ - lib/hybrid_platforms_conductor/hpc_plugins/test_report/my_test_report.rb.sample
387
+ - lib/hybrid_platforms_conductor/hpc_plugins/test_report/stdout.rb
388
+ - lib/hybrid_platforms_conductor/hpc_plugins/test_report/templates/_confluence_errors_status.html.erb
389
+ - lib/hybrid_platforms_conductor/hpc_plugins/test_report/templates/_confluence_gauge.html.erb
390
+ - lib/hybrid_platforms_conductor/hpc_plugins/test_report/templates/confluence.html.erb
391
+ - lib/hybrid_platforms_conductor/io_router.rb
392
+ - lib/hybrid_platforms_conductor/json_dumper.rb
393
+ - lib/hybrid_platforms_conductor/logger_helpers.rb
394
+ - lib/hybrid_platforms_conductor/mutex_dir
395
+ - lib/hybrid_platforms_conductor/nodes_handler.rb
396
+ - lib/hybrid_platforms_conductor/parallel_threads.rb
397
+ - lib/hybrid_platforms_conductor/platform_handler.rb
398
+ - lib/hybrid_platforms_conductor/platforms_handler.rb
399
+ - lib/hybrid_platforms_conductor/plugin.rb
400
+ - lib/hybrid_platforms_conductor/plugins.rb
401
+ - lib/hybrid_platforms_conductor/provisioner.rb
402
+ - lib/hybrid_platforms_conductor/report.rb
403
+ - lib/hybrid_platforms_conductor/reports_handler.rb
404
+ - lib/hybrid_platforms_conductor/services_handler.rb
405
+ - lib/hybrid_platforms_conductor/test.rb
406
+ - lib/hybrid_platforms_conductor/test_by_service.rb
407
+ - lib/hybrid_platforms_conductor/test_report.rb
408
+ - lib/hybrid_platforms_conductor/tests_runner.rb
409
+ - lib/hybrid_platforms_conductor/thycotic.rb
410
+ - lib/hybrid_platforms_conductor/topographer.rb
411
+ - lib/hybrid_platforms_conductor/topographer/plugin.rb
412
+ - lib/hybrid_platforms_conductor/topographer/plugins/graphviz.rb
413
+ - lib/hybrid_platforms_conductor/topographer/plugins/json.rb
414
+ - lib/hybrid_platforms_conductor/topographer/plugins/my_topographer_output_plugin.rb.sample
415
+ - lib/hybrid_platforms_conductor/topographer/plugins/svg.rb
416
+ - lib/hybrid_platforms_conductor/version.rb
417
+ - spec/hybrid_platforms_conductor_test.rb
418
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/actions/bash_spec.rb
419
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/actions/interactive_spec.rb
420
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb
421
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/actions/ruby_spec.rb
422
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/actions/scp_spec.rb
423
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/actions_spec.rb
424
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connection_spec.rb
425
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb
426
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/config_dsl_spec.rb
427
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connectable_nodes_spec.rb
428
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb
429
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb
430
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/node_helpers_spec.rb
431
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb
432
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/logging_spec.rb
433
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/parallel_spec.rb
434
+ - spec/hybrid_platforms_conductor_test/api/actions_executor/timeout_spec.rb
435
+ - spec/hybrid_platforms_conductor_test/api/cmd_runner_spec.rb
436
+ - spec/hybrid_platforms_conductor_test/api/config_spec.rb
437
+ - spec/hybrid_platforms_conductor_test/api/deployer/check_spec.rb
438
+ - spec/hybrid_platforms_conductor_test/api/deployer/deploy_spec.rb
439
+ - spec/hybrid_platforms_conductor_test/api/deployer/parse_deploy_output_spec.rb
440
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioner_spec.rb
441
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/docker/Dockerfile
442
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/docker_spec.rb
443
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/podman_spec.rb
444
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/config_dsl_spec.rb
445
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/create_spec.rb
446
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/destroy_spec.rb
447
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/ip_spec.rb
448
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/proxmox.json
449
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/destroy_vm_spec.rb
450
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/expired_containers_spec.rb
451
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/ips_assignment_spec.rb
452
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/other_lxc_containers_resources_spec.rb
453
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/pve_node_resources_spec.rb
454
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/retries_spec.rb
455
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/vm_ids_assignment_spec.rb
456
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/start_spec.rb
457
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/state_spec.rb
458
+ - spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/stop_spec.rb
459
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/config_spec.rb
460
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_ip_spec.rb
461
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_keys_spec.rb
462
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/platform_handlers_spec.rb
463
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs_plugins_api_spec.rb
464
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/common_spec.rb
465
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/git_diff_impacts_spec.rb
466
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/nodes_selectors_spec.rb
467
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/platform_handlers_plugins_api_spec.rb
468
+ - spec/hybrid_platforms_conductor_test/api/nodes_handler/several_platforms_spec.rb
469
+ - spec/hybrid_platforms_conductor_test/api/platform_handler_spec.rb
470
+ - spec/hybrid_platforms_conductor_test/api/platforms_handler_spec.rb
471
+ - spec/hybrid_platforms_conductor_test/api/plugins_spec.rb
472
+ - spec/hybrid_platforms_conductor_test/api/reports_handler_spec.rb
473
+ - spec/hybrid_platforms_conductor_test/api/services_handler/actions_to_deploy_spec.rb
474
+ - spec/hybrid_platforms_conductor_test/api/services_handler/deploy_allowed_spec.rb
475
+ - spec/hybrid_platforms_conductor_test/api/services_handler/log_info_spec.rb
476
+ - spec/hybrid_platforms_conductor_test/api/services_handler/package_spec.rb
477
+ - spec/hybrid_platforms_conductor_test/api/services_handler/parse_deploy_output_spec.rb
478
+ - spec/hybrid_platforms_conductor_test/api/services_handler/prepare_for_deploy_spec.rb
479
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/common_spec.rb
480
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/global_spec.rb
481
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/node_check_spec.rb
482
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/node_spec.rb
483
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/node_ssh_spec.rb
484
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/platform_spec.rb
485
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/reports_spec.rb
486
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/bitbucket_conf_spec.rb
487
+ - spec/hybrid_platforms_conductor_test/api/tests_runner/test_reports_plugins/confluence_spec.rb
488
+ - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb.rb
489
+ - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb2.rb
490
+ - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others.rb
491
+ - spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others2.rb
492
+ - spec/hybrid_platforms_conductor_test/executables/check-node_spec.rb
493
+ - spec/hybrid_platforms_conductor_test/executables/deploy_spec.rb
494
+ - spec/hybrid_platforms_conductor_test/executables/get_impacted_nodes_spec.rb
495
+ - spec/hybrid_platforms_conductor_test/executables/last_deploys_spec.rb
496
+ - spec/hybrid_platforms_conductor_test/executables/nodes_to_deploy_spec.rb
497
+ - spec/hybrid_platforms_conductor_test/executables/options/actions_executor_spec.rb
498
+ - spec/hybrid_platforms_conductor_test/executables/options/cmd_runner_spec.rb
499
+ - spec/hybrid_platforms_conductor_test/executables/options/common_spec.rb
500
+ - spec/hybrid_platforms_conductor_test/executables/options/deployer_spec.rb
501
+ - spec/hybrid_platforms_conductor_test/executables/options/nodes_handler_spec.rb
502
+ - spec/hybrid_platforms_conductor_test/executables/options/nodes_selectors_spec.rb
503
+ - spec/hybrid_platforms_conductor_test/executables/options/reports_handler_spec.rb
504
+ - spec/hybrid_platforms_conductor_test/executables/options/tests_runner_spec.rb
505
+ - spec/hybrid_platforms_conductor_test/executables/report_spec.rb
506
+ - spec/hybrid_platforms_conductor_test/executables/run_spec.rb
507
+ - spec/hybrid_platforms_conductor_test/executables/ssh_config_spec.rb
508
+ - spec/hybrid_platforms_conductor_test/executables/test_spec.rb
509
+ - spec/hybrid_platforms_conductor_test/helpers/actions_executor_helpers.rb
510
+ - spec/hybrid_platforms_conductor_test/helpers/cmd_runner_helpers.rb
511
+ - spec/hybrid_platforms_conductor_test/helpers/cmdb_helpers.rb
512
+ - spec/hybrid_platforms_conductor_test/helpers/config_helpers.rb
513
+ - spec/hybrid_platforms_conductor_test/helpers/connector_ssh_helpers.rb
514
+ - spec/hybrid_platforms_conductor_test/helpers/deployer_helpers.rb
515
+ - spec/hybrid_platforms_conductor_test/helpers/deployer_test_helpers.rb
516
+ - spec/hybrid_platforms_conductor_test/helpers/executables_helpers.rb
517
+ - spec/hybrid_platforms_conductor_test/helpers/nodes_handler_helpers.rb
518
+ - spec/hybrid_platforms_conductor_test/helpers/platform_handler_helpers.rb
519
+ - spec/hybrid_platforms_conductor_test/helpers/platforms_handler_helpers.rb
520
+ - spec/hybrid_platforms_conductor_test/helpers/plugins_helpers.rb
521
+ - spec/hybrid_platforms_conductor_test/helpers/provisioner_proxmox_helpers.rb
522
+ - spec/hybrid_platforms_conductor_test/helpers/reports_handler_helpers.rb
523
+ - spec/hybrid_platforms_conductor_test/helpers/services_handler_helpers.rb
524
+ - spec/hybrid_platforms_conductor_test/helpers/tests_runner_helpers.rb
525
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id1.rb
526
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/test_plugin_id2.rb
527
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type/test_plugin_id3.rb
528
+ - spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type2/test_plugin_id4.rb
529
+ - spec/hybrid_platforms_conductor_test/platform_handler_plugins/test.rb
530
+ - spec/hybrid_platforms_conductor_test/platform_handler_plugins/test2.rb
531
+ - spec/hybrid_platforms_conductor_test/report_plugin.rb
532
+ - spec/hybrid_platforms_conductor_test/test_action.rb
533
+ - spec/hybrid_platforms_conductor_test/test_connector.rb
534
+ - spec/hybrid_platforms_conductor_test/test_plugins/global.rb
535
+ - spec/hybrid_platforms_conductor_test/test_plugins/node.rb
536
+ - spec/hybrid_platforms_conductor_test/test_plugins/node_check.rb
537
+ - spec/hybrid_platforms_conductor_test/test_plugins/node_ssh.rb
538
+ - spec/hybrid_platforms_conductor_test/test_plugins/platform.rb
539
+ - spec/hybrid_platforms_conductor_test/test_plugins/several_checks.rb
540
+ - spec/hybrid_platforms_conductor_test/test_provisioner.rb
541
+ - spec/hybrid_platforms_conductor_test/tests_report_plugin.rb
542
+ - spec/spec_helper.rb
543
+ homepage:
544
+ licenses:
545
+ - BSD-3-Clause
546
+ metadata: {}
547
+ post_install_message:
548
+ rdoc_options: []
549
+ require_paths:
550
+ - lib
551
+ required_ruby_version: !ruby/object:Gem::Requirement
552
+ requirements:
553
+ - - ">="
554
+ - !ruby/object:Gem::Version
555
+ version: '0'
556
+ required_rubygems_version: !ruby/object:Gem::Requirement
557
+ requirements:
558
+ - - ">="
559
+ - !ruby/object:Gem::Version
560
+ version: '0'
561
+ requirements: []
562
+ rubygems_version: 3.1.4
563
+ signing_key:
564
+ specification_version: 4
565
+ summary: Hybrid Platforms Conductor
566
+ test_files: []