r10k 3.5.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 +7 -0
- data/.gitattributes +1 -0
- data/.github/pull_request_template.md +1 -0
- data/.github/workflows/docker.yml +56 -0
- data/.github/workflows/release.yml +36 -0
- data/.gitignore +9 -0
- data/.travis.yml +45 -0
- data/CHANGELOG.mkd +1759 -0
- data/CODEOWNERS +2 -0
- data/CONTRIBUTING.mkd +105 -0
- data/Gemfile +15 -0
- data/LICENSE +14 -0
- data/README.mkd +118 -0
- data/Rakefile +3 -0
- data/azure-pipelines.yml +86 -0
- data/bin/r10k +17 -0
- data/doc/common-patterns.mkd +44 -0
- data/doc/dynamic-environments.mkd +31 -0
- data/doc/dynamic-environments/configuration.mkd +669 -0
- data/doc/dynamic-environments/git-environments.mkd +75 -0
- data/doc/dynamic-environments/introduction.mkd +69 -0
- data/doc/dynamic-environments/master-configuration.mkd +40 -0
- data/doc/dynamic-environments/quickstart.mkd +201 -0
- data/doc/dynamic-environments/svn-environments.mkd +45 -0
- data/doc/dynamic-environments/usage.mkd +132 -0
- data/doc/dynamic-environments/workflow-guide.mkd +247 -0
- data/doc/faq.mkd +164 -0
- data/doc/git/cloning-and-mirroring.mkd +60 -0
- data/doc/git/providers.mkd +111 -0
- data/doc/puppetfile.mkd +309 -0
- data/doc/updating-your-puppetfile.mkd +38 -0
- data/docker/.gitignore +1 -0
- data/docker/.rspec +4 -0
- data/docker/Gemfile +11 -0
- data/docker/Makefile +89 -0
- data/docker/README.md +28 -0
- data/docker/r10k/Dockerfile +67 -0
- data/docker/r10k/adduser.sh +13 -0
- data/docker/r10k/docker-entrypoint.d/10-analytics.sh +30 -0
- data/docker/r10k/docker-entrypoint.sh +11 -0
- data/docker/r10k/release.Dockerfile +54 -0
- data/docker/spec/dockerfile_spec.rb +43 -0
- data/docker/spec/fixtures/Puppetfile +2 -0
- data/integration/Gemfile +19 -0
- data/integration/README.mkd +29 -0
- data/integration/Rakefile +77 -0
- data/integration/component/pre-suite/05_install_dev_r10k.rb +12 -0
- data/integration/files/README.mkd +4 -0
- data/integration/files/hiera.yaml +8 -0
- data/integration/files/modules/helloworld/manifests/init.pp +3 -0
- data/integration/files/modules/hieratest/manifests/init.pp +3 -0
- data/integration/files/modules/unicode/files/pretend_unicode +1 -0
- data/integration/files/modules/unicode/manifests/init.pp +6 -0
- data/integration/files/pre-suite/git_config.pp.erb +19 -0
- data/integration/files/pre-suite/prod_env.config +3 -0
- data/integration/files/r10k_conf.yaml.erb +9 -0
- data/integration/lib/README.mkd +4 -0
- data/integration/lib/git_utils.rb +205 -0
- data/integration/lib/master_manipulator.rb +205 -0
- data/integration/lib/r10k_utils.rb +222 -0
- data/integration/manifests/README.mkd +4 -0
- data/integration/pre-suite/00_pe_install.rb +6 -0
- data/integration/pre-suite/10_git_config.rb +48 -0
- data/integration/pre-suite/20_pe_r10k.rb +55 -0
- data/integration/pre-suite/README.mkd +5 -0
- data/integration/tests/Puppetfile/HTTP_PROXY_affects_forge_source.rb +72 -0
- data/integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb +70 -0
- data/integration/tests/README.mkd +4 -0
- data/integration/tests/basic_functionality/install_pe_only_module_with_puppetfile.rb +83 -0
- data/integration/tests/basic_functionality/negative/neg_deploy_with_invalid_r10k_yaml.rb +51 -0
- data/integration/tests/basic_functionality/negative/neg_deploy_with_missing_r10k_yaml.rb +28 -0
- data/integration/tests/basic_functionality/negative/neg_invalid_git_provider.rb +45 -0
- data/integration/tests/basic_functionality/negative/negative_bad_proxy.rb +34 -0
- data/integration/tests/basic_functionality/proxy_specified_in_configuration.rb +103 -0
- data/integration/tests/basic_functionality/proxy_with_pe_only_module.rb +128 -0
- data/integration/tests/basic_functionality/proxy_with_puppetfile.rb +61 -0
- data/integration/tests/basic_functionality/rugged_git_provider_with_ssh.rb +109 -0
- data/integration/tests/basic_functionality/rugged_git_provider_without_ssh.rb +108 -0
- data/integration/tests/command_line/deploy_env_without_mod_update.rb +76 -0
- data/integration/tests/command_line/negative/neg_deploy_env_with_module_update.rb +77 -0
- data/integration/tests/command_line/negative/neg_invalid_cmd_line_arg.rb +23 -0
- data/integration/tests/git_source/HTTP_proxy_and_git_source.rb +70 -0
- data/integration/tests/git_source/git_source_git.rb +128 -0
- data/integration/tests/git_source/git_source_ssh.rb +87 -0
- data/integration/tests/git_source/git_source_submodule.rb +70 -0
- data/integration/tests/git_source/negative/neg_git_broken_remote.rb +38 -0
- data/integration/tests/git_source/negative/neg_git_unauthorized_https.rb +46 -0
- data/integration/tests/git_source/negative/neg_git_unauthorized_ssh.rb +73 -0
- data/integration/tests/git_source/negative/neg_git_unicode_branch.rb +35 -0
- data/integration/tests/i18n/deploy_module_with_unicode_in_file_name.rb +64 -0
- data/integration/tests/purging/content_not_purged_at_root.rb +89 -0
- data/integration/tests/purging/default_purging.rb +125 -0
- data/integration/tests/purging/does_not_purge_files_on_white_list.rb +93 -0
- data/integration/tests/purging/invalid_whitelist_types.rb +63 -0
- data/integration/tests/user_scenario/basic_workflow/multi_env_1000_branches.rb +66 -0
- data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +111 -0
- data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +117 -0
- data/integration/tests/user_scenario/basic_workflow/multi_env_hiera.rb +100 -0
- data/integration/tests/user_scenario/basic_workflow/multi_env_multi_source.rb +133 -0
- data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +161 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_basedir.rb +46 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_forge_module.rb +48 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module.rb +45 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module_ref.rb +43 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_remote.rb +45 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_branch_name_collision.rb +64 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_disk_full.rb +75 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_duplicate_module_names.rb +44 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_inaccessible_forge.rb +58 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_invalid_env_name.rb +34 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_invalid_puppet_file.rb +36 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_module_specified_at_deleted_release.rb +49 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_read_only.rb +58 -0
- data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +51 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_10000_files.rb +75 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +104 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_module.rb +81 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_custom_module.rb +49 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_large_files.rb +75 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_module_already_installed.rb +82 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_module_last_release_deleted.rb +68 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_non-existent_base_dir.rb +94 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +93 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_switch_forge_git_module.rb +117 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_unicode_paths.rb +60 -0
- data/integration/tests/user_scenario/basic_workflow/single_env_upgrade_forge_mod_revert_change.rb +166 -0
- data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +163 -0
- data/integration/tests/user_scenario/complex_workflow/multi_env_remove_re-add.rb +111 -0
- data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +78 -0
- data/integration/tests/user_scenario/complex_workflow/single_env_git_module_update.rb +100 -0
- data/lib/r10k.rb +11 -0
- data/lib/r10k/action/base.rb +31 -0
- data/lib/r10k/action/cri_runner.rb +72 -0
- data/lib/r10k/action/deploy.rb +9 -0
- data/lib/r10k/action/deploy/deploy_helpers.rb +34 -0
- data/lib/r10k/action/deploy/display.rb +89 -0
- data/lib/r10k/action/deploy/environment.rb +196 -0
- data/lib/r10k/action/deploy/module.rb +84 -0
- data/lib/r10k/action/puppetfile.rb +10 -0
- data/lib/r10k/action/puppetfile/check.rb +31 -0
- data/lib/r10k/action/puppetfile/cri_runner.rb +26 -0
- data/lib/r10k/action/puppetfile/install.rb +45 -0
- data/lib/r10k/action/puppetfile/purge.rb +28 -0
- data/lib/r10k/action/runner.rb +96 -0
- data/lib/r10k/action/visitor.rb +31 -0
- data/lib/r10k/cli.rb +51 -0
- data/lib/r10k/cli/deploy.rb +114 -0
- data/lib/r10k/cli/ext/logging.rb +15 -0
- data/lib/r10k/cli/help.rb +7 -0
- data/lib/r10k/cli/puppetfile.rb +74 -0
- data/lib/r10k/cli/version.rb +31 -0
- data/lib/r10k/deployment.rb +132 -0
- data/lib/r10k/deployment/config.rb +56 -0
- data/lib/r10k/environment.rb +37 -0
- data/lib/r10k/environment/bare.rb +16 -0
- data/lib/r10k/environment/base.rb +150 -0
- data/lib/r10k/environment/git.rb +81 -0
- data/lib/r10k/environment/name.rb +86 -0
- data/lib/r10k/environment/svn.rb +91 -0
- data/lib/r10k/environment/with_modules.rb +139 -0
- data/lib/r10k/errors.rb +61 -0
- data/lib/r10k/errors/formatting.rb +28 -0
- data/lib/r10k/feature.rb +56 -0
- data/lib/r10k/feature/collection.rb +23 -0
- data/lib/r10k/features.rb +20 -0
- data/lib/r10k/forge/module_release.rb +228 -0
- data/lib/r10k/git.rb +196 -0
- data/lib/r10k/git/alternates.rb +63 -0
- data/lib/r10k/git/cache.rb +108 -0
- data/lib/r10k/git/errors.rb +34 -0
- data/lib/r10k/git/rugged.rb +17 -0
- data/lib/r10k/git/rugged/bare_repository.rb +85 -0
- data/lib/r10k/git/rugged/base_repository.rb +93 -0
- data/lib/r10k/git/rugged/cache.rb +11 -0
- data/lib/r10k/git/rugged/credentials.rb +91 -0
- data/lib/r10k/git/rugged/thin_repository.rb +89 -0
- data/lib/r10k/git/rugged/working_repository.rb +145 -0
- data/lib/r10k/git/shellgit.rb +9 -0
- data/lib/r10k/git/shellgit/bare_repository.rb +43 -0
- data/lib/r10k/git/shellgit/base_repository.rb +137 -0
- data/lib/r10k/git/shellgit/cache.rb +11 -0
- data/lib/r10k/git/shellgit/thin_repository.rb +69 -0
- data/lib/r10k/git/shellgit/working_repository.rb +111 -0
- data/lib/r10k/git/stateful_repository.rb +95 -0
- data/lib/r10k/initializers.rb +67 -0
- data/lib/r10k/instance_cache.rb +32 -0
- data/lib/r10k/keyed_factory.rb +39 -0
- data/lib/r10k/logging.rb +109 -0
- data/lib/r10k/logging/terminaloutputter.rb +36 -0
- data/lib/r10k/module.rb +38 -0
- data/lib/r10k/module/base.rb +113 -0
- data/lib/r10k/module/forge.rb +177 -0
- data/lib/r10k/module/git.rb +109 -0
- data/lib/r10k/module/local.rb +36 -0
- data/lib/r10k/module/metadata_file.rb +31 -0
- data/lib/r10k/module/svn.rb +112 -0
- data/lib/r10k/puppetfile.rb +286 -0
- data/lib/r10k/settings.rb +194 -0
- data/lib/r10k/settings/collection.rb +123 -0
- data/lib/r10k/settings/container.rb +97 -0
- data/lib/r10k/settings/definition.rb +124 -0
- data/lib/r10k/settings/enum_definition.rb +30 -0
- data/lib/r10k/settings/helpers.rb +38 -0
- data/lib/r10k/settings/list.rb +107 -0
- data/lib/r10k/settings/loader.rb +99 -0
- data/lib/r10k/settings/mixin.rb +54 -0
- data/lib/r10k/settings/uri_definition.rb +19 -0
- data/lib/r10k/source.rb +42 -0
- data/lib/r10k/source/base.rb +74 -0
- data/lib/r10k/source/exec.rb +51 -0
- data/lib/r10k/source/git.rb +142 -0
- data/lib/r10k/source/hash.rb +182 -0
- data/lib/r10k/source/svn.rb +136 -0
- data/lib/r10k/source/yaml.rb +20 -0
- data/lib/r10k/source/yamldir.rb +32 -0
- data/lib/r10k/svn.rb +6 -0
- data/lib/r10k/svn/remote.rb +68 -0
- data/lib/r10k/svn/working_dir.rb +125 -0
- data/lib/r10k/util/attempt.rb +84 -0
- data/lib/r10k/util/basedir.rb +65 -0
- data/lib/r10k/util/commands.rb +31 -0
- data/lib/r10k/util/exec_env.rb +36 -0
- data/lib/r10k/util/license.rb +24 -0
- data/lib/r10k/util/platform.rb +42 -0
- data/lib/r10k/util/purgeable.rb +88 -0
- data/lib/r10k/util/setopts.rb +55 -0
- data/lib/r10k/util/subprocess.rb +84 -0
- data/lib/r10k/util/subprocess/result.rb +56 -0
- data/lib/r10k/util/subprocess/runner.rb +26 -0
- data/lib/r10k/util/subprocess/runner/jruby.rb +23 -0
- data/lib/r10k/util/subprocess/runner/posix.rb +103 -0
- data/lib/r10k/util/subprocess/runner/pump.rb +59 -0
- data/lib/r10k/util/subprocess/runner/windows.rb +23 -0
- data/lib/r10k/util/subprocess/subprocess_error.rb +24 -0
- data/lib/r10k/util/symbolize_keys.rb +35 -0
- data/lib/r10k/version.rb +6 -0
- data/locales/config.yaml +21 -0
- data/locales/r10k.pot +545 -0
- data/r10k.gemspec +50 -0
- data/r10k.yaml.example +112 -0
- data/spec/fixtures/empty/.empty +0 -0
- data/spec/fixtures/integration/git/puppet-boolean-bare.tar +0 -0
- data/spec/fixtures/module/forge/bad_module/metadata.json +1 -0
- data/spec/fixtures/module/forge/eight_hundred/Modulefile +8 -0
- data/spec/fixtures/module/forge/eight_hundred/metadata.json +19 -0
- data/spec/fixtures/unit/action/r10k.yaml +5 -0
- data/spec/fixtures/unit/action/r10k_cachedir.yaml +2 -0
- data/spec/fixtures/unit/action/r10k_generate_types.yaml +3 -0
- data/spec/fixtures/unit/action/r10k_puppet_path.yaml +3 -0
- data/spec/fixtures/unit/puppetfile/argument-error/Puppetfile +1 -0
- data/spec/fixtures/unit/puppetfile/default-branch-override/Puppetfile +5 -0
- data/spec/fixtures/unit/puppetfile/duplicate-module-error/Puppetfile +10 -0
- data/spec/fixtures/unit/puppetfile/invalid-syntax/Puppetfile +1 -0
- data/spec/fixtures/unit/puppetfile/load-error/Puppetfile +1 -0
- data/spec/fixtures/unit/puppetfile/name-error/Puppetfile +1 -0
- data/spec/fixtures/unit/puppetfile/valid-forge-with-version/Puppetfile +1 -0
- data/spec/fixtures/unit/puppetfile/valid-forge-without-version/Puppetfile +1 -0
- data/spec/fixtures/unit/util/purgeable/managed_one/expected_1 +0 -0
- data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_expected_1 +0 -0
- data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_unmanaged_1 +0 -0
- data/spec/fixtures/unit/util/purgeable/managed_one/unmanaged_1 +0 -0
- data/spec/fixtures/unit/util/purgeable/managed_two/expected_2 +0 -0
- data/spec/fixtures/unit/util/purgeable/managed_two/unmanaged_2 +0 -0
- data/spec/fixtures/unit/util/subprocess/runner/no-execute.sh +3 -0
- data/spec/integration/git/rugged/bare_repository_spec.rb +13 -0
- data/spec/integration/git/rugged/thin_repository_spec.rb +14 -0
- data/spec/integration/git/rugged/working_repository_spec.rb +48 -0
- data/spec/integration/git/shellgit/bare_repository_spec.rb +13 -0
- data/spec/integration/git/shellgit/thin_repository_spec.rb +14 -0
- data/spec/integration/git/shellgit/working_repository_spec.rb +13 -0
- data/spec/integration/git/stateful_repository_spec.rb +159 -0
- data/spec/matchers/exit_with.rb +28 -0
- data/spec/matchers/match_realpath.rb +18 -0
- data/spec/r10k-mocks.rb +3 -0
- data/spec/r10k-mocks/mock_config.rb +33 -0
- data/spec/r10k-mocks/mock_env.rb +15 -0
- data/spec/r10k-mocks/mock_source.rb +13 -0
- data/spec/shared-contexts/git-fixtures.rb +55 -0
- data/spec/shared-examples/deploy-actions.rb +69 -0
- data/spec/shared-examples/git-repository.rb +38 -0
- data/spec/shared-examples/git/bare_repository.rb +132 -0
- data/spec/shared-examples/git/thin_repository.rb +26 -0
- data/spec/shared-examples/git/working_repository.rb +207 -0
- data/spec/shared-examples/puppetfile-action.rb +39 -0
- data/spec/shared-examples/settings/ancestry.rb +44 -0
- data/spec/shared-examples/subprocess-runner.rb +83 -0
- data/spec/spec_helper.rb +40 -0
- data/spec/unit/action/cri_runner_spec.rb +72 -0
- data/spec/unit/action/deploy/deploy_helpers_spec.rb +38 -0
- data/spec/unit/action/deploy/display_spec.rb +31 -0
- data/spec/unit/action/deploy/environment_spec.rb +395 -0
- data/spec/unit/action/deploy/module_spec.rb +139 -0
- data/spec/unit/action/puppetfile/check_spec.rb +41 -0
- data/spec/unit/action/puppetfile/cri_runner_spec.rb +47 -0
- data/spec/unit/action/puppetfile/install_spec.rb +84 -0
- data/spec/unit/action/puppetfile/purge_spec.rb +42 -0
- data/spec/unit/action/runner_spec.rb +213 -0
- data/spec/unit/action/visitor_spec.rb +39 -0
- data/spec/unit/cli_spec.rb +9 -0
- data/spec/unit/deployment/config_spec.rb +33 -0
- data/spec/unit/deployment_spec.rb +162 -0
- data/spec/unit/environment/base_spec.rb +109 -0
- data/spec/unit/environment/git_spec.rb +97 -0
- data/spec/unit/environment/name_spec.rb +135 -0
- data/spec/unit/environment/svn_spec.rb +133 -0
- data/spec/unit/errors/formatting_spec.rb +84 -0
- data/spec/unit/feature_spec.rb +50 -0
- data/spec/unit/forge/module_release_spec.rb +213 -0
- data/spec/unit/git/alternates_spec.rb +116 -0
- data/spec/unit/git/cache_spec.rb +55 -0
- data/spec/unit/git/rugged/cache_spec.rb +29 -0
- data/spec/unit/git/rugged/credentials_spec.rb +109 -0
- data/spec/unit/git/shellgit/cache_spec.rb +27 -0
- data/spec/unit/git/stateful_repository_spec.rb +40 -0
- data/spec/unit/git_spec.rb +102 -0
- data/spec/unit/initializers_spec.rb +68 -0
- data/spec/unit/instance_cache_spec.rb +78 -0
- data/spec/unit/keyed_factory_spec.rb +51 -0
- data/spec/unit/logging/terminaloutputter_spec.rb +53 -0
- data/spec/unit/logging_spec.rb +68 -0
- data/spec/unit/module/base_spec.rb +72 -0
- data/spec/unit/module/forge_spec.rb +207 -0
- data/spec/unit/module/git_spec.rb +274 -0
- data/spec/unit/module/metadata_file_spec.rb +68 -0
- data/spec/unit/module/svn_spec.rb +178 -0
- data/spec/unit/module_spec.rb +29 -0
- data/spec/unit/puppetfile_spec.rb +300 -0
- data/spec/unit/settings/collection_spec.rb +123 -0
- data/spec/unit/settings/container_spec.rb +92 -0
- data/spec/unit/settings/definition_spec.rb +79 -0
- data/spec/unit/settings/enum_definition_spec.rb +20 -0
- data/spec/unit/settings/inheritance_spec.rb +38 -0
- data/spec/unit/settings/list_spec.rb +88 -0
- data/spec/unit/settings/loader_spec.rb +110 -0
- data/spec/unit/settings/uri_definition_spec.rb +23 -0
- data/spec/unit/settings_spec.rb +246 -0
- data/spec/unit/source/base_spec.rb +31 -0
- data/spec/unit/source/exec_spec.rb +81 -0
- data/spec/unit/source/git_spec.rb +185 -0
- data/spec/unit/source/hash_spec.rb +54 -0
- data/spec/unit/source/svn_spec.rb +196 -0
- data/spec/unit/source/yaml_spec.rb +42 -0
- data/spec/unit/source_spec.rb +10 -0
- data/spec/unit/svn/remote_spec.rb +21 -0
- data/spec/unit/svn/working_dir_spec.rb +56 -0
- data/spec/unit/util/attempt_spec.rb +82 -0
- data/spec/unit/util/commands_spec.rb +61 -0
- data/spec/unit/util/exec_env_spec.rb +56 -0
- data/spec/unit/util/purgeable_spec.rb +230 -0
- data/spec/unit/util/setopts_spec.rb +59 -0
- data/spec/unit/util/subprocess/result_spec.rb +36 -0
- data/spec/unit/util/subprocess/runner/posix_spec.rb +7 -0
- data/spec/unit/util/subprocess/runner/pump_spec.rb +79 -0
- data/spec/unit/util/subprocess/runner/windows_spec.rb +7 -0
- data/spec/unit/util/subprocess/subprocess_error_spec.rb +26 -0
- data/spec/unit/util/subprocess_spec.rb +65 -0
- data/spec/unit/util/symbolize_keys_spec.rb +67 -0
- metadata +582 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
require 'git_utils'
|
|
2
|
+
require 'r10k_utils'
|
|
3
|
+
require 'master_manipulator'
|
|
4
|
+
test_name 'CODEMGMT-48 - C59262 - Multiple Environments with Additions, Changes and Removal of Branches'
|
|
5
|
+
|
|
6
|
+
#Init
|
|
7
|
+
master_certname = on(master, puppet('config', 'print', 'certname')).stdout.rstrip
|
|
8
|
+
git_environments_path = '/root/environments'
|
|
9
|
+
last_commit = git_last_commit(master, git_environments_path)
|
|
10
|
+
local_files_root_path = ENV['FILES'] || 'files'
|
|
11
|
+
helloworld_module_path = File.join(local_files_root_path, 'modules', 'helloworld')
|
|
12
|
+
r10k_fqp = get_r10k_fqp(master)
|
|
13
|
+
|
|
14
|
+
initial_env_names = ['production', 'stage', 'test']
|
|
15
|
+
|
|
16
|
+
#Verification for "production" Environment
|
|
17
|
+
motd_path = '/etc/motd'
|
|
18
|
+
motd_contents = 'Hello!'
|
|
19
|
+
motd_contents_regex = /\A#{motd_contents}\z/
|
|
20
|
+
prod_env_notify_message_regex = /I am in the production environment/
|
|
21
|
+
|
|
22
|
+
#Verification for "stage" Environment
|
|
23
|
+
stage_env_notify_message = 'This is a different message'
|
|
24
|
+
stage_env_notify_message_regex = /#{stage_env_notify_message}/
|
|
25
|
+
|
|
26
|
+
#Verification for "test" Environment
|
|
27
|
+
test_env_error_message_regex = /Error:.*Could not find environment 'test'/
|
|
28
|
+
|
|
29
|
+
#Verification for "temp" Environment
|
|
30
|
+
test_env_notify_message_regex = /I am in the temp environment/
|
|
31
|
+
|
|
32
|
+
#Manifest
|
|
33
|
+
prod_env_motd_manifest = <<-MANIFEST
|
|
34
|
+
class { 'helloworld': }
|
|
35
|
+
class { 'motd':
|
|
36
|
+
content => '#{motd_contents}',
|
|
37
|
+
}
|
|
38
|
+
MANIFEST
|
|
39
|
+
|
|
40
|
+
stage_env_custom_mod_manifest = <<-MANIFEST
|
|
41
|
+
class helloworld {
|
|
42
|
+
notify { "Hello world!":
|
|
43
|
+
message => "#{stage_env_notify_message}"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
MANIFEST
|
|
47
|
+
|
|
48
|
+
site_pp_path = File.join(git_environments_path, 'manifests', 'site.pp')
|
|
49
|
+
original_site_pp = create_site_pp(master_certname, ' include helloworld')
|
|
50
|
+
prod_env_motd_site_pp = create_site_pp(master_certname, prod_env_motd_manifest)
|
|
51
|
+
|
|
52
|
+
#File
|
|
53
|
+
puppet_file = <<-PUPPETFILE
|
|
54
|
+
mod "puppetlabs/motd"
|
|
55
|
+
PUPPETFILE
|
|
56
|
+
|
|
57
|
+
puppet_file_path = File.join(git_environments_path, 'Puppetfile')
|
|
58
|
+
|
|
59
|
+
#Teardown
|
|
60
|
+
teardown do
|
|
61
|
+
clean_up_r10k(master, last_commit, git_environments_path)
|
|
62
|
+
|
|
63
|
+
step 'Remove "/etc/motd" File'
|
|
64
|
+
on(agents, "rm -rf #{motd_path}")
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
#Setup
|
|
68
|
+
step 'Stub Forge on Master'
|
|
69
|
+
stub_forge_on(master)
|
|
70
|
+
|
|
71
|
+
initial_env_names.each do |env|
|
|
72
|
+
if env == 'production'
|
|
73
|
+
step "Checkout \"#{env}\" Branch"
|
|
74
|
+
git_on(master, "checkout #{env}", git_environments_path)
|
|
75
|
+
|
|
76
|
+
step "Copy \"helloworld\" Module to \"#{env}\" Environment Git Repo"
|
|
77
|
+
scp_to(master, helloworld_module_path, File.join(git_environments_path, "site", 'helloworld'))
|
|
78
|
+
|
|
79
|
+
step "Inject New \"site.pp\" to the \"#{env}\" Environment"
|
|
80
|
+
inject_site_pp(master, site_pp_path, original_site_pp)
|
|
81
|
+
|
|
82
|
+
step "Push Changes to \"#{env}\" Environment"
|
|
83
|
+
git_add_commit_push(master, env, 'Update site.pp and add module.', git_environments_path)
|
|
84
|
+
else
|
|
85
|
+
step "Create \"#{env}\" Branch from \"production\""
|
|
86
|
+
git_on(master, 'checkout production', git_environments_path)
|
|
87
|
+
git_on(master, "checkout -b #{env}", git_environments_path)
|
|
88
|
+
|
|
89
|
+
step "Push Changes to \"#{env}\" Environment"
|
|
90
|
+
git_push(master, env, git_environments_path)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
#Tests
|
|
95
|
+
step 'Deploy Environments via r10k'
|
|
96
|
+
on(master, "#{r10k_fqp} deploy environment -v")
|
|
97
|
+
|
|
98
|
+
#Initial Verification
|
|
99
|
+
initial_env_names.each do |env|
|
|
100
|
+
agents.each do |agent|
|
|
101
|
+
step "Run Puppet Agent Against \"#{env}\" Environment"
|
|
102
|
+
on(agent, puppet('agent', '--test', "--environment #{env}"), :acceptable_exit_codes => 2) do |result|
|
|
103
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
104
|
+
assert_match(/I am in the #{env} environment/, result.stdout, 'Expected message not found!')
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
#Add, Change, Remove Environments
|
|
110
|
+
step 'Create "temp" Branch from "production"'
|
|
111
|
+
git_on(master, 'checkout production', git_environments_path)
|
|
112
|
+
git_on(master, 'checkout -b temp', git_environments_path)
|
|
113
|
+
git_push(master, 'temp', git_environments_path)
|
|
114
|
+
|
|
115
|
+
step 'Add "puppetlabs-motd" Module to the "production" Environment'
|
|
116
|
+
git_on(master, 'checkout production', git_environments_path)
|
|
117
|
+
inject_site_pp(master, site_pp_path, prod_env_motd_site_pp)
|
|
118
|
+
create_remote_file(master, puppet_file_path, puppet_file)
|
|
119
|
+
git_add_commit_push(master, 'production', 'Add motd module.', git_environments_path)
|
|
120
|
+
|
|
121
|
+
step 'Update Custom Module in the "stage" Environment'
|
|
122
|
+
hw_init_pp_path = File.join(git_environments_path, 'site', 'helloworld', 'manifests', 'init.pp')
|
|
123
|
+
git_on(master, 'checkout stage', git_environments_path)
|
|
124
|
+
create_remote_file(master, hw_init_pp_path, stage_env_custom_mod_manifest)
|
|
125
|
+
git_add_commit_push(master, 'stage', 'Update custom module.', git_environments_path)
|
|
126
|
+
|
|
127
|
+
step 'Delete the "test" Environment'
|
|
128
|
+
git_on(master, 'branch -D test', git_environments_path)
|
|
129
|
+
git_on(master, 'push origin --delete test', git_environments_path)
|
|
130
|
+
|
|
131
|
+
step 'Re-deploy Environments via r10k'
|
|
132
|
+
on(master, "#{r10k_fqp} deploy environment -v -p")
|
|
133
|
+
|
|
134
|
+
#Second Pass Verification
|
|
135
|
+
agents.each do |agent|
|
|
136
|
+
step 'Run Puppet Agent Against "production" Environment'
|
|
137
|
+
on(agent, puppet('agent', '--test', '--environment production'), :acceptable_exit_codes => 2) do |result|
|
|
138
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
139
|
+
assert_match(prod_env_notify_message_regex, result.stdout, 'Expected message not found!')
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
step 'Run Puppet Agent Against "temp" Environment'
|
|
143
|
+
on(agent, puppet('agent', '--test', '--environment temp'), :acceptable_exit_codes => 2) do |result|
|
|
144
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
145
|
+
assert_match(test_env_notify_message_regex, result.stdout, 'Expected message not found!')
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
step "Verify MOTD Contents"
|
|
149
|
+
on(agent, "cat #{motd_path}") do |result|
|
|
150
|
+
assert_match(motd_contents_regex, result.stdout, 'File content is invalid!')
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
step 'Run Puppet Agent Against "stage" Environment'
|
|
154
|
+
on(agent, puppet('agent', '--test', '--environment stage'), :acceptable_exit_codes => 2) do |result|
|
|
155
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
156
|
+
assert_match(stage_env_notify_message_regex, result.stdout, 'Expected message not found!')
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
step 'Attempt to Run Puppet Agent Against "test" Environment'
|
|
160
|
+
on(agent, puppet('agent', '--test', '--environment test'), :acceptable_exit_codes => 1) do |result|
|
|
161
|
+
assert_match(test_env_error_message_regex, result.stderr, 'Expected error was not detected!')
|
|
162
|
+
end
|
|
163
|
+
end
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
require 'git_utils'
|
|
2
|
+
require 'r10k_utils'
|
|
3
|
+
require 'master_manipulator'
|
|
4
|
+
test_name 'CODEMGMT-48 - C59263 - Multiple Environments with Adding, Removing and Re-adding Same Branch Name'
|
|
5
|
+
|
|
6
|
+
#Init
|
|
7
|
+
master_certname = on(master, puppet('config', 'print', 'certname')).stdout.rstrip
|
|
8
|
+
git_environments_path = '/root/environments'
|
|
9
|
+
last_commit = git_last_commit(master, git_environments_path)
|
|
10
|
+
local_files_root_path = ENV['FILES'] || 'files'
|
|
11
|
+
helloworld_module_path = File.join(local_files_root_path, 'modules', 'helloworld')
|
|
12
|
+
r10k_fqp = get_r10k_fqp(master)
|
|
13
|
+
|
|
14
|
+
initial_env_names = ['production', 'stage']
|
|
15
|
+
|
|
16
|
+
#Verification
|
|
17
|
+
notify_message_regex = /I am in the production environment/
|
|
18
|
+
stage_env_error_message_regex = /Error:.*Could not find environment 'stage'/
|
|
19
|
+
|
|
20
|
+
#Manifest
|
|
21
|
+
site_pp_path = File.join(git_environments_path, 'manifests', 'site.pp')
|
|
22
|
+
site_pp = create_site_pp(master_certname, ' include helloworld')
|
|
23
|
+
|
|
24
|
+
#Teardown
|
|
25
|
+
teardown do
|
|
26
|
+
clean_up_r10k(master, last_commit, git_environments_path)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
#Setup
|
|
30
|
+
initial_env_names.each do |env|
|
|
31
|
+
if env == 'production'
|
|
32
|
+
step "Checkout \"#{env}\" Branch"
|
|
33
|
+
git_on(master, "checkout #{env}", git_environments_path)
|
|
34
|
+
|
|
35
|
+
step "Copy \"helloworld\" Module to \"#{env}\" Environment Git Repo"
|
|
36
|
+
scp_to(master, helloworld_module_path, File.join(git_environments_path, "site", 'helloworld'))
|
|
37
|
+
|
|
38
|
+
step "Inject New \"site.pp\" to the \"#{env}\" Environment"
|
|
39
|
+
inject_site_pp(master, site_pp_path, site_pp)
|
|
40
|
+
|
|
41
|
+
step "Push Changes to \"#{env}\" Environment"
|
|
42
|
+
git_add_commit_push(master, env, 'Update site.pp and add module.', git_environments_path)
|
|
43
|
+
else
|
|
44
|
+
step "Create \"#{env}\" Branch from \"production\""
|
|
45
|
+
git_on(master, 'checkout production', git_environments_path)
|
|
46
|
+
git_on(master, "checkout -b #{env}", git_environments_path)
|
|
47
|
+
|
|
48
|
+
step "Push Changes to \"#{env}\" Environment"
|
|
49
|
+
git_push(master, env, git_environments_path)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
#Tests
|
|
54
|
+
step 'Deploy Environments via r10k'
|
|
55
|
+
on(master, "#{r10k_fqp} deploy environment -v")
|
|
56
|
+
|
|
57
|
+
#Initial Verification
|
|
58
|
+
initial_env_names.each do |env|
|
|
59
|
+
agents.each do |agent|
|
|
60
|
+
step "Run Puppet Agent Against \"#{env}\" Environment"
|
|
61
|
+
on(agent, puppet('agent', '--test', "--environment #{env}"), :acceptable_exit_codes => 2) do |result|
|
|
62
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
63
|
+
assert_match(/I am in the #{env} environment/, result.stdout, 'Expected message not found!')
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
#Remove "stage" Environment
|
|
69
|
+
step 'Delete the "stage" Environment'
|
|
70
|
+
git_on(master, 'checkout production', git_environments_path)
|
|
71
|
+
git_on(master, 'branch -D stage', git_environments_path)
|
|
72
|
+
git_on(master, 'push origin --delete stage', git_environments_path)
|
|
73
|
+
|
|
74
|
+
step 'Re-deploy Environments via r10k'
|
|
75
|
+
on(master, "#{r10k_fqp} deploy environment -v")
|
|
76
|
+
|
|
77
|
+
#Second Pass Verification
|
|
78
|
+
agents.each do |agent|
|
|
79
|
+
step 'Run Puppet Agent Against "production" Environment'
|
|
80
|
+
on(agent, puppet('agent', '--test', '--environment production'), :acceptable_exit_codes => 2) do |result|
|
|
81
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
82
|
+
assert_match(notify_message_regex, result.stdout, 'Expected message not found!')
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
step 'Attempt to Run Puppet Agent Against "stage" Environment'
|
|
86
|
+
on(agent, puppet('agent', '--test', '--environment stage'), :acceptable_exit_codes => 1) do |result|
|
|
87
|
+
assert_match(stage_env_error_message_regex, result.stderr, 'Expected error was not detected!')
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
#Create the "stage" Environment Again
|
|
92
|
+
step 'Create "stage" Branch from "production"'
|
|
93
|
+
git_on(master, 'checkout production', git_environments_path)
|
|
94
|
+
git_on(master, 'checkout -b stage', git_environments_path)
|
|
95
|
+
|
|
96
|
+
step 'Push Changes to "stage" Environment'
|
|
97
|
+
git_push(master, 'stage', git_environments_path)
|
|
98
|
+
|
|
99
|
+
step 'Re-deploy Environments via r10k'
|
|
100
|
+
on(master, "#{r10k_fqp} deploy environment -v")
|
|
101
|
+
|
|
102
|
+
#Final Verification
|
|
103
|
+
initial_env_names.each do |env|
|
|
104
|
+
agents.each do |agent|
|
|
105
|
+
step "Run Puppet Agent Against \"#{env}\" Environment"
|
|
106
|
+
on(agent, puppet('agent', '--test', "--environment #{env}"), :acceptable_exit_codes => 2) do |result|
|
|
107
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
108
|
+
assert_match(/I am in the #{env} environment/, result.stdout, 'Expected message not found!')
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require 'git_utils'
|
|
2
|
+
require 'r10k_utils'
|
|
3
|
+
require 'master_manipulator'
|
|
4
|
+
test_name 'CODEMGMT-155 - C62421 - Multiple Environments with Existing Unmanaged Environments'
|
|
5
|
+
|
|
6
|
+
#Init
|
|
7
|
+
master_certname = on(master, puppet('config', 'print', 'certname')).stdout.rstrip
|
|
8
|
+
environment_path = on(master, puppet('config', 'print', 'environmentpath')).stdout.rstrip
|
|
9
|
+
r10k_fqp = get_r10k_fqp(master)
|
|
10
|
+
|
|
11
|
+
git_environments_path = '/root/environments'
|
|
12
|
+
last_commit = git_last_commit(master, git_environments_path)
|
|
13
|
+
|
|
14
|
+
local_files_root_path = ENV['FILES'] || 'files'
|
|
15
|
+
helloworld_module_path = File.join(local_files_root_path, 'modules', 'helloworld')
|
|
16
|
+
|
|
17
|
+
#Manifest
|
|
18
|
+
site_pp_path = File.join(git_environments_path, 'manifests', 'site.pp')
|
|
19
|
+
site_pp = create_site_pp(master_certname, ' include helloworld')
|
|
20
|
+
|
|
21
|
+
#Verification
|
|
22
|
+
notify_message_prod_env_regex = /I am in the production environment/
|
|
23
|
+
notify_message_test_env_regex = /I am in the test environment/
|
|
24
|
+
removal_message_test_env_regex = /Removing unmanaged path.*test/
|
|
25
|
+
error_message_regex = /Could not retrieve catalog from remote server/
|
|
26
|
+
|
|
27
|
+
#Teardown
|
|
28
|
+
teardown do
|
|
29
|
+
clean_up_r10k(master, last_commit, git_environments_path)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
#Setup
|
|
33
|
+
step 'Checkout "production" Branch'
|
|
34
|
+
git_on(master, 'checkout production', git_environments_path)
|
|
35
|
+
|
|
36
|
+
step 'Copy "helloworld" Module to "production" Environment Git Repo'
|
|
37
|
+
scp_to(master, helloworld_module_path, File.join(git_environments_path, "site", 'helloworld'))
|
|
38
|
+
|
|
39
|
+
step 'Inject New "site.pp" to the "production" Environment'
|
|
40
|
+
inject_site_pp(master, site_pp_path, site_pp)
|
|
41
|
+
|
|
42
|
+
step 'Push Changes'
|
|
43
|
+
git_add_commit_push(master, 'production', 'Update site.pp and add module.', git_environments_path)
|
|
44
|
+
|
|
45
|
+
#Tests
|
|
46
|
+
step 'Deploy "production" Environment via r10k'
|
|
47
|
+
on(master, "#{r10k_fqp} deploy environment -v")
|
|
48
|
+
|
|
49
|
+
agents.each do |agent|
|
|
50
|
+
step 'Run Puppet Agent'
|
|
51
|
+
on(agent, puppet('agent', '--test', '--environment production'), :acceptable_exit_codes => 2) do |result|
|
|
52
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
53
|
+
assert_match(notify_message_prod_env_regex, result.stdout, 'Expected message not found!')
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
step 'Create Unmanaged "test" Environment'
|
|
58
|
+
on(master, "cp -r #{environment_path}/production #{environment_path}/test")
|
|
59
|
+
|
|
60
|
+
agents.each do |agent|
|
|
61
|
+
step 'Run Puppet Agent Against "test" Environment'
|
|
62
|
+
on(agent, puppet('agent', '--test', '--environment test'), :acceptable_exit_codes => 2) do |result|
|
|
63
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
64
|
+
assert_match(notify_message_test_env_regex, result.stdout, 'Expected message not found!')
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
step 'Re-deploy Environments via r10k'
|
|
69
|
+
on(master, "#{r10k_fqp} deploy environment -v") do |result|
|
|
70
|
+
assert_match(removal_message_test_env_regex, result.output, 'Unexpected error was detected!')
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
agents.each do |agent|
|
|
74
|
+
step 'Run Puppet Agent Against "test" Environment'
|
|
75
|
+
on(agent, puppet('agent', '--test', '--environment test'), :acceptable_exit_codes => 1) do |result|
|
|
76
|
+
assert_match(error_message_regex, result.stderr, 'Expected message not found!')
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
require 'git_utils'
|
|
2
|
+
require 'r10k_utils'
|
|
3
|
+
require 'master_manipulator'
|
|
4
|
+
test_name 'CODEMGMT-155 - C64588 - Single Environment with Git Module Using a Branch Reference where Updates Occur After Initial Deploy'
|
|
5
|
+
|
|
6
|
+
#Init
|
|
7
|
+
master_certname = on(master, puppet('config', 'print', 'certname')).stdout.rstrip
|
|
8
|
+
environment_path = on(master, puppet('config', 'print', 'environmentpath')).stdout.rstrip
|
|
9
|
+
r10k_fqp = get_r10k_fqp(master)
|
|
10
|
+
|
|
11
|
+
git_repo_parent_path = '/git_repos'
|
|
12
|
+
git_repo_module_name = 'helloworld_module'
|
|
13
|
+
git_remote_module_path = File.join(git_repo_parent_path, "#{git_repo_module_name}.git")
|
|
14
|
+
git_module_clone_path = '/root/helloworld'
|
|
15
|
+
|
|
16
|
+
git_environments_path = '/root/environments'
|
|
17
|
+
last_commit = git_last_commit(master, git_environments_path)
|
|
18
|
+
|
|
19
|
+
local_files_root_path = ENV['FILES'] || 'files'
|
|
20
|
+
helloworld_module_path = File.join(local_files_root_path, 'modules', 'helloworld')
|
|
21
|
+
|
|
22
|
+
#Verification
|
|
23
|
+
notify_original_message_regex = /I am in the production environment/
|
|
24
|
+
notify_updated_message = 'A totally different message'
|
|
25
|
+
notify_updated_message_regex = /#{notify_updated_message}/
|
|
26
|
+
|
|
27
|
+
#File
|
|
28
|
+
puppet_file = <<-PUPPETFILE
|
|
29
|
+
mod 'test/helloworld',
|
|
30
|
+
:git => '#{git_remote_module_path}',
|
|
31
|
+
:ref => 'master'
|
|
32
|
+
PUPPETFILE
|
|
33
|
+
|
|
34
|
+
puppet_file_path = File.join(git_environments_path, 'Puppetfile')
|
|
35
|
+
|
|
36
|
+
updated_helloworld_manifest = <<-MANIFEST
|
|
37
|
+
class helloworld {
|
|
38
|
+
notify { "Hello world!": message => "#{notify_updated_message}"}
|
|
39
|
+
}
|
|
40
|
+
MANIFEST
|
|
41
|
+
|
|
42
|
+
#Manifest
|
|
43
|
+
site_pp_path = File.join(git_environments_path, 'manifests', 'site.pp')
|
|
44
|
+
site_pp = create_site_pp(master_certname, ' include helloworld')
|
|
45
|
+
|
|
46
|
+
#Teardown
|
|
47
|
+
teardown do
|
|
48
|
+
step 'Remove Git Repo and Clone for Module'
|
|
49
|
+
on(master, "rm -rf #{git_remote_module_path} #{git_module_clone_path}")
|
|
50
|
+
|
|
51
|
+
clean_up_r10k(master, last_commit, git_environments_path)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
#Setup
|
|
55
|
+
step 'Create Bare Git Repo and Clone'
|
|
56
|
+
on(master, "mkdir -p #{git_remote_module_path} #{git_module_clone_path}")
|
|
57
|
+
git_init_bare_repo_and_clone(master, git_repo_parent_path, git_repo_module_name, git_module_clone_path)
|
|
58
|
+
|
|
59
|
+
step 'Copy "helloworld" Module to Git Repo'
|
|
60
|
+
scp_to(master, "#{helloworld_module_path}/manifests", git_module_clone_path)
|
|
61
|
+
|
|
62
|
+
step 'Push Changes for Module Git Repo to Remote'
|
|
63
|
+
git_add_commit_push(master, 'master', 'Add module.', git_module_clone_path)
|
|
64
|
+
|
|
65
|
+
step 'Inject New "site.pp" to the "production" Environment'
|
|
66
|
+
inject_site_pp(master, site_pp_path, site_pp)
|
|
67
|
+
|
|
68
|
+
step 'Create "Puppetfile" for the "production" Environment'
|
|
69
|
+
create_remote_file(master, puppet_file_path, puppet_file)
|
|
70
|
+
|
|
71
|
+
step 'Push Changes to Environments Git Repo Remote'
|
|
72
|
+
git_add_commit_push(master, 'production', 'Update site.pp and add module.', git_environments_path)
|
|
73
|
+
|
|
74
|
+
#Tests
|
|
75
|
+
step 'Deploy "production" Environment via r10k'
|
|
76
|
+
on(master, "#{r10k_fqp} deploy environment -v -p")
|
|
77
|
+
|
|
78
|
+
agents.each do |agent|
|
|
79
|
+
step 'Run Puppet Agent'
|
|
80
|
+
on(agent, puppet('agent', '--test', '--environment production'), :acceptable_exit_codes => 2) do |result|
|
|
81
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
82
|
+
assert_match(notify_original_message_regex, result.stdout, 'Expected message not found!')
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
step 'Update "helloworld" Module and Push Changes'
|
|
87
|
+
create_remote_file(master, "#{git_module_clone_path}/manifests/init.pp", updated_helloworld_manifest)
|
|
88
|
+
on(master, "chmod -R 644 #{git_module_clone_path}")
|
|
89
|
+
git_add_commit_push(master, 'master', 'Update module.', git_module_clone_path)
|
|
90
|
+
|
|
91
|
+
step 'Deploy "production" Environment Again via r10k'
|
|
92
|
+
on(master, "#{r10k_fqp} deploy environment -v -p")
|
|
93
|
+
|
|
94
|
+
agents.each do |agent|
|
|
95
|
+
step 'Run Puppet Agent'
|
|
96
|
+
on(agent, puppet('agent', '--test', '--environment production'), :acceptable_exit_codes => 2) do |result|
|
|
97
|
+
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
|
|
98
|
+
assert_match(notify_updated_message_regex, result.stdout, 'Expected message not found!')
|
|
99
|
+
end
|
|
100
|
+
end
|