chef-dk 0.13.21 → 0.14.25
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/CONTRIBUTING.md +186 -186
- data/Gemfile +37 -14
- data/Gemfile.lock +178 -72
- data/LICENSE +201 -201
- data/README.md +11 -148
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +27 -27
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +288 -288
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +52 -52
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +51 -51
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -1
- data/acceptance/Gemfile +2 -1
- data/acceptance/Gemfile.lock +39 -42
- data/acceptance/README.md +132 -132
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/trivial/.kitchen.yml +7 -7
- data/acceptance/trivial/test/integration/chefdk-current-install/inspec/chef_client_spec.rb +5 -5
- data/bin/chef +25 -25
- data/lib/chef-dk.rb +19 -19
- data/lib/chef-dk/authenticated_http.rb +40 -40
- data/lib/chef-dk/chef_runner.rb +107 -107
- data/lib/chef-dk/cli.rb +200 -200
- data/lib/chef-dk/command/base.rb +79 -79
- data/lib/chef-dk/command/clean_policy_cookbooks.rb +116 -116
- data/lib/chef-dk/command/clean_policy_revisions.rb +113 -113
- data/lib/chef-dk/command/delete_policy.rb +122 -122
- data/lib/chef-dk/command/delete_policy_group.rb +122 -122
- data/lib/chef-dk/command/diff.rb +316 -316
- data/lib/chef-dk/command/env.rb +90 -90
- data/lib/chef-dk/command/exec.rb +45 -45
- data/lib/chef-dk/command/export.rb +157 -157
- data/lib/chef-dk/command/gem.rb +47 -47
- data/lib/chef-dk/command/generate.rb +120 -120
- data/lib/chef-dk/command/generator_commands.rb +83 -80
- data/lib/chef-dk/command/generator_commands/app.rb +107 -107
- data/lib/chef-dk/command/generator_commands/attribute.rb +37 -37
- data/lib/chef-dk/command/generator_commands/base.rb +148 -148
- data/lib/chef-dk/command/generator_commands/cookbook.rb +153 -153
- data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +100 -100
- data/lib/chef-dk/command/generator_commands/cookbook_file.rb +45 -45
- data/lib/chef-dk/command/generator_commands/generator_generator.rb +177 -177
- data/lib/chef-dk/command/generator_commands/lwrp.rb +36 -36
- data/lib/chef-dk/command/generator_commands/policyfile.rb +127 -127
- data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
- data/lib/chef-dk/command/generator_commands/repo.rb +125 -125
- data/lib/chef-dk/command/generator_commands/template.rb +46 -46
- data/lib/chef-dk/command/install.rb +121 -121
- data/lib/chef-dk/command/provision.rb +438 -438
- data/lib/chef-dk/command/push.rb +118 -118
- data/lib/chef-dk/command/push_archive.rb +126 -126
- data/lib/chef-dk/command/shell_init.rb +180 -180
- data/lib/chef-dk/command/show_policy.rb +165 -165
- data/lib/chef-dk/command/undelete.rb +155 -155
- data/lib/chef-dk/command/update.rb +148 -148
- data/lib/chef-dk/command/verify.rb +106 -29
- data/lib/chef-dk/completions/bash.sh.erb +5 -5
- data/lib/chef-dk/completions/chef.fish.erb +10 -10
- data/lib/chef-dk/completions/zsh.zsh.erb +21 -21
- data/lib/chef-dk/component_test.rb +30 -1
- data/lib/chef-dk/configurable.rb +69 -69
- data/lib/chef-dk/cookbook_metadata.rb +45 -45
- data/lib/chef-dk/cookbook_omnifetch.rb +32 -32
- data/lib/chef-dk/cookbook_profiler/git.rb +151 -151
- data/lib/chef-dk/cookbook_profiler/identifiers.rb +72 -72
- data/lib/chef-dk/cookbook_profiler/null_scm.rb +32 -32
- data/lib/chef-dk/exceptions.rb +129 -129
- data/lib/chef-dk/generator.rb +163 -163
- data/lib/chef-dk/helpers.rb +159 -159
- data/lib/chef-dk/pager.rb +106 -106
- data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +138 -138
- data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +54 -54
- data/lib/chef-dk/policyfile/community_cookbook_source.rb +97 -97
- data/lib/chef-dk/policyfile/comparison_base.rb +124 -124
- data/lib/chef-dk/policyfile/cookbook_location_specification.rb +154 -154
- data/lib/chef-dk/policyfile/cookbook_locks.rb +466 -466
- data/lib/chef-dk/policyfile/cookbook_sources.rb +22 -22
- data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +90 -90
- data/lib/chef-dk/policyfile/differ.rb +266 -266
- data/lib/chef-dk/policyfile/dsl.rb +261 -261
- data/lib/chef-dk/policyfile/lister.rb +232 -232
- data/lib/chef-dk/policyfile/null_cookbook_source.rb +45 -45
- data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
- data/lib/chef-dk/policyfile/reports/install.rb +70 -70
- data/lib/chef-dk/policyfile/reports/table_printer.rb +58 -58
- data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
- data/lib/chef-dk/policyfile/solution_dependencies.rb +298 -298
- data/lib/chef-dk/policyfile/storage_config.rb +100 -100
- data/lib/chef-dk/policyfile/undo_record.rb +142 -142
- data/lib/chef-dk/policyfile/undo_stack.rb +130 -130
- data/lib/chef-dk/policyfile/uploader.rb +213 -213
- data/lib/chef-dk/policyfile_compiler.rb +419 -419
- data/lib/chef-dk/policyfile_lock.rb +552 -552
- data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
- data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +125 -125
- data/lib/chef-dk/policyfile_services/export_repo.rb +421 -421
- data/lib/chef-dk/policyfile_services/install.rb +126 -126
- data/lib/chef-dk/policyfile_services/push.rb +114 -114
- data/lib/chef-dk/policyfile_services/push_archive.rb +204 -204
- data/lib/chef-dk/policyfile_services/rm_policy.rb +142 -142
- data/lib/chef-dk/policyfile_services/rm_policy_group.rb +86 -86
- data/lib/chef-dk/policyfile_services/show_policy.rb +237 -237
- data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
- data/lib/chef-dk/policyfile_services/update_attributes.rb +104 -104
- data/lib/chef-dk/service_exception_inspectors.rb +25 -25
- data/lib/chef-dk/service_exception_inspectors/base.rb +40 -40
- data/lib/chef-dk/service_exception_inspectors/http.rb +121 -121
- data/lib/chef-dk/service_exceptions.rb +143 -143
- data/lib/chef-dk/shell_out.rb +36 -36
- data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +102 -102
- data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +54 -54
- data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +16 -16
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +28 -28
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +27 -27
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +7 -7
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +58 -58
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +6 -6
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/README.md +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/example.json +12 -12
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/policies/README.md +24 -24
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/README.md +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json +12 -12
- data/lib/chef-dk/skeletons/code_generator/files/default/serverspec_spec_helper.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +2 -2
- data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +2 -2
- data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +97 -97
- data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +12 -12
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +117 -117
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +24 -24
- data/lib/chef-dk/skeletons/code_generator/recipes/lwrp.rb +23 -23
- data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +27 -27
- data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +67 -67
- data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +32 -32
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +3 -3
- data/lib/chef-dk/skeletons/code_generator/templates/default/{LICENSE.apache2.erb → LICENSE.apachev2.erb} +201 -201
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +339 -339
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +674 -674
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.mit.erb +21 -21
- data/lib/chef-dk/skeletons/code_generator/templates/default/Policyfile.rb.erb +25 -25
- data/lib/chef-dk/skeletons/code_generator/templates/default/README.md.erb +4 -4
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +21 -21
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +32 -32
- data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +7 -7
- data/lib/chef-dk/skeletons/code_generator/templates/default/recipe.rb.erb +5 -5
- data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +20 -20
- data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +11 -11
- data/lib/chef-dk/skeletons/code_generator/templates/default/serverspec_default_spec.rb.erb +9 -9
- data/lib/chef-dk/ui.rb +58 -58
- data/lib/chef-dk/version.rb +1 -1
- data/lib/kitchen/provisioner/policyfile_zero.rb +195 -195
- data/omnibus_overrides.rb +19 -11
- data/spec/shared/a_file_generator.rb +125 -125
- data/spec/shared/a_generated_file.rb +12 -12
- data/spec/shared/command_with_ui_object.rb +11 -11
- data/spec/shared/custom_generator_cookbook.rb +130 -130
- data/spec/shared/fixture_cookbook_checksums.rb +47 -47
- data/spec/shared/setup_git_cookbooks.rb +53 -53
- data/spec/spec_helper.rb +51 -51
- data/spec/test_helpers.rb +84 -84
- data/spec/unit/chef_runner_spec.rb +139 -139
- data/spec/unit/cli_spec.rb +357 -357
- data/spec/unit/command/base_spec.rb +173 -169
- data/spec/unit/command/clean_policy_cookbooks_spec.rb +181 -181
- data/spec/unit/command/clean_policy_revisions_spec.rb +181 -181
- data/spec/unit/command/delete_policy_group_spec.rb +207 -207
- data/spec/unit/command/delete_policy_spec.rb +207 -207
- data/spec/unit/command/diff_spec.rb +312 -312
- data/spec/unit/command/env_spec.rb +52 -52
- data/spec/unit/command/exec_spec.rb +179 -179
- data/spec/unit/command/export_spec.rb +200 -200
- data/spec/unit/command/generate_spec.rb +142 -142
- data/spec/unit/command/generator_commands/app_spec.rb +169 -169
- data/spec/unit/command/generator_commands/attribute_spec.rb +32 -32
- data/spec/unit/command/generator_commands/base_spec.rb +136 -136
- data/spec/unit/command/generator_commands/cookbook_file_spec.rb +32 -32
- data/spec/unit/command/generator_commands/cookbook_spec.rb +450 -450
- data/spec/unit/command/generator_commands/generator_generator_spec.rb +229 -229
- data/spec/unit/command/generator_commands/lwrp_spec.rb +32 -32
- data/spec/unit/command/generator_commands/policyfile_spec.rb +225 -225
- data/spec/unit/command/generator_commands/recipe_spec.rb +34 -34
- data/spec/unit/command/generator_commands/repo_spec.rb +374 -367
- data/spec/unit/command/generator_commands/template_spec.rb +32 -32
- data/spec/unit/command/install_spec.rb +179 -179
- data/spec/unit/command/provision_spec.rb +592 -592
- data/spec/unit/command/push_archive_spec.rb +153 -153
- data/spec/unit/command/push_spec.rb +199 -199
- data/spec/unit/command/shell_init_spec.rb +329 -329
- data/spec/unit/command/show_policy_spec.rb +235 -235
- data/spec/unit/command/undelete_spec.rb +246 -246
- data/spec/unit/command/update_spec.rb +275 -275
- data/spec/unit/command/verify_spec.rb +15 -6
- data/spec/unit/commands_map_spec.rb +57 -57
- data/spec/unit/component_test_spec.rb +128 -126
- data/spec/unit/configurable_spec.rb +41 -41
- data/spec/unit/cookbook_metadata_spec.rb +98 -98
- data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
- data/spec/unit/cookbook_profiler/identifiers_spec.rb +83 -83
- data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_one.rb +9 -9
- data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_two.rb +9 -9
- data/spec/unit/fixtures/command/cli_test_command.rb +26 -26
- data/spec/unit/fixtures/command/explicit_path_example.rb +7 -7
- data/spec/unit/fixtures/configurable/test_config_loader.rb +5 -5
- data/spec/unit/fixtures/configurable/test_configurable.rb +10 -10
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbooks_api/pruned_small_universe.json +1321 -1321
- data/spec/unit/fixtures/cookbooks_api/small_universe.json +2987 -2987
- data/spec/unit/fixtures/cookbooks_api/universe.json +1 -1
- data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +36 -36
- data/spec/unit/fixtures/dev_cookbooks/README.md +16 -16
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/integration_test +2 -2
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/verify_me +5 -5
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/chef/verify_me +3 -3
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/test-kitchen/verify_me +2 -2
- data/spec/unit/fixtures/example_cookbook/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/example_cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/metadata.json +5 -5
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/recipes/default.rb +8 -8
- data/spec/unit/fixtures/example_cookbook_no_metadata/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook_no_metadata/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook_no_metadata/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook_no_metadata/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook_no_metadata/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook_no_metadata/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/Berksfile +3 -3
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/metadata.rb +9 -9
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/.kitchen.yml +16 -16
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/Berksfile +3 -3
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/metadata-missing/README.md +2 -2
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
- data/spec/unit/generator_spec.rb +119 -120
- data/spec/unit/helpers_spec.rb +92 -92
- data/spec/unit/pager_spec.rb +119 -119
- data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +93 -93
- data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +34 -34
- data/spec/unit/policyfile/community_cookbook_source_spec.rb +84 -84
- data/spec/unit/policyfile/comparison_base_spec.rb +343 -343
- data/spec/unit/policyfile/cookbook_location_specification_spec.rb +277 -277
- data/spec/unit/policyfile/cookbook_locks_spec.rb +529 -529
- data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +130 -130
- data/spec/unit/policyfile/differ_spec.rb +687 -687
- data/spec/unit/policyfile/lister_spec.rb +272 -272
- data/spec/unit/policyfile/null_cookbook_source_spec.rb +35 -35
- data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
- data/spec/unit/policyfile/reports/install_spec.rb +115 -115
- data/spec/unit/policyfile/reports/upload_spec.rb +96 -96
- data/spec/unit/policyfile/solution_dependencies_spec.rb +145 -145
- data/spec/unit/policyfile/storage_config_spec.rb +172 -172
- data/spec/unit/policyfile/undo_record_spec.rb +260 -260
- data/spec/unit/policyfile/undo_stack_spec.rb +266 -266
- data/spec/unit/policyfile/uploader_spec.rb +410 -410
- data/spec/unit/policyfile_demands_spec.rb +1203 -1203
- data/spec/unit/policyfile_evaluation_spec.rb +642 -642
- data/spec/unit/policyfile_lock_build_spec.rb +1056 -1056
- data/spec/unit/policyfile_lock_install_spec.rb +138 -138
- data/spec/unit/policyfile_lock_serialization_spec.rb +425 -425
- data/spec/unit/policyfile_lock_validation_spec.rb +611 -611
- data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
- data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +275 -275
- data/spec/unit/policyfile_services/export_repo_spec.rb +481 -481
- data/spec/unit/policyfile_services/install_spec.rb +211 -211
- data/spec/unit/policyfile_services/push_archive_spec.rb +378 -378
- data/spec/unit/policyfile_services/push_spec.rb +233 -233
- data/spec/unit/policyfile_services/rm_policy_group_spec.rb +241 -241
- data/spec/unit/policyfile_services/rm_policy_spec.rb +266 -266
- data/spec/unit/policyfile_services/show_policy_spec.rb +889 -889
- data/spec/unit/policyfile_services/undelete_spec.rb +304 -304
- data/spec/unit/policyfile_services/update_attributes_spec.rb +217 -217
- data/spec/unit/service_exception_inspectors/base_spec.rb +43 -43
- data/spec/unit/service_exception_inspectors/http_spec.rb +140 -140
- data/spec/unit/shell_out_spec.rb +34 -34
- data/spec/unit/tasks/helpers_spec.rb +75 -0
- data/tasks/bin/bundle-platform +0 -0
- data/tasks/bin/bundle-platform.bat +0 -0
- data/tasks/bin/create-override-gemfile +110 -0
- data/tasks/bundle.rb +27 -11
- data/tasks/bundle_util.rb +6 -5
- data/tasks/dependencies.rb +97 -122
- data/tasks/gemfile_util.rb +357 -66
- data/tasks/helpers.rb +47 -0
- data/tasks/version.rb +1 -5
- data/version_policy.rb +66 -41
- data/warning.txt +9 -9
- metadata +7 -5
- data/Gemfile.windows +0 -34
- data/Gemfile.windows.lock +0 -936
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
driver:
|
|
2
|
-
name: vagrant
|
|
3
|
-
forward_agent: yes
|
|
4
|
-
customize:
|
|
5
|
-
cpus: 2
|
|
6
|
-
memory: 1024
|
|
7
|
-
|
|
8
|
-
provisioner:
|
|
9
|
-
name: chef_zero
|
|
10
|
-
product_name: <%= ENV["KITCHEN_CHEF_PRODUCT"] %>
|
|
11
|
-
product_version: <%= ENV["KITCHEN_CHEF_VERSION"] %>
|
|
12
|
-
channel: <%= ENV["KITCHEN_CHEF_CHANNEL"] %>
|
|
13
|
-
client_rb:
|
|
14
|
-
audit_mode: :enabled
|
|
15
|
-
attributes:
|
|
16
|
-
chef_acceptance: "true"
|
|
17
|
-
use_system_chef: "true"
|
|
18
|
-
|
|
19
|
-
platforms:
|
|
20
|
-
<% %w(
|
|
21
|
-
debian-8
|
|
22
|
-
debian-7
|
|
23
|
-
debian-6
|
|
24
|
-
ubuntu-15.10
|
|
25
|
-
ubuntu-14.04
|
|
26
|
-
el-7
|
|
27
|
-
el-6
|
|
28
|
-
el-5
|
|
29
|
-
freebsd-10
|
|
30
|
-
freebsd-9
|
|
31
|
-
fedora-21
|
|
32
|
-
).each do |platform| %>
|
|
33
|
-
- name: <%= platform %>
|
|
34
|
-
driver:
|
|
35
|
-
box: opscode-<%= platform %>
|
|
36
|
-
box_url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_<%= platform %>_chef-provisionerless.box
|
|
37
|
-
<% end %>
|
|
38
|
-
# freebsd-8
|
|
39
|
-
# ubuntu-12.04
|
|
40
|
-
# centos-7
|
|
41
|
-
# centos-6
|
|
42
|
-
|
|
43
|
-
<% %w(
|
|
44
|
-
2012r2
|
|
45
|
-
2012
|
|
46
|
-
2008r2
|
|
47
|
-
).each do |version| %>
|
|
48
|
-
- name: windows-<%= version %>
|
|
49
|
-
driver:
|
|
50
|
-
box: chef/windows-server-<%= version %>-standard
|
|
51
|
-
# URL is atlas
|
|
52
|
-
<% end %>
|
|
1
|
+
driver:
|
|
2
|
+
name: vagrant
|
|
3
|
+
forward_agent: yes
|
|
4
|
+
customize:
|
|
5
|
+
cpus: 2
|
|
6
|
+
memory: 1024
|
|
7
|
+
|
|
8
|
+
provisioner:
|
|
9
|
+
name: chef_zero
|
|
10
|
+
product_name: <%= ENV["KITCHEN_CHEF_PRODUCT"] %>
|
|
11
|
+
product_version: <%= ENV["KITCHEN_CHEF_VERSION"] %>
|
|
12
|
+
channel: <%= ENV["KITCHEN_CHEF_CHANNEL"] %>
|
|
13
|
+
client_rb:
|
|
14
|
+
audit_mode: :enabled
|
|
15
|
+
attributes:
|
|
16
|
+
chef_acceptance: "true"
|
|
17
|
+
use_system_chef: "true"
|
|
18
|
+
|
|
19
|
+
platforms:
|
|
20
|
+
<% %w(
|
|
21
|
+
debian-8
|
|
22
|
+
debian-7
|
|
23
|
+
debian-6
|
|
24
|
+
ubuntu-15.10
|
|
25
|
+
ubuntu-14.04
|
|
26
|
+
el-7
|
|
27
|
+
el-6
|
|
28
|
+
el-5
|
|
29
|
+
freebsd-10
|
|
30
|
+
freebsd-9
|
|
31
|
+
fedora-21
|
|
32
|
+
).each do |platform| %>
|
|
33
|
+
- name: <%= platform %>
|
|
34
|
+
driver:
|
|
35
|
+
box: opscode-<%= platform %>
|
|
36
|
+
box_url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_<%= platform %>_chef-provisionerless.box
|
|
37
|
+
<% end %>
|
|
38
|
+
# freebsd-8
|
|
39
|
+
# ubuntu-12.04
|
|
40
|
+
# centos-7
|
|
41
|
+
# centos-6
|
|
42
|
+
|
|
43
|
+
<% %w(
|
|
44
|
+
2012r2
|
|
45
|
+
2012
|
|
46
|
+
2008r2
|
|
47
|
+
).each do |version| %>
|
|
48
|
+
- name: windows-<%= version %>
|
|
49
|
+
driver:
|
|
50
|
+
box: chef/windows-server-<%= version %>-standard
|
|
51
|
+
# URL is atlas
|
|
52
|
+
<% end %>
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
module KitchenAcceptance
|
|
2
|
-
class Kitchen < Chef::Resource
|
|
3
|
-
resource_name :kitchen
|
|
4
|
-
|
|
5
|
-
property :command, String, name_property: true
|
|
6
|
-
property :driver, %w(ec2 vagrant), coerce: proc { |v| v.to_s }, default: lazy { ENV["KITCHEN_DRIVER"] || :ec2 }
|
|
7
|
-
property :instances, String, default: lazy { ENV["KITCHEN_INSTANCES"] ? ENV["KITCHEN_INSTANCES"] : "" }
|
|
8
|
-
property :kitchen_dir, String, default: Chef.node['chef-acceptance']['suite-dir']
|
|
9
|
-
property :chef_product, String, default: lazy {
|
|
10
|
-
ENV["KITCHEN_CHEF_PRODUCT"] || begin
|
|
11
|
-
# Figure out if we're in chefdk or chef
|
|
12
|
-
if ::File.exist?(::File.expand_path("../../chef-dk.gemspec", node['chef-acceptance']['suite-dir']))
|
|
13
|
-
"chefdk"
|
|
14
|
-
else
|
|
15
|
-
"chef"
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
}
|
|
19
|
-
property :chef_channel, String, default: lazy {
|
|
20
|
-
ENV["KITCHEN_CHEF_CHANNEL"] ||
|
|
21
|
-
# Pick up current if we can't connect to artifactory
|
|
22
|
-
(ENV["ARTIFACTORY_USERNAME"] ? "unstable" : "current")
|
|
23
|
-
}
|
|
24
|
-
property :chef_version, String, default: lazy {
|
|
25
|
-
ENV["KITCHEN_CHEF_VERSION"] ||
|
|
26
|
-
# If we're running the chef or chefdk projects in jenkins, pick up the project name.
|
|
27
|
-
(ENV["PROJECT_NAME"] == chef_product ? ENV["OMNIBUS_BUILD_VERSION"] : nil) ||
|
|
28
|
-
"latest"
|
|
29
|
-
}
|
|
30
|
-
property :artifactory_username, String, default: lazy { ENV["ARTIFACTORY_USERNAME"] ? ENV["ARTIFACTORY_USERNAME"] : "" }
|
|
31
|
-
property :artifactory_password, String, default: lazy { ENV["ARTIFACTORY_PASSWORD"] ? ENV["ARTIFACTORY_PASSWORD"] : "" }
|
|
32
|
-
property :env, Hash, default: {}
|
|
33
|
-
property :kitchen_options, String, default: lazy { ENV["PROJECT_NAME"] ? "-c -l debug" : "-c" }
|
|
34
|
-
|
|
35
|
-
action :run do
|
|
36
|
-
execute "bundle exec kitchen #{command}#{instances ? " #{instances}" : ""}#{kitchen_options ? " #{kitchen_options}" : ""}" do
|
|
37
|
-
cwd kitchen_dir
|
|
38
|
-
env({
|
|
39
|
-
"KITCHEN_DRIVER" => driver,
|
|
40
|
-
"KITCHEN_INSTANCES" => instances,
|
|
41
|
-
"KITCHEN_LOCAL_YAML" => ::File.expand_path("../../.kitchen.#{driver}.yml", __FILE__),
|
|
42
|
-
"KITCHEN_CHEF_PRODUCT" => chef_product,
|
|
43
|
-
"KITCHEN_CHEF_CHANNEL" => chef_channel,
|
|
44
|
-
"KITCHEN_CHEF_VERSION" => chef_version,
|
|
45
|
-
"ARTIFACTORY_USERNAME" => artifactory_username,
|
|
46
|
-
"ARTIFACTORY_PASSWORD" => artifactory_password
|
|
47
|
-
}.merge(new_resource.env))
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
1
|
+
module KitchenAcceptance
|
|
2
|
+
class Kitchen < Chef::Resource
|
|
3
|
+
resource_name :kitchen
|
|
4
|
+
|
|
5
|
+
property :command, String, name_property: true
|
|
6
|
+
property :driver, %w(ec2 vagrant), coerce: proc { |v| v.to_s }, default: lazy { ENV["KITCHEN_DRIVER"] || :ec2 }
|
|
7
|
+
property :instances, String, default: lazy { ENV["KITCHEN_INSTANCES"] ? ENV["KITCHEN_INSTANCES"] : "" }
|
|
8
|
+
property :kitchen_dir, String, default: Chef.node['chef-acceptance']['suite-dir']
|
|
9
|
+
property :chef_product, String, default: lazy {
|
|
10
|
+
ENV["KITCHEN_CHEF_PRODUCT"] || begin
|
|
11
|
+
# Figure out if we're in chefdk or chef
|
|
12
|
+
if ::File.exist?(::File.expand_path("../../chef-dk.gemspec", node['chef-acceptance']['suite-dir']))
|
|
13
|
+
"chefdk"
|
|
14
|
+
else
|
|
15
|
+
"chef"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
}
|
|
19
|
+
property :chef_channel, String, default: lazy {
|
|
20
|
+
ENV["KITCHEN_CHEF_CHANNEL"] ||
|
|
21
|
+
# Pick up current if we can't connect to artifactory
|
|
22
|
+
(ENV["ARTIFACTORY_USERNAME"] ? "unstable" : "current")
|
|
23
|
+
}
|
|
24
|
+
property :chef_version, String, default: lazy {
|
|
25
|
+
ENV["KITCHEN_CHEF_VERSION"] ||
|
|
26
|
+
# If we're running the chef or chefdk projects in jenkins, pick up the project name.
|
|
27
|
+
(ENV["PROJECT_NAME"] == chef_product ? ENV["OMNIBUS_BUILD_VERSION"] : nil) ||
|
|
28
|
+
"latest"
|
|
29
|
+
}
|
|
30
|
+
property :artifactory_username, String, default: lazy { ENV["ARTIFACTORY_USERNAME"] ? ENV["ARTIFACTORY_USERNAME"] : "" }
|
|
31
|
+
property :artifactory_password, String, default: lazy { ENV["ARTIFACTORY_PASSWORD"] ? ENV["ARTIFACTORY_PASSWORD"] : "" }
|
|
32
|
+
property :env, Hash, default: {}
|
|
33
|
+
property :kitchen_options, String, default: lazy { ENV["PROJECT_NAME"] ? "-c -l debug" : "-c" }
|
|
34
|
+
|
|
35
|
+
action :run do
|
|
36
|
+
execute "bundle exec kitchen #{command}#{instances ? " #{instances}" : ""}#{kitchen_options ? " #{kitchen_options}" : ""}" do
|
|
37
|
+
cwd kitchen_dir
|
|
38
|
+
env({
|
|
39
|
+
"KITCHEN_DRIVER" => driver,
|
|
40
|
+
"KITCHEN_INSTANCES" => instances,
|
|
41
|
+
"KITCHEN_LOCAL_YAML" => ::File.expand_path("../../.kitchen.#{driver}.yml", __FILE__),
|
|
42
|
+
"KITCHEN_CHEF_PRODUCT" => chef_product,
|
|
43
|
+
"KITCHEN_CHEF_CHANNEL" => chef_channel,
|
|
44
|
+
"KITCHEN_CHEF_VERSION" => chef_version,
|
|
45
|
+
"ARTIFACTORY_USERNAME" => artifactory_username,
|
|
46
|
+
"ARTIFACTORY_PASSWORD" => artifactory_password
|
|
47
|
+
}.merge(new_resource.env))
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
name "kitchen_acceptance"
|
|
1
|
+
name "kitchen_acceptance"
|
data/acceptance/Gemfile
CHANGED
|
@@ -2,9 +2,10 @@ source "https://rubygems.org"
|
|
|
2
2
|
|
|
3
3
|
gem "chef-acceptance", github: "chef/chef-acceptance"
|
|
4
4
|
gem "test-kitchen"
|
|
5
|
-
gem "kitchen-ec2"
|
|
5
|
+
gem "kitchen-ec2"
|
|
6
6
|
gem "kitchen-inspec"
|
|
7
7
|
gem "kitchen-vagrant"
|
|
8
8
|
gem "windows_chef_zero"
|
|
9
9
|
gem "winrm-fs"
|
|
10
|
+
gem "winrm-elevated"
|
|
10
11
|
gem "berkshelf"
|
data/acceptance/Gemfile.lock
CHANGED
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
GIT
|
|
2
2
|
remote: git://github.com/chef/chef-acceptance.git
|
|
3
|
-
revision:
|
|
3
|
+
revision: 4abda84e2fadd0452b77a8a88d4fd534843ced55
|
|
4
4
|
specs:
|
|
5
5
|
chef-acceptance (0.2.0)
|
|
6
6
|
mixlib-shellout (~> 2.0)
|
|
7
7
|
thor (~> 0.19)
|
|
8
8
|
|
|
9
|
-
GIT
|
|
10
|
-
remote: git://github.com/test-kitchen/kitchen-ec2.git
|
|
11
|
-
revision: 61458c354d71a4156263e7f8b33e51c6edcb5aa6
|
|
12
|
-
branch: jk/image-search-only
|
|
13
|
-
specs:
|
|
14
|
-
kitchen-ec2 (1.0.0.dev.0)
|
|
15
|
-
aws-sdk (~> 2)
|
|
16
|
-
excon
|
|
17
|
-
multi_json
|
|
18
|
-
retryable (~> 2.0)
|
|
19
|
-
test-kitchen (~> 1.4, >= 1.4.1)
|
|
20
|
-
ubuntu_ami (~> 0.4.1)
|
|
21
|
-
|
|
22
9
|
GEM
|
|
23
10
|
remote: https://rubygems.org/
|
|
24
11
|
specs:
|
|
25
12
|
addressable (2.4.0)
|
|
26
13
|
artifactory (2.3.2)
|
|
27
|
-
aws-sdk (2.
|
|
28
|
-
aws-sdk-resources (= 2.
|
|
29
|
-
aws-sdk-core (2.
|
|
14
|
+
aws-sdk (2.3.4)
|
|
15
|
+
aws-sdk-resources (= 2.3.4)
|
|
16
|
+
aws-sdk-core (2.3.4)
|
|
30
17
|
jmespath (~> 1.0)
|
|
31
|
-
aws-sdk-resources (2.
|
|
32
|
-
aws-sdk-core (= 2.
|
|
33
|
-
berkshelf (4.3.
|
|
18
|
+
aws-sdk-resources (2.3.4)
|
|
19
|
+
aws-sdk-core (= 2.3.4)
|
|
20
|
+
berkshelf (4.3.3)
|
|
34
21
|
addressable (~> 2.3, >= 2.3.4)
|
|
35
22
|
berkshelf-api-client (~> 2.0, >= 2.0.2)
|
|
36
23
|
buff-config (~> 1.0)
|
|
@@ -65,7 +52,7 @@ GEM
|
|
|
65
52
|
celluloid-io (0.16.2)
|
|
66
53
|
celluloid (>= 0.16.0)
|
|
67
54
|
nio4r (>= 1.1.0)
|
|
68
|
-
chef-config (12.
|
|
55
|
+
chef-config (12.10.24)
|
|
69
56
|
fuzzyurl (~> 0.8.0)
|
|
70
57
|
mixlib-config (~> 2.0)
|
|
71
58
|
mixlib-shellout (~> 2.0)
|
|
@@ -85,16 +72,17 @@ GEM
|
|
|
85
72
|
ffi (>= 1.0.1)
|
|
86
73
|
gyoku (1.3.1)
|
|
87
74
|
builder (>= 2.1.2)
|
|
88
|
-
hashie (3.4.
|
|
89
|
-
hitimes (1.2.
|
|
90
|
-
httpclient (2.7.
|
|
91
|
-
inspec (0.
|
|
75
|
+
hashie (3.4.4)
|
|
76
|
+
hitimes (1.2.4)
|
|
77
|
+
httpclient (2.7.2)
|
|
78
|
+
inspec (0.22.0)
|
|
79
|
+
hashie (~> 3.4)
|
|
92
80
|
json (~> 1.8)
|
|
93
81
|
method_source (~> 0.8)
|
|
94
82
|
pry (~> 0)
|
|
95
|
-
r-train (~> 0.
|
|
83
|
+
r-train (~> 0.12)
|
|
96
84
|
rainbow (~> 2)
|
|
97
|
-
rspec (~> 3
|
|
85
|
+
rspec (~> 3)
|
|
98
86
|
rspec-its (~> 1.2)
|
|
99
87
|
rubyzip (~> 1.1)
|
|
100
88
|
thor (~> 0.19)
|
|
@@ -102,8 +90,14 @@ GEM
|
|
|
102
90
|
json_pure (>= 1.8.1)
|
|
103
91
|
json (1.8.3)
|
|
104
92
|
json_pure (1.8.3)
|
|
105
|
-
kitchen-
|
|
106
|
-
|
|
93
|
+
kitchen-ec2 (1.0.0)
|
|
94
|
+
aws-sdk (~> 2)
|
|
95
|
+
excon
|
|
96
|
+
multi_json
|
|
97
|
+
retryable (~> 2.0)
|
|
98
|
+
test-kitchen (~> 1.4, >= 1.4.1)
|
|
99
|
+
kitchen-inspec (0.13.0)
|
|
100
|
+
inspec (>= 0.20.0, < 1.0.0)
|
|
107
101
|
test-kitchen (~> 1.6)
|
|
108
102
|
kitchen-vagrant (0.20.0)
|
|
109
103
|
test-kitchen (~> 1.4)
|
|
@@ -119,15 +113,15 @@ GEM
|
|
|
119
113
|
rspec-expectations (~> 3.2)
|
|
120
114
|
rspec-mocks (~> 3.2)
|
|
121
115
|
mixlib-config (2.2.1)
|
|
122
|
-
mixlib-install (1.0.
|
|
123
|
-
artifactory
|
|
124
|
-
mixlib-shellout
|
|
125
|
-
mixlib-versioning
|
|
116
|
+
mixlib-install (1.0.11)
|
|
117
|
+
artifactory
|
|
118
|
+
mixlib-shellout
|
|
119
|
+
mixlib-versioning
|
|
126
120
|
mixlib-log (1.6.0)
|
|
127
121
|
mixlib-shellout (2.2.6)
|
|
128
122
|
mixlib-versioning (1.1.0)
|
|
129
|
-
molinillo (0.4.
|
|
130
|
-
multi_json (1.
|
|
123
|
+
molinillo (0.4.5)
|
|
124
|
+
multi_json (1.12.0)
|
|
131
125
|
multipart-post (2.0.0)
|
|
132
126
|
net-scp (1.2.1)
|
|
133
127
|
net-ssh (>= 2.6.5)
|
|
@@ -140,17 +134,17 @@ GEM
|
|
|
140
134
|
coderay (~> 1.1.0)
|
|
141
135
|
method_source (~> 0.8.1)
|
|
142
136
|
slop (~> 3.4)
|
|
143
|
-
r-train (0.
|
|
137
|
+
r-train (0.12.0)
|
|
144
138
|
docker-api (~> 1.26.2)
|
|
145
139
|
json (~> 1.8)
|
|
146
|
-
mixlib-shellout (~> 2.
|
|
140
|
+
mixlib-shellout (~> 2.0)
|
|
147
141
|
net-scp (~> 1.2)
|
|
148
142
|
net-ssh (>= 2.9, < 4.0)
|
|
149
143
|
winrm (~> 1.6)
|
|
150
144
|
winrm-fs (~> 0.3)
|
|
151
145
|
rainbow (2.1.0)
|
|
152
146
|
retryable (2.0.3)
|
|
153
|
-
ridley (4.5.
|
|
147
|
+
ridley (4.5.1)
|
|
154
148
|
addressable
|
|
155
149
|
buff-config (~> 1.0)
|
|
156
150
|
buff-extensions (~> 1.0)
|
|
@@ -195,7 +189,7 @@ GEM
|
|
|
195
189
|
solve (2.0.3)
|
|
196
190
|
molinillo (~> 0.4.2)
|
|
197
191
|
semverse (~> 1.1)
|
|
198
|
-
test-kitchen (1.
|
|
192
|
+
test-kitchen (1.8.0)
|
|
199
193
|
mixlib-install (~> 1.0, >= 1.0.4)
|
|
200
194
|
mixlib-shellout (>= 1.2, < 3.0)
|
|
201
195
|
net-scp (~> 1.1)
|
|
@@ -205,13 +199,12 @@ GEM
|
|
|
205
199
|
thor (0.19.1)
|
|
206
200
|
timers (4.0.4)
|
|
207
201
|
hitimes
|
|
208
|
-
ubuntu_ami (0.4.1)
|
|
209
202
|
varia_model (0.4.1)
|
|
210
203
|
buff-extensions (~> 1.0)
|
|
211
204
|
hashie (>= 2.0.2, < 4.0.0)
|
|
212
205
|
windows_chef_zero (2.0.0)
|
|
213
206
|
test-kitchen (>= 1.2.1)
|
|
214
|
-
winrm (1.
|
|
207
|
+
winrm (1.8.1)
|
|
215
208
|
builder (>= 2.1.2)
|
|
216
209
|
gssapi (~> 1.2)
|
|
217
210
|
gyoku (~> 1.0)
|
|
@@ -219,6 +212,9 @@ GEM
|
|
|
219
212
|
logging (>= 1.6.1, < 3.0)
|
|
220
213
|
nori (~> 2.0)
|
|
221
214
|
rubyntlm (~> 0.6.0)
|
|
215
|
+
winrm-elevated (0.4.0)
|
|
216
|
+
winrm (~> 1.5)
|
|
217
|
+
winrm-fs (~> 0.4.2)
|
|
222
218
|
winrm-fs (0.4.2)
|
|
223
219
|
erubis (~> 2.7)
|
|
224
220
|
logging (>= 1.6.1, < 3.0)
|
|
@@ -231,11 +227,12 @@ PLATFORMS
|
|
|
231
227
|
DEPENDENCIES
|
|
232
228
|
berkshelf
|
|
233
229
|
chef-acceptance!
|
|
234
|
-
kitchen-ec2
|
|
230
|
+
kitchen-ec2
|
|
235
231
|
kitchen-inspec
|
|
236
232
|
kitchen-vagrant
|
|
237
233
|
test-kitchen
|
|
238
234
|
windows_chef_zero
|
|
235
|
+
winrm-elevated
|
|
239
236
|
winrm-fs
|
|
240
237
|
|
|
241
238
|
BUNDLED WITH
|
data/acceptance/README.md
CHANGED
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
# Acceptance Testing for Chef DK
|
|
2
|
-
This folder contains acceptance tests that are required for ChefDK
|
|
3
|
-
release readiness.
|
|
4
|
-
|
|
5
|
-
## Getting started
|
|
6
|
-
The tests use the _chef-acceptance_ gem as the high level framework.
|
|
7
|
-
All the gems needed to run these tests can be installed with Bundler.
|
|
8
|
-
|
|
9
|
-
### Important Note!
|
|
10
|
-
Before running chef-acceptance, you *MUST* do the following on your current session:
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
export APPBUNDLER_ALLOW_RVM=true
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Pre-requisites / One time set up
|
|
17
|
-
|
|
18
|
-
### Set up for local VM (Vagrant)
|
|
19
|
-
|
|
20
|
-
If you intend to run the acceptance tests on a local VM, the supported solution is to use Vagrant.
|
|
21
|
-
Ensure that Vagrant is installed on the machine that tests will run from, along with a
|
|
22
|
-
virtualization driver (E.g.: VirtualBox).
|
|
23
|
-
|
|
24
|
-
Set up the KITCHEN_DRIVER environment variable appropriately (value should be "vagrant"). E.g.:
|
|
25
|
-
```
|
|
26
|
-
export KITCHEN_DRIVER=vagrant
|
|
27
|
-
```
|
|
28
|
-
Add this to your shell profile or startup script as needed.
|
|
29
|
-
|
|
30
|
-
### Set up for cloud VM (EC2)
|
|
31
|
-
|
|
32
|
-
If you intend to run the acceptance tests on a cloud VM, the supported solution is to use EC2.
|
|
33
|
-
|
|
34
|
-
The steps you will need to do are:
|
|
35
|
-
|
|
36
|
-
1. Add your AWS credentials to the machine - e.g., to the ~/.aws/credentials directory.
|
|
37
|
-
- The easiest way to do this is to download the aws command line (`brew install awscli` on OS/X) and run `aws configure`.
|
|
38
|
-
2. Create or import a SSH key to AWS. (If you already have one, you can skip the import/create)
|
|
39
|
-
- In the AWS console, click Key Pairs, then Create Key Pair or Import Key Pair.
|
|
40
|
-
3. Copy or move the private key file (USERNAME.pem) to the SSH folder (e.g. `~/.ssh/USERNAME.pem`).
|
|
41
|
-
- If you Created a key pair in step 2, download the private key and move it to `~/.ssh`.
|
|
42
|
-
- If you Importd a key pair in step 2, just ensure your private key is in `~/.ssh` and has the same name as the key pair (`~/.ssh/USERNAME` or `~/.ssh/USERNAME.pem`).
|
|
43
|
-
4. Set AWS_SSH_KEY_ID to the SSH key name.
|
|
44
|
-
- This is **optional** if your AWS SSH key name is your local username.
|
|
45
|
-
- You may want to set this in your shell `.profile`.
|
|
46
|
-
|
|
47
|
-
```shell
|
|
48
|
-
export AWS_SSH_KEY_ID=name-of-private-key
|
|
49
|
-
```
|
|
50
|
-
5. Set the private key to only be readable by root
|
|
51
|
-
|
|
52
|
-
```shell
|
|
53
|
-
chmod 0400 ~/.ssh/USERNAME.pem
|
|
54
|
-
```
|
|
55
|
-
6. Set up the KITCHEN_DRIVER environment variable appropriately (value should be "ec2"). (This is optional, as ec2 is the default.) E.g.:
|
|
56
|
-
|
|
57
|
-
```shell
|
|
58
|
-
export KITCHEN_DRIVER=ec2
|
|
59
|
-
```
|
|
60
|
-
Add this to your shell profile or startup script as needed.
|
|
61
|
-
7. **Connect to Chef VPN**. The instances you create will not have public IPs!
|
|
62
|
-
|
|
63
|
-
## Setting up and running a test suite
|
|
64
|
-
To get started, do a bundle install from the acceptance directory:
|
|
65
|
-
```shell
|
|
66
|
-
chef/acceptance$ bundle install --binstubs
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
To get some basic info and ensure chef-acceptance can be run, do:
|
|
70
|
-
```shell
|
|
71
|
-
chef/acceptance$ bin/chef-acceptance info
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
To run a particular test suite, do the following:
|
|
75
|
-
```shell
|
|
76
|
-
chef/acceptance$ bin/chef-acceptance test TEST_SUITE
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
To restrict which OS's will run, use the KITCHEN_INSTANCES environment variable:
|
|
80
|
-
|
|
81
|
-
```shell
|
|
82
|
-
chef/acceptance$ export KITCHEN_INSTANCES=*-ubuntu-1404
|
|
83
|
-
chef/acceptance$ bin/chef-acceptance test cookbook-git
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
If KITCHEN_INSTANCES is not specified, the default instances are default-ubuntu-1404 and default-windows-windows-2012r2. All selected instances will be run in *parallel* if the driver supports it (ec2 does, vagrant doesn't).
|
|
87
|
-
|
|
88
|
-
## Optional Settings
|
|
89
|
-
|
|
90
|
-
In addition to the environment settings above, there are a number of
|
|
91
|
-
key values that are available to set for changing the way the acceptance
|
|
92
|
-
tests are run.
|
|
93
|
-
|
|
94
|
-
### KITCHEN_CHEF_CHANNEL
|
|
95
|
-
|
|
96
|
-
Use this setting to specify which channel we will pull the chef build from.
|
|
97
|
-
The default is to use the "current" channel, unless the ARTIFACTORY_USERNAME is set
|
|
98
|
-
(which normally happens when running under Jenkins), in which case the default is
|
|
99
|
-
changed to "unstable".
|
|
100
|
-
|
|
101
|
-
```shell
|
|
102
|
-
export KITCHEN_CHEF_CHANNEL=name-of-channel
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
### KITCHEN_CHEF_VERSION
|
|
107
|
-
|
|
108
|
-
Use this setting to override the version of the Chef client that is installed. The default is to get the latest version in the desired channel.
|
|
109
|
-
|
|
110
|
-
```shell
|
|
111
|
-
export KITCHEN_CHEF_VERSION=version-of-chef-client
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### ARTIFACTORY_USERNAME / ARTIFACTORY_PASSWORD
|
|
115
|
-
|
|
116
|
-
If the desired channel to get the Chef client from is "unstable", the following settings need to be exported:
|
|
117
|
-
|
|
118
|
-
```shell
|
|
119
|
-
export ARTIFACTORY_USERNAME=username
|
|
120
|
-
export ARTIFACTORY_PASSWORD=password
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## Future Work
|
|
124
|
-
|
|
125
|
-
Currently, there is no simple mechanism for chef-acceptance
|
|
126
|
-
to build an Omnibus package of the developers local chef
|
|
127
|
-
instance and run acceptance tests on it - the only packages
|
|
128
|
-
that can be exercised are ones that come from one of the
|
|
129
|
-
pipeline channels (unstable, current or stable).
|
|
130
|
-
|
|
131
|
-
This is not an issue when adding acceptance tests for pre-existing functionality (as that functionality is presumed
|
|
132
|
-
to already be in a build in one of the pipeline channels).
|
|
1
|
+
# Acceptance Testing for Chef DK
|
|
2
|
+
This folder contains acceptance tests that are required for ChefDK
|
|
3
|
+
release readiness.
|
|
4
|
+
|
|
5
|
+
## Getting started
|
|
6
|
+
The tests use the _chef-acceptance_ gem as the high level framework.
|
|
7
|
+
All the gems needed to run these tests can be installed with Bundler.
|
|
8
|
+
|
|
9
|
+
### Important Note!
|
|
10
|
+
Before running chef-acceptance, you *MUST* do the following on your current session:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
export APPBUNDLER_ALLOW_RVM=true
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Pre-requisites / One time set up
|
|
17
|
+
|
|
18
|
+
### Set up for local VM (Vagrant)
|
|
19
|
+
|
|
20
|
+
If you intend to run the acceptance tests on a local VM, the supported solution is to use Vagrant.
|
|
21
|
+
Ensure that Vagrant is installed on the machine that tests will run from, along with a
|
|
22
|
+
virtualization driver (E.g.: VirtualBox).
|
|
23
|
+
|
|
24
|
+
Set up the KITCHEN_DRIVER environment variable appropriately (value should be "vagrant"). E.g.:
|
|
25
|
+
```
|
|
26
|
+
export KITCHEN_DRIVER=vagrant
|
|
27
|
+
```
|
|
28
|
+
Add this to your shell profile or startup script as needed.
|
|
29
|
+
|
|
30
|
+
### Set up for cloud VM (EC2)
|
|
31
|
+
|
|
32
|
+
If you intend to run the acceptance tests on a cloud VM, the supported solution is to use EC2.
|
|
33
|
+
|
|
34
|
+
The steps you will need to do are:
|
|
35
|
+
|
|
36
|
+
1. Add your AWS credentials to the machine - e.g., to the ~/.aws/credentials directory.
|
|
37
|
+
- The easiest way to do this is to download the aws command line (`brew install awscli` on OS/X) and run `aws configure`.
|
|
38
|
+
2. Create or import a SSH key to AWS. (If you already have one, you can skip the import/create)
|
|
39
|
+
- In the AWS console, click Key Pairs, then Create Key Pair or Import Key Pair.
|
|
40
|
+
3. Copy or move the private key file (USERNAME.pem) to the SSH folder (e.g. `~/.ssh/USERNAME.pem`).
|
|
41
|
+
- If you Created a key pair in step 2, download the private key and move it to `~/.ssh`.
|
|
42
|
+
- If you Importd a key pair in step 2, just ensure your private key is in `~/.ssh` and has the same name as the key pair (`~/.ssh/USERNAME` or `~/.ssh/USERNAME.pem`).
|
|
43
|
+
4. Set AWS_SSH_KEY_ID to the SSH key name.
|
|
44
|
+
- This is **optional** if your AWS SSH key name is your local username.
|
|
45
|
+
- You may want to set this in your shell `.profile`.
|
|
46
|
+
|
|
47
|
+
```shell
|
|
48
|
+
export AWS_SSH_KEY_ID=name-of-private-key
|
|
49
|
+
```
|
|
50
|
+
5. Set the private key to only be readable by root
|
|
51
|
+
|
|
52
|
+
```shell
|
|
53
|
+
chmod 0400 ~/.ssh/USERNAME.pem
|
|
54
|
+
```
|
|
55
|
+
6. Set up the KITCHEN_DRIVER environment variable appropriately (value should be "ec2"). (This is optional, as ec2 is the default.) E.g.:
|
|
56
|
+
|
|
57
|
+
```shell
|
|
58
|
+
export KITCHEN_DRIVER=ec2
|
|
59
|
+
```
|
|
60
|
+
Add this to your shell profile or startup script as needed.
|
|
61
|
+
7. **Connect to Chef VPN**. The instances you create will not have public IPs!
|
|
62
|
+
|
|
63
|
+
## Setting up and running a test suite
|
|
64
|
+
To get started, do a bundle install from the acceptance directory:
|
|
65
|
+
```shell
|
|
66
|
+
chef/acceptance$ bundle install --binstubs
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
To get some basic info and ensure chef-acceptance can be run, do:
|
|
70
|
+
```shell
|
|
71
|
+
chef/acceptance$ bin/chef-acceptance info
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
To run a particular test suite, do the following:
|
|
75
|
+
```shell
|
|
76
|
+
chef/acceptance$ bin/chef-acceptance test TEST_SUITE
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
To restrict which OS's will run, use the KITCHEN_INSTANCES environment variable:
|
|
80
|
+
|
|
81
|
+
```shell
|
|
82
|
+
chef/acceptance$ export KITCHEN_INSTANCES=*-ubuntu-1404
|
|
83
|
+
chef/acceptance$ bin/chef-acceptance test cookbook-git
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
If KITCHEN_INSTANCES is not specified, the default instances are default-ubuntu-1404 and default-windows-windows-2012r2. All selected instances will be run in *parallel* if the driver supports it (ec2 does, vagrant doesn't).
|
|
87
|
+
|
|
88
|
+
## Optional Settings
|
|
89
|
+
|
|
90
|
+
In addition to the environment settings above, there are a number of
|
|
91
|
+
key values that are available to set for changing the way the acceptance
|
|
92
|
+
tests are run.
|
|
93
|
+
|
|
94
|
+
### KITCHEN_CHEF_CHANNEL
|
|
95
|
+
|
|
96
|
+
Use this setting to specify which channel we will pull the chef build from.
|
|
97
|
+
The default is to use the "current" channel, unless the ARTIFACTORY_USERNAME is set
|
|
98
|
+
(which normally happens when running under Jenkins), in which case the default is
|
|
99
|
+
changed to "unstable".
|
|
100
|
+
|
|
101
|
+
```shell
|
|
102
|
+
export KITCHEN_CHEF_CHANNEL=name-of-channel
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
### KITCHEN_CHEF_VERSION
|
|
107
|
+
|
|
108
|
+
Use this setting to override the version of the Chef client that is installed. The default is to get the latest version in the desired channel.
|
|
109
|
+
|
|
110
|
+
```shell
|
|
111
|
+
export KITCHEN_CHEF_VERSION=version-of-chef-client
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### ARTIFACTORY_USERNAME / ARTIFACTORY_PASSWORD
|
|
115
|
+
|
|
116
|
+
If the desired channel to get the Chef client from is "unstable", the following settings need to be exported:
|
|
117
|
+
|
|
118
|
+
```shell
|
|
119
|
+
export ARTIFACTORY_USERNAME=username
|
|
120
|
+
export ARTIFACTORY_PASSWORD=password
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Future Work
|
|
124
|
+
|
|
125
|
+
Currently, there is no simple mechanism for chef-acceptance
|
|
126
|
+
to build an Omnibus package of the developers local chef
|
|
127
|
+
instance and run acceptance tests on it - the only packages
|
|
128
|
+
that can be exercised are ones that come from one of the
|
|
129
|
+
pipeline channels (unstable, current or stable).
|
|
130
|
+
|
|
131
|
+
This is not an issue when adding acceptance tests for pre-existing functionality (as that functionality is presumed
|
|
132
|
+
to already be in a build in one of the pipeline channels).
|