hybrid_platforms_conductor 32.17.0 → 33.0.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +36 -0
- data/README.md +6 -3
- data/bin/check-node +0 -1
- data/bin/deploy +0 -1
- data/bin/get_impacted_nodes +0 -1
- data/bin/last_deploys +12 -8
- data/bin/nodes_to_deploy +6 -6
- data/bin/setup +6 -6
- data/bin/topograph +1 -1
- data/docs/config_dsl.md +45 -1
- data/docs/executables.md +6 -7
- data/docs/executables/check-node.md +3 -3
- data/docs/executables/deploy.md +3 -3
- data/docs/executables/dump_nodes_json.md +3 -3
- data/docs/executables/test.md +3 -3
- data/docs/executables/topograph.md +3 -3
- data/docs/gen/mermaid/README.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/check-node.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/deploy.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/free_ips.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/last_deploys.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/report.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/run.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/ssh_config.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/test.md-0.png +0 -0
- data/docs/plugins.md +46 -0
- data/docs/plugins/connector/ssh.md +1 -1
- data/docs/plugins/log/remote_fs.md +26 -0
- data/docs/plugins/secrets_reader/cli.md +31 -0
- data/docs/plugins/secrets_reader/thycotic.md +46 -0
- data/docs/plugins/test/check_deploy_and_idempotence.md +1 -1
- data/docs/plugins/test/connection.md +1 -0
- data/docs/plugins/test/deploy_removes_root_access.md +1 -1
- data/docs/plugins/test/file_system.md +1 -0
- data/docs/plugins/test/hostname.md +1 -0
- data/docs/plugins/test/ip.md +1 -0
- data/docs/plugins/test/local_users.md +1 -0
- data/docs/plugins/test/mounts.md +1 -0
- data/docs/plugins/test/orphan_files.md +1 -0
- data/docs/plugins/test/ports.md +1 -0
- data/docs/plugins/test/spectre.md +1 -0
- data/docs/plugins/test/vulnerabilities.md +1 -0
- data/lib/hybrid_platforms_conductor/action.rb +4 -4
- data/lib/hybrid_platforms_conductor/actions_executor.rb +45 -43
- data/lib/hybrid_platforms_conductor/bitbucket.rb +5 -4
- data/lib/hybrid_platforms_conductor/cmd_runner.rb +13 -12
- data/lib/hybrid_platforms_conductor/cmdb.rb +2 -2
- data/lib/hybrid_platforms_conductor/common_config_dsl/bitbucket.rb +2 -1
- data/lib/hybrid_platforms_conductor/common_config_dsl/confluence.rb +2 -1
- data/lib/hybrid_platforms_conductor/common_config_dsl/file_system_tests.rb +5 -4
- data/lib/hybrid_platforms_conductor/common_config_dsl/github.rb +4 -3
- data/lib/hybrid_platforms_conductor/common_config_dsl/idempotence_tests.rb +2 -2
- data/lib/hybrid_platforms_conductor/config.rb +8 -4
- data/lib/hybrid_platforms_conductor/confluence.rb +1 -1
- data/lib/hybrid_platforms_conductor/connector.rb +5 -2
- data/lib/hybrid_platforms_conductor/core_extensions/cleanroom/fix_kwargs.rb +116 -0
- data/lib/hybrid_platforms_conductor/core_extensions/symbol/zero.rb +24 -0
- data/lib/hybrid_platforms_conductor/credentials.rb +39 -36
- data/lib/hybrid_platforms_conductor/current_dir_monitor.rb +4 -1
- data/lib/hybrid_platforms_conductor/deployer.rb +275 -224
- data/lib/hybrid_platforms_conductor/executable.rb +20 -15
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/config.rb +10 -7
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_ip.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_keys.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/platform_handlers.rb +4 -4
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/local.rb +2 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +45 -49
- data/lib/hybrid_platforms_conductor/hpc_plugins/log/my_log_plugin.rb.sample +100 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/log/remote_fs.rb +180 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef.rb +68 -66
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/dsl_parser.rb +13 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/recipes_tree_builder.rb +39 -38
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/yaml_inventory.rb +5 -4
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/docker.rb +43 -45
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/podman.rb +18 -20
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb +118 -117
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/proxmox_waiter.rb +39 -43
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/reserve_proxmox_container +9 -13
- data/lib/hybrid_platforms_conductor/hpc_plugins/report/confluence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/report/mediawiki.rb +28 -21
- data/lib/hybrid_platforms_conductor/hpc_plugins/report/stdout.rb +26 -22
- data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/cli.rb +77 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/my_secrets_reader_plugin.rb.sample +46 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/thycotic.rb +90 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb +3 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/check_deploy_and_idempotence.rb +4 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/connection.rb +3 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +7 -21
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +21 -19
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/executables.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system.rb +21 -22
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system_hdfs.rb +19 -21
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/github_ci.rb +2 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb +3 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/idempotence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +4 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_conf.rb +21 -22
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_masters_ok.rb +10 -12
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/linear_strategy.rb +9 -9
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +5 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +5 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +13 -10
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb +5 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/private_ips.rb +5 -5
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/public_ips.rb +5 -5
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +7 -7
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/veids.rb +3 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +27 -25
- data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/stdout.rb +8 -6
- data/lib/hybrid_platforms_conductor/io_router.rb +14 -13
- data/lib/hybrid_platforms_conductor/json_dumper.rb +2 -2
- data/lib/hybrid_platforms_conductor/log.rb +31 -0
- data/lib/hybrid_platforms_conductor/logger_helpers.rb +19 -16
- data/lib/hybrid_platforms_conductor/nodes_handler.rb +89 -71
- data/lib/hybrid_platforms_conductor/parallel_threads.rb +7 -11
- data/lib/hybrid_platforms_conductor/platform_handler.rb +7 -7
- data/lib/hybrid_platforms_conductor/platforms_handler.rb +5 -3
- data/lib/hybrid_platforms_conductor/plugin.rb +2 -2
- data/lib/hybrid_platforms_conductor/plugins.rb +14 -8
- data/lib/hybrid_platforms_conductor/provisioner.rb +4 -4
- data/lib/hybrid_platforms_conductor/report.rb +2 -2
- data/lib/hybrid_platforms_conductor/reports_handler.rb +3 -2
- data/lib/hybrid_platforms_conductor/secrets_reader.rb +31 -0
- data/lib/hybrid_platforms_conductor/services_handler.rb +32 -29
- data/lib/hybrid_platforms_conductor/test_only_remote_node.rb +18 -0
- data/lib/hybrid_platforms_conductor/test_report.rb +15 -18
- data/lib/hybrid_platforms_conductor/tests_runner.rb +116 -118
- data/lib/hybrid_platforms_conductor/thycotic.rb +28 -19
- data/lib/hybrid_platforms_conductor/topographer.rb +200 -190
- data/lib/hybrid_platforms_conductor/topographer/plugins/graphviz.rb +8 -8
- data/lib/hybrid_platforms_conductor/topographer/plugins/json.rb +4 -4
- data/lib/hybrid_platforms_conductor/version.rb +1 -1
- data/spec/hybrid_platforms_conductor_test.rb +33 -12
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/bash_spec.rb +18 -11
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/interactive_spec.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +32 -21
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/ruby_spec.rb +75 -49
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/scp_spec.rb +27 -15
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions_spec.rb +90 -59
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connection_spec.rb +46 -44
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/connectable_nodes_spec.rb +12 -8
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/remote_actions_spec.rb +4 -7
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb +21 -22
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/config_dsl_spec.rb +23 -24
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connectable_nodes_spec.rb +10 -6
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb +106 -75
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb +145 -126
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/node_helpers_spec.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb +29 -25
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/logging_spec.rb +167 -142
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/parallel_spec.rb +272 -244
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/timeout_spec.rb +16 -16
- data/spec/hybrid_platforms_conductor_test/api/cmd_runner_spec.rb +36 -36
- data/spec/hybrid_platforms_conductor_test/api/config_spec.rb +24 -22
- data/spec/hybrid_platforms_conductor_test/api/deployer/check_spec.rb +4 -2
- data/spec/hybrid_platforms_conductor_test/api/deployer/config_dsl_spec.rb +43 -5
- data/spec/hybrid_platforms_conductor_test/api/deployer/deploy_spec.rb +199 -216
- data/spec/hybrid_platforms_conductor_test/api/deployer/log_plugins/remote_fs_spec.rb +223 -0
- data/spec/hybrid_platforms_conductor_test/api/deployer/parse_deploy_output_spec.rb +55 -59
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioner_spec.rb +36 -62
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/podman_spec.rb +17 -17
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/config_dsl_spec.rb +4 -4
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/create_spec.rb +44 -51
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/destroy_spec.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/ip_spec.rb +12 -16
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/destroy_vm_spec.rb +31 -19
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/expired_containers_spec.rb +324 -266
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/ips_assignment_spec.rb +89 -61
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/other_lxc_containers_resources_spec.rb +117 -93
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/pve_node_resources_spec.rb +71 -54
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/retries_spec.rb +10 -8
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/vm_ids_assignment_spec.rb +80 -60
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/start_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/state_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/stop_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/cli_spec.rb +64 -0
- data/spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/thycotic_spec.rb +268 -0
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/config_spec.rb +8 -10
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_ip_spec.rb +33 -24
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_keys_spec.rb +64 -51
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/platform_handlers_spec.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs_plugins_api_spec.rb +50 -51
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/common_spec.rb +91 -81
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/config_dsl_spec.rb +14 -16
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/git_diff_impacts_spec.rb +51 -75
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/nodes_selectors_spec.rb +35 -26
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/platform_handlers_plugins_api_spec.rb +24 -16
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/several_platforms_spec.rb +29 -19
- data/spec/hybrid_platforms_conductor_test/api/platform_handler_spec.rb +4 -4
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/config_dsl_spec.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/deploy_output_parsing_spec.rb +6 -6
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/diff_impacts_spec.rb +57 -99
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/inventory_spec.rb +4 -4
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/packaging_spec.rb +32 -35
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/services_deployment_spec.rb +10 -10
- data/spec/hybrid_platforms_conductor_test/api/platforms_handler_spec.rb +38 -27
- data/spec/hybrid_platforms_conductor_test/api/plugins_spec.rb +46 -52
- data/spec/hybrid_platforms_conductor_test/api/reports_handler_spec.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/api/services_handler/actions_to_deploy_spec.rb +90 -58
- data/spec/hybrid_platforms_conductor_test/api/services_handler/deploy_allowed_spec.rb +38 -34
- data/spec/hybrid_platforms_conductor_test/api/services_handler/log_info_spec.rb +11 -9
- data/spec/hybrid_platforms_conductor_test/api/services_handler/package_spec.rb +193 -171
- data/spec/hybrid_platforms_conductor_test/api/services_handler/parse_deploy_output_spec.rb +66 -54
- data/spec/hybrid_platforms_conductor_test/api/services_handler/prepare_for_deploy_spec.rb +147 -133
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/common_spec.rb +69 -49
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/global_spec.rb +5 -4
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_check_spec.rb +8 -5
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_spec.rb +8 -5
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_ssh_spec.rb +30 -27
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/platform_spec.rb +12 -9
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/reports_spec.rb +48 -47
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/bitbucket_conf_spec.rb +5 -5
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/github_ci_spec.rb +5 -5
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_reports_plugins/confluence_spec.rb +5 -5
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb.rb +9 -9
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/{test_cmdb2.rb → test_cmdb_2.rb} +6 -6
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/{test_cmdb_others2.rb → test_cmdb_others_2.rb} +2 -2
- data/spec/hybrid_platforms_conductor_test/docs_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/executables/{check-node_spec.rb → check_node_spec.rb} +4 -6
- data/spec/hybrid_platforms_conductor_test/executables/deploy_spec.rb +4 -6
- data/spec/hybrid_platforms_conductor_test/executables/get_impacted_nodes_spec.rb +76 -77
- data/spec/hybrid_platforms_conductor_test/executables/last_deploys_spec.rb +159 -113
- data/spec/hybrid_platforms_conductor_test/executables/nodes_to_deploy_spec.rb +299 -160
- data/spec/hybrid_platforms_conductor_test/executables/options/actions_executor_spec.rb +4 -6
- data/spec/hybrid_platforms_conductor_test/executables/options/cmd_runner_spec.rb +3 -5
- data/spec/hybrid_platforms_conductor_test/executables/options/common_spec.rb +8 -8
- data/spec/hybrid_platforms_conductor_test/executables/options/deployer_spec.rb +12 -196
- data/spec/hybrid_platforms_conductor_test/executables/options/nodes_handler_spec.rb +9 -10
- data/spec/hybrid_platforms_conductor_test/executables/options/nodes_selectors_spec.rb +9 -10
- data/spec/hybrid_platforms_conductor_test/executables/options/reports_handler_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/executables/options/tests_runner_spec.rb +22 -22
- data/spec/hybrid_platforms_conductor_test/executables/report_spec.rb +22 -16
- data/spec/hybrid_platforms_conductor_test/executables/run_spec.rb +32 -32
- data/spec/hybrid_platforms_conductor_test/executables/ssh_config_spec.rb +7 -9
- data/spec/hybrid_platforms_conductor_test/executables/test_spec.rb +3 -5
- data/spec/hybrid_platforms_conductor_test/helpers/actions_executor_helpers.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/helpers/cmd_runner_helpers.rb +4 -3
- data/spec/hybrid_platforms_conductor_test/helpers/cmdb_helpers.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/helpers/config_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/connector_ssh_helpers.rb +12 -13
- data/spec/hybrid_platforms_conductor_test/helpers/deployer_helpers.rb +245 -56
- data/spec/hybrid_platforms_conductor_test/helpers/executables_helpers.rb +11 -11
- data/spec/hybrid_platforms_conductor_test/helpers/nodes_handler_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/platforms_handler_helpers.rb +39 -28
- data/spec/hybrid_platforms_conductor_test/helpers/plugins_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/provisioner_proxmox_helpers.rb +86 -111
- data/spec/hybrid_platforms_conductor_test/helpers/reports_handler_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/serverless_chef_helpers.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/helpers/services_handler_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/tests_runner_helpers.rb +1 -1
- 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
- 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
- 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
- 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
- data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/test.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/{test2.rb → test_2.rb} +0 -0
- data/spec/hybrid_platforms_conductor_test/rubocop_spec.rb +31 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/nodes/node.json +3 -3
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/data_bags/nodes/node.json +3 -3
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_2/libraries/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/other_cookbooks/test_cookbook_2/libraries/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/shared_examples/deployer.rb +952 -0
- data/spec/hybrid_platforms_conductor_test/test_connector.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/test_log_no_read_plugin.rb +84 -0
- data/spec/hybrid_platforms_conductor_test/test_log_plugin.rb +105 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/global.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/node.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/node_check.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/platform.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/several_checks.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/test_secrets_reader_plugin.rb +45 -0
- data/spec/hybrid_platforms_conductor_test/tests_report_plugin.rb +5 -6
- data/spec/spec_helper.rb +17 -18
- data/tools/check_md +16 -20
- data/tools/generate_mermaid +1 -1
- metadata +195 -144
- data/spec/hybrid_platforms_conductor_test/helpers/deployer_test_helpers.rb +0 -916
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
describe HybridPlatformsConductor::NodesHandler do
|
|
2
2
|
|
|
3
|
-
context 'checking aggregations across several platforms' do
|
|
3
|
+
context 'when checking aggregations across several platforms' do
|
|
4
4
|
|
|
5
5
|
it 'returns nodes' do
|
|
6
6
|
with_test_platforms(
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
{
|
|
8
|
+
'platform1' => { nodes: { 'node1' => {}, 'node2' => {} } },
|
|
9
|
+
'platform2' => { nodes: { 'node3' => {}, 'node4' => {} } }
|
|
10
|
+
}
|
|
9
11
|
) do
|
|
10
12
|
expect(test_nodes_handler.known_nodes.sort).to eq %w[node1 node2 node3 node4].sort
|
|
11
13
|
end
|
|
@@ -13,17 +15,21 @@ describe HybridPlatformsConductor::NodesHandler do
|
|
|
13
15
|
|
|
14
16
|
it 'fails when several platforms define the same nodes' do
|
|
15
17
|
with_test_platforms(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
{
|
|
19
|
+
'platform1' => { nodes: { 'node1' => {}, 'node2' => {} } },
|
|
20
|
+
'platform2' => { nodes: { 'node1' => {}, 'node4' => {} } }
|
|
21
|
+
}
|
|
18
22
|
) do
|
|
19
|
-
expect { test_nodes_handler.known_nodes }.to raise_error(RuntimeError, /Can
|
|
23
|
+
expect { test_nodes_handler.known_nodes }.to raise_error(RuntimeError, /Can't register node1/)
|
|
20
24
|
end
|
|
21
25
|
end
|
|
22
26
|
|
|
23
27
|
it 'returns nodes lists' do
|
|
24
28
|
with_test_platforms(
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
{
|
|
30
|
+
'platform1' => { nodes_lists: { 'nodeslist1' => [] } },
|
|
31
|
+
'platform2' => { nodes_lists: { 'nodeslist2' => [] } }
|
|
32
|
+
}
|
|
27
33
|
) do
|
|
28
34
|
expect(test_nodes_handler.known_nodes_lists.sort).to eq %w[nodeslist1 nodeslist2].sort
|
|
29
35
|
end
|
|
@@ -31,23 +37,27 @@ describe HybridPlatformsConductor::NodesHandler do
|
|
|
31
37
|
|
|
32
38
|
it 'fails when several platforms define the same nodes lists' do
|
|
33
39
|
with_test_platforms(
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
{
|
|
41
|
+
'platform1' => { nodes_lists: { 'nodeslist1' => [] } },
|
|
42
|
+
'platform2' => { nodes_lists: { 'nodeslist1' => [] } }
|
|
43
|
+
}
|
|
36
44
|
) do
|
|
37
|
-
expect { test_nodes_handler.known_nodes_lists }.to raise_error(RuntimeError, /Can
|
|
45
|
+
expect { test_nodes_handler.known_nodes_lists }.to raise_error(RuntimeError, /Can't register nodes list nodeslist1/)
|
|
38
46
|
end
|
|
39
47
|
end
|
|
40
48
|
|
|
41
49
|
it 'returns services' do
|
|
42
50
|
with_test_platforms(
|
|
43
|
-
|
|
44
|
-
'
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
'
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
{
|
|
52
|
+
'platform1' => { nodes: {
|
|
53
|
+
'node1' => { services: ['service1'] },
|
|
54
|
+
'node2' => { services: ['service2'] }
|
|
55
|
+
} },
|
|
56
|
+
'platform2' => { nodes: {
|
|
57
|
+
'node3' => { services: %w[service1 service4] },
|
|
58
|
+
'node4' => { services: ['service3'] }
|
|
59
|
+
} }
|
|
60
|
+
}
|
|
51
61
|
) do
|
|
52
62
|
expect(test_nodes_handler.known_services.sort).to eq %w[service1 service2 service3 service4].sort
|
|
53
63
|
end
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
describe HybridPlatformsConductor::PlatformHandler do
|
|
2
2
|
|
|
3
3
|
it 'returns the correct platform type' do
|
|
4
|
-
with_test_platform do
|
|
4
|
+
with_test_platform({}) do
|
|
5
5
|
expect(test_platforms_handler.platform('platform').platform_type).to eq :test
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
it 'returns the correct path' do
|
|
10
|
-
with_test_platform do
|
|
10
|
+
with_test_platform({}) do
|
|
11
11
|
expect(test_platforms_handler.platform('platform').repository_path).to eq "#{Dir.tmpdir}/hpc_test/platform"
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
it 'returns the correct info' do
|
|
16
|
-
with_test_platform do
|
|
16
|
+
with_test_platform({}) do
|
|
17
17
|
expect(test_platforms_handler.platform('platform').info).to eq(repo_name: 'platform')
|
|
18
18
|
end
|
|
19
19
|
end
|
|
@@ -76,7 +76,7 @@ describe HybridPlatformsConductor::PlatformHandler do
|
|
|
76
76
|
git = Git.open(repository)
|
|
77
77
|
FileUtils.touch("#{repository}/test_file_1")
|
|
78
78
|
FileUtils.touch("#{repository}/test_file_2")
|
|
79
|
-
git.add([
|
|
79
|
+
git.add(%w[test_file_1 test_file_2])
|
|
80
80
|
git.commit('Test commit')
|
|
81
81
|
# Make some diffs
|
|
82
82
|
FileUtils.touch("#{repository}/new_file")
|
data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/config_dsl_spec.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef do
|
|
2
2
|
|
|
3
|
-
context 'checking config DSL' do
|
|
3
|
+
context 'when checking config DSL' do
|
|
4
4
|
|
|
5
5
|
it 'defines helpers that include recipes' do
|
|
6
|
-
with_repository do
|
|
6
|
+
with_repository do
|
|
7
7
|
with_platforms('helpers_including_recipes(my_helper: [\'cookbook1::recipe1\', \'cookbook2\'])') do
|
|
8
8
|
expect(test_config.known_helpers_including_recipes).to eq(
|
|
9
9
|
my_helper: %w[cookbook1::recipe1 cookbook2]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef do
|
|
2
2
|
|
|
3
|
-
context 'checking how deployment output is parsed' do
|
|
3
|
+
context 'when checking how deployment output is parsed' do
|
|
4
4
|
|
|
5
5
|
it 'parses a deployment output properly' do
|
|
6
6
|
with_serverless_chef_platforms('empty') do |platform|
|
|
7
|
-
stdout = <<~
|
|
7
|
+
stdout = <<~EO_STDOUT
|
|
8
8
|
Starting Chef Client, version 14.14.29
|
|
9
9
|
resolving cookbooks for run list: ["policy_xae_websql::xae"]
|
|
10
10
|
Synchronizing Cookbooks:
|
|
@@ -36,8 +36,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
36
36
|
Running handlers:
|
|
37
37
|
Running handlers complete
|
|
38
38
|
Chef Client finished, 16/300 resources updated in 27 seconds
|
|
39
|
-
|
|
40
|
-
expect(platform.parse_deploy_output(stdout, '')).
|
|
39
|
+
EO_STDOUT
|
|
40
|
+
expect(platform.parse_deploy_output(stdout, '')).to eq [
|
|
41
41
|
{
|
|
42
42
|
action: 'update',
|
|
43
43
|
diffs: "force update new lists of packages\n",
|
|
@@ -67,10 +67,10 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
action: 'create',
|
|
70
|
-
diffs: <<~
|
|
70
|
+
diffs: <<~EO_STDOUT,
|
|
71
71
|
create new file /opt/chef_cache/xaecalcite_0.2.4-1_amd64.deb
|
|
72
72
|
update content in file /opt/chef_cache/xaecalcite_0.2.4-1_amd64.deb from none to 39b0ca
|
|
73
|
-
|
|
73
|
+
EO_STDOUT
|
|
74
74
|
name: 'remote_file[/opt/chef_cache/xaecalcite_0.2.4-1_amd64.deb]',
|
|
75
75
|
status: :changed
|
|
76
76
|
},
|
data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/diff_impacts_spec.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef do
|
|
2
2
|
|
|
3
|
-
context 'checking files diff impacts' do
|
|
3
|
+
context 'when checking files diff impacts' do
|
|
4
4
|
|
|
5
5
|
it 'returns no impact for no diffs' do
|
|
6
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
6
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
7
7
|
expect(platform.impacts_from({})).to eq [
|
|
8
8
|
[],
|
|
9
9
|
[],
|
|
@@ -13,10 +13,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
it 'ignores files with no impact' do
|
|
16
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
17
|
-
expect(platform.impacts_from(
|
|
18
|
-
'cookbooks/test_cookbook_1/README.md' => {}
|
|
19
|
-
)).to eq [
|
|
16
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
17
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_1/README.md' => {})).to eq [
|
|
20
18
|
[],
|
|
21
19
|
[],
|
|
22
20
|
false
|
|
@@ -25,10 +23,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
25
23
|
end
|
|
26
24
|
|
|
27
25
|
it 'returns all nodes impact for global files' do
|
|
28
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
29
|
-
expect(platform.impacts_from(
|
|
30
|
-
'global.rb' => {}
|
|
31
|
-
)).to eq [
|
|
26
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
27
|
+
expect(platform.impacts_from('global.rb' => {})).to eq [
|
|
32
28
|
[],
|
|
33
29
|
[],
|
|
34
30
|
true
|
|
@@ -37,10 +33,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
37
33
|
end
|
|
38
34
|
|
|
39
35
|
it 'returns direct impacted nodes' do
|
|
40
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
41
|
-
expect(platform.impacts_from(
|
|
42
|
-
'nodes/node1.json' => {}
|
|
43
|
-
)).to eq [
|
|
36
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
37
|
+
expect(platform.impacts_from('nodes/node1.json' => {})).to eq [
|
|
44
38
|
%w[node1],
|
|
45
39
|
[],
|
|
46
40
|
false
|
|
@@ -49,10 +43,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
49
43
|
end
|
|
50
44
|
|
|
51
45
|
it 'returns direct impacted nodes with strange characters' do
|
|
52
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
53
|
-
expect(platform.impacts_from(
|
|
54
|
-
'nodes/node-v45.env_@user.json' => {}
|
|
55
|
-
)).to eq [
|
|
46
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
47
|
+
expect(platform.impacts_from('nodes/node-v45.env_@user.json' => {})).to eq [
|
|
56
48
|
['node-v45.env_@user'],
|
|
57
49
|
[],
|
|
58
50
|
false
|
|
@@ -61,10 +53,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
61
53
|
end
|
|
62
54
|
|
|
63
55
|
it 'returns impacted service due to a change in its recipes' do
|
|
64
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
65
|
-
expect(platform.impacts_from(
|
|
66
|
-
'cookbooks/test_cookbook_1/recipes/default.rb' => {}
|
|
67
|
-
)).to eq [
|
|
56
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
57
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_1/recipes/default.rb' => {})).to eq [
|
|
68
58
|
[],
|
|
69
59
|
%w[test_policy_1],
|
|
70
60
|
false
|
|
@@ -73,10 +63,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
73
63
|
end
|
|
74
64
|
|
|
75
65
|
it 'returns impacted service due to a change in its attributes' do
|
|
76
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
77
|
-
expect(platform.impacts_from(
|
|
78
|
-
'cookbooks/test_cookbook_1/attributes/default.rb' => {}
|
|
79
|
-
)).to eq [
|
|
66
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
67
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_1/attributes/default.rb' => {})).to eq [
|
|
80
68
|
[],
|
|
81
69
|
%w[test_policy_1],
|
|
82
70
|
false
|
|
@@ -86,14 +74,12 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
86
74
|
|
|
87
75
|
it 'returns impacted service due to a change in an included template' do
|
|
88
76
|
with_serverless_chef_platforms('recipes') do |platform, repository|
|
|
89
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
77
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
90
78
|
template '/home/file' do
|
|
91
79
|
source 'test_template.erb'
|
|
92
80
|
end
|
|
93
|
-
|
|
94
|
-
expect(platform.impacts_from(
|
|
95
|
-
'cookbooks/test_cookbook_1/templates/default/test_template.erb' => {}
|
|
96
|
-
)).to eq [
|
|
81
|
+
EO_RECIPE
|
|
82
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_1/templates/default/test_template.erb' => {})).to eq [
|
|
97
83
|
[],
|
|
98
84
|
%w[test_policy_1],
|
|
99
85
|
false
|
|
@@ -102,10 +88,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
102
88
|
end
|
|
103
89
|
|
|
104
90
|
it 'does not return impacted service due to a change in a non included template' do
|
|
105
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
106
|
-
expect(platform.impacts_from(
|
|
107
|
-
'cookbooks/test_cookbook_1/templates/default/test_template.erb' => {}
|
|
108
|
-
)).to eq [
|
|
91
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
92
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_1/templates/default/test_template.erb' => {})).to eq [
|
|
109
93
|
[],
|
|
110
94
|
[],
|
|
111
95
|
false
|
|
@@ -115,14 +99,12 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
115
99
|
|
|
116
100
|
it 'returns impacted service due to a change in an included file' do
|
|
117
101
|
with_serverless_chef_platforms('recipes') do |platform, repository|
|
|
118
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
102
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
119
103
|
file '/home/file' do
|
|
120
104
|
source 'test_file'
|
|
121
105
|
end
|
|
122
|
-
|
|
123
|
-
expect(platform.impacts_from(
|
|
124
|
-
'cookbooks/test_cookbook_1/files/default/test_file' => {}
|
|
125
|
-
)).to eq [
|
|
106
|
+
EO_RECIPE
|
|
107
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_1/files/default/test_file' => {})).to eq [
|
|
126
108
|
[],
|
|
127
109
|
%w[test_policy_1],
|
|
128
110
|
false
|
|
@@ -131,10 +113,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
131
113
|
end
|
|
132
114
|
|
|
133
115
|
it 'does not return impacted service due to a change in a non included file' do
|
|
134
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
135
|
-
expect(platform.impacts_from(
|
|
136
|
-
'cookbooks/test_cookbook_1/files/default/test_file' => {}
|
|
137
|
-
)).to eq [
|
|
116
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
117
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_1/files/default/test_file' => {})).to eq [
|
|
138
118
|
[],
|
|
139
119
|
[],
|
|
140
120
|
false
|
|
@@ -144,12 +124,10 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
144
124
|
|
|
145
125
|
it 'returns impacted service due to a resource usage in a recipe' do
|
|
146
126
|
with_serverless_chef_platforms('recipes') do |platform, repository|
|
|
147
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
127
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
148
128
|
test_cookbook_2_my_resource
|
|
149
|
-
|
|
150
|
-
expect(platform.impacts_from(
|
|
151
|
-
'cookbooks/test_cookbook_2/resources/my_resource.rb' => {}
|
|
152
|
-
)).to eq [
|
|
129
|
+
EO_RECIPE
|
|
130
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/resources/my_resource.rb' => {})).to eq [
|
|
153
131
|
[],
|
|
154
132
|
%w[test_policy_1],
|
|
155
133
|
false
|
|
@@ -158,10 +136,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
158
136
|
end
|
|
159
137
|
|
|
160
138
|
it 'does not return impacted service due to a resource not being used in a recipe' do
|
|
161
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
162
|
-
expect(platform.impacts_from(
|
|
163
|
-
'cookbooks/test_cookbook_2/resources/my_resource.rb' => {}
|
|
164
|
-
)).to eq [
|
|
139
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
140
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/resources/my_resource.rb' => {})).to eq [
|
|
165
141
|
[],
|
|
166
142
|
[],
|
|
167
143
|
false
|
|
@@ -171,12 +147,10 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
171
147
|
|
|
172
148
|
it 'returns impacted service due to a library helper usage in a recipe' do
|
|
173
149
|
with_serverless_chef_platforms('recipes') do |platform, repository|
|
|
174
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
150
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
175
151
|
a = my_library_helper(42)
|
|
176
|
-
|
|
177
|
-
expect(platform.impacts_from(
|
|
178
|
-
'cookbooks/test_cookbook_2/libraries/default.rb' => {}
|
|
179
|
-
)).to eq [
|
|
152
|
+
EO_RECIPE
|
|
153
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/libraries/default.rb' => {})).to eq [
|
|
180
154
|
[],
|
|
181
155
|
%w[test_policy_1],
|
|
182
156
|
false
|
|
@@ -186,12 +160,10 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
186
160
|
|
|
187
161
|
it 'ignored impacted service from an unknown helper' do
|
|
188
162
|
with_serverless_chef_platforms('recipes') do |platform, repository|
|
|
189
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
163
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
190
164
|
a = unknown_helper(42)
|
|
191
|
-
|
|
192
|
-
expect(platform.impacts_from(
|
|
193
|
-
'cookbooks/test_cookbook_2/recipes/default.rb' => {}
|
|
194
|
-
)).to eq [
|
|
165
|
+
EO_RECIPE
|
|
166
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/recipes/default.rb' => {})).to eq [
|
|
195
167
|
[],
|
|
196
168
|
%w[test_policy_2],
|
|
197
169
|
false
|
|
@@ -202,16 +174,14 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
202
174
|
it 'returns impacted service due to an unknown library helper usage that has been configured' do
|
|
203
175
|
with_serverless_chef_platforms(
|
|
204
176
|
'recipes',
|
|
205
|
-
additional_config: <<~
|
|
177
|
+
additional_config: <<~EO_CONFIG
|
|
206
178
|
helpers_including_recipes(unknown_helper: ['test_cookbook_2'])
|
|
207
|
-
|
|
179
|
+
EO_CONFIG
|
|
208
180
|
) do |platform, repository|
|
|
209
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
181
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
210
182
|
a = unknown_helper(42)
|
|
211
|
-
|
|
212
|
-
expect(platform.impacts_from(
|
|
213
|
-
'cookbooks/test_cookbook_2/recipes/default.rb' => {}
|
|
214
|
-
)).to eq [
|
|
183
|
+
EO_RECIPE
|
|
184
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/recipes/default.rb' => {})).to eq [
|
|
215
185
|
[],
|
|
216
186
|
%w[test_policy_1 test_policy_2],
|
|
217
187
|
false
|
|
@@ -220,10 +190,8 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
220
190
|
end
|
|
221
191
|
|
|
222
192
|
it 'does not return impacted service due to a library helper not being used in a recipe' do
|
|
223
|
-
with_serverless_chef_platforms('recipes') do |platform
|
|
224
|
-
expect(platform.impacts_from(
|
|
225
|
-
'cookbooks/test_cookbook_2/libraries/default.rb' => {}
|
|
226
|
-
)).to eq [
|
|
193
|
+
with_serverless_chef_platforms('recipes') do |platform|
|
|
194
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/libraries/default.rb' => {})).to eq [
|
|
227
195
|
[],
|
|
228
196
|
[],
|
|
229
197
|
false
|
|
@@ -233,12 +201,10 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
233
201
|
|
|
234
202
|
it 'returns impacted service due to a usage of another cookbook\'s default recipe' do
|
|
235
203
|
with_serverless_chef_platforms('recipes') do |platform, repository|
|
|
236
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
204
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
237
205
|
include_recipe 'test_cookbook_2'
|
|
238
|
-
|
|
239
|
-
expect(platform.impacts_from(
|
|
240
|
-
'cookbooks/test_cookbook_2/recipes/default.rb' => {}
|
|
241
|
-
)).to eq [
|
|
206
|
+
EO_RECIPE
|
|
207
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/recipes/default.rb' => {})).to eq [
|
|
242
208
|
[],
|
|
243
209
|
%w[test_policy_1 test_policy_2],
|
|
244
210
|
false
|
|
@@ -248,12 +214,10 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
248
214
|
|
|
249
215
|
it 'returns impacted service due to a usage of another cookbook\'s recipe' do
|
|
250
216
|
with_serverless_chef_platforms('recipes') do |platform, repository|
|
|
251
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
217
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
252
218
|
include_recipe 'test_cookbook_2::other_recipe'
|
|
253
|
-
|
|
254
|
-
expect(platform.impacts_from(
|
|
255
|
-
'cookbooks/test_cookbook_2/recipes/other_recipe.rb' => {}
|
|
256
|
-
)).to eq [
|
|
219
|
+
EO_RECIPE
|
|
220
|
+
expect(platform.impacts_from('cookbooks/test_cookbook_2/recipes/other_recipe.rb' => {})).to eq [
|
|
257
221
|
[],
|
|
258
222
|
%w[test_policy_1],
|
|
259
223
|
false
|
|
@@ -263,12 +227,10 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
263
227
|
|
|
264
228
|
it 'ignores cookbooks from cookbook paths that are not configured' do
|
|
265
229
|
with_serverless_chef_platforms('several_cookbooks') do |platform, repository|
|
|
266
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
230
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
267
231
|
include_recipe 'test_cookbook_2'
|
|
268
|
-
|
|
269
|
-
expect(platform.impacts_from(
|
|
270
|
-
'other_cookbooks/test_cookbook_2/recipes/default.rb' => {}
|
|
271
|
-
)).to eq [
|
|
232
|
+
EO_RECIPE
|
|
233
|
+
expect(platform.impacts_from('other_cookbooks/test_cookbook_2/recipes/default.rb' => {})).to eq [
|
|
272
234
|
[],
|
|
273
235
|
%w[],
|
|
274
236
|
true
|
|
@@ -278,13 +240,11 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
278
240
|
|
|
279
241
|
it 'considers cookbooks from non-standard cookbook paths that are configured' do
|
|
280
242
|
with_serverless_chef_platforms('several_cookbooks') do |platform, repository|
|
|
281
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
243
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
282
244
|
include_recipe 'test_cookbook_2'
|
|
283
|
-
|
|
245
|
+
EO_RECIPE
|
|
284
246
|
ENV['hpc_test_cookbooks_path'] = 'other_cookbooks'
|
|
285
|
-
expect(platform.impacts_from(
|
|
286
|
-
'other_cookbooks/test_cookbook_2/recipes/default.rb' => {}
|
|
287
|
-
)).to eq [
|
|
247
|
+
expect(platform.impacts_from('other_cookbooks/test_cookbook_2/recipes/default.rb' => {})).to eq [
|
|
288
248
|
[],
|
|
289
249
|
%w[test_policy_1 test_policy_2],
|
|
290
250
|
false
|
|
@@ -297,13 +257,11 @@ describe HybridPlatformsConductor::HpcPlugins::PlatformHandler::ServerlessChef d
|
|
|
297
257
|
FileUtils.mkdir_p("#{other_repo}/cookbooks/test_cookbook_2/recipes")
|
|
298
258
|
File.write("#{other_repo}/cookbooks/test_cookbook_2/recipes/default.rb", '')
|
|
299
259
|
with_serverless_chef_platforms('several_cookbooks') do |platform, repository|
|
|
300
|
-
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~
|
|
260
|
+
File.write("#{repository}/cookbooks/test_cookbook_1/recipes/default.rb", <<~EO_RECIPE)
|
|
301
261
|
include_recipe 'test_cookbook_2'
|
|
302
|
-
|
|
262
|
+
EO_RECIPE
|
|
303
263
|
ENV['hpc_test_cookbooks_path'] = "#{other_repo}:other_cookbooks"
|
|
304
|
-
expect(platform.impacts_from(
|
|
305
|
-
'unknown_cookbooks/test_cookbook_2/recipes/default.rb' => {}
|
|
306
|
-
)).to eq [
|
|
264
|
+
expect(platform.impacts_from('unknown_cookbooks/test_cookbook_2/recipes/default.rb' => {})).to eq [
|
|
307
265
|
[],
|
|
308
266
|
%w[],
|
|
309
267
|
true
|