chef-dk 0.14.25 → 0.15.9
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/Gemfile +15 -12
- data/Gemfile.lock +56 -82
- data/LICENSE +201 -201
- 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.lock +18 -21
- 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/chef-dk.gemspec +1 -0
- data/lib/chef-dk.rb +19 -19
- data/lib/chef-dk/authenticated_http.rb +40 -40
- data/lib/chef-dk/chef_runner.rb +1 -1
- data/lib/chef-dk/cli.rb +2 -2
- 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 +2 -2
- data/lib/chef-dk/command/gem.rb +47 -47
- data/lib/chef-dk/command/generate.rb +2 -0
- 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/build_cookbook.rb +110 -0
- data/lib/chef-dk/command/generator_commands/cookbook.rb +21 -0
- 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 +9 -11
- 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/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/helpers.rb +24 -17
- 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_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/build-cookbook/.kitchen.yml +21 -0
- data/lib/chef-dk/skeletons/code_generator/files/default/build-cookbook/README.md +146 -0
- data/lib/chef-dk/skeletons/code_generator/files/default/build-cookbook/test-fixture-recipe.rb +7 -0
- 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/delivery-config.json +10 -0
- 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/build_cookbook.rb +88 -0
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +6 -0
- 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.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/build-cookbook/Berksfile.erb +20 -0
- data/lib/chef-dk/skeletons/code_generator/templates/default/build-cookbook/metadata.rb.erb +9 -0
- data/lib/chef-dk/skeletons/code_generator/templates/default/build-cookbook/recipe.rb.erb +8 -0
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +3 -2
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +3 -2
- 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 +2 -1
- 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/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 +1 -1
- data/spec/unit/cli_spec.rb +23 -6
- 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/build_cookbook_spec.rb +309 -0
- data/spec/unit/command/generator_commands/cookbook_file_spec.rb +32 -32
- data/spec/unit/command/generator_commands/cookbook_spec.rb +98 -4
- 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/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 +1 -3
- data/spec/unit/commands_map_spec.rb +57 -57
- 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/gemfile_util_spec.rb +41 -0
- data/spec/unit/helpers_spec.rb +19 -0
- 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/tasks/bin/bundle-platform +6 -2
- data/tasks/bin/bundle-platform.bat +0 -0
- data/tasks/bin/create-override-gemfile +0 -0
- data/tasks/bundle_util.rb +18 -2
- data/tasks/gemfile_util.rb +53 -8
- data/version_policy.rb +9 -1
- data/warning.txt +9 -9
- metadata +30 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
nodes/
|
|
2
|
-
tmp/
|
|
1
|
+
nodes/
|
|
2
|
+
tmp/
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
name "acceptance-cookbook"
|
|
2
|
-
depends "kitchen_acceptance"
|
|
1
|
+
name "acceptance-cookbook"
|
|
2
|
+
depends "kitchen_acceptance"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
kitchen "destroy"
|
|
1
|
+
kitchen "destroy"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
kitchen "setup"
|
|
1
|
+
kitchen "setup"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
kitchen "verify"
|
|
1
|
+
kitchen "verify"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
verifier:
|
|
2
|
-
name: inspec
|
|
3
|
-
|
|
4
|
-
suites:
|
|
5
|
-
- name: chefdk-current-install
|
|
6
|
-
includes: [ubuntu-14.04]
|
|
7
|
-
run_list:
|
|
1
|
+
verifier:
|
|
2
|
+
name: inspec
|
|
3
|
+
|
|
4
|
+
suites:
|
|
5
|
+
- name: chefdk-current-install
|
|
6
|
+
includes: [ubuntu-14.04]
|
|
7
|
+
run_list:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
chef_version = ENV["KITCHEN_CHEF_VERSION"].split("+")[0]
|
|
2
|
-
describe command("chef -v") do
|
|
3
|
-
its("exit_status") { should eq 0 }
|
|
4
|
-
its(:stdout) { should match /Chef Development Kit Version: #{chef_version}/ } if chef_version != "latest"
|
|
5
|
-
end
|
|
1
|
+
chef_version = ENV["KITCHEN_CHEF_VERSION"].split("+")[0]
|
|
2
|
+
describe command("chef -v") do
|
|
3
|
+
its("exit_status") { should eq 0 }
|
|
4
|
+
its(:stdout) { should match /Chef Development Kit Version: #{chef_version}/ } if chef_version != "latest"
|
|
5
|
+
end
|
data/bin/chef
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
#
|
|
3
|
-
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
4
|
-
# License:: Apache License, Version 2.0
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
# Set a trap for ctrl-C right away so we don't surface interrupt exceptions inside of rubygems or whatever.
|
|
20
|
-
Kernel.trap(:INT) { print("\n"); exit 1 }
|
|
21
|
-
|
|
22
|
-
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
|
|
23
|
-
require 'chef-dk/cli'
|
|
24
|
-
|
|
25
|
-
ChefDK::CLI.new(ARGV.clone).run
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
# Set a trap for ctrl-C right away so we don't surface interrupt exceptions inside of rubygems or whatever.
|
|
20
|
+
Kernel.trap(:INT) { print("\n"); exit 1 }
|
|
21
|
+
|
|
22
|
+
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
|
|
23
|
+
require 'chef-dk/cli'
|
|
24
|
+
|
|
25
|
+
ChefDK::CLI.new(ARGV.clone).run
|
data/chef-dk.gemspec
CHANGED
|
@@ -57,6 +57,7 @@ Gem::Specification.new do |gem|
|
|
|
57
57
|
gem.add_dependency "chef-provisioning", "~> 1.2"
|
|
58
58
|
|
|
59
59
|
gem.add_development_dependency "github_changelog_generator"
|
|
60
|
+
gem.add_development_dependency "rake"
|
|
60
61
|
|
|
61
62
|
%w(rspec-core rspec-expectations rspec-mocks).each do |dev_gem|
|
|
62
63
|
gem.add_development_dependency dev_gem, "~> 3.0"
|
data/lib/chef-dk.rb
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
-
# License:: Apache License, Version 2.0
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
module ChefDK
|
|
19
|
-
end
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
module ChefDK
|
|
19
|
+
end
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
-
# License:: Apache License, Version 2.0
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
require 'chef/http'
|
|
19
|
-
require 'chef/http/authenticator'
|
|
20
|
-
require 'chef/http/json_input'
|
|
21
|
-
require 'chef/http/json_output'
|
|
22
|
-
require 'chef/http/decompressor'
|
|
23
|
-
require 'chef/http/validate_content_length'
|
|
24
|
-
|
|
25
|
-
module ChefDK
|
|
26
|
-
class AuthenticatedHTTP < Chef::HTTP
|
|
27
|
-
|
|
28
|
-
use JSONInput
|
|
29
|
-
use JSONOutput
|
|
30
|
-
use Decompressor
|
|
31
|
-
use Authenticator
|
|
32
|
-
|
|
33
|
-
# ValidateContentLength should come after Decompressor
|
|
34
|
-
# because the order of middlewares is reversed when handling
|
|
35
|
-
# responses.
|
|
36
|
-
use ValidateContentLength
|
|
37
|
-
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require 'chef/http'
|
|
19
|
+
require 'chef/http/authenticator'
|
|
20
|
+
require 'chef/http/json_input'
|
|
21
|
+
require 'chef/http/json_output'
|
|
22
|
+
require 'chef/http/decompressor'
|
|
23
|
+
require 'chef/http/validate_content_length'
|
|
24
|
+
|
|
25
|
+
module ChefDK
|
|
26
|
+
class AuthenticatedHTTP < Chef::HTTP
|
|
27
|
+
|
|
28
|
+
use JSONInput
|
|
29
|
+
use JSONOutput
|
|
30
|
+
use Decompressor
|
|
31
|
+
use Authenticator
|
|
32
|
+
|
|
33
|
+
# ValidateContentLength should come after Decompressor
|
|
34
|
+
# because the order of middlewares is reversed when handling
|
|
35
|
+
# responses.
|
|
36
|
+
use ValidateContentLength
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
data/lib/chef-dk/chef_runner.rb
CHANGED
data/lib/chef-dk/cli.rb
CHANGED
|
@@ -97,12 +97,12 @@ BANNER
|
|
|
97
97
|
def show_version
|
|
98
98
|
msg("Chef Development Kit Version: #{ChefDK::VERSION}")
|
|
99
99
|
|
|
100
|
-
["chef-client", "berks", "kitchen"].each do |component|
|
|
100
|
+
["chef-client", "delivery", "berks", "kitchen"].each do |component|
|
|
101
101
|
result = Bundler.with_clean_env { shell_out("#{component} --version") }
|
|
102
102
|
if result.exitstatus != 0
|
|
103
103
|
msg("#{component} version: ERROR")
|
|
104
104
|
else
|
|
105
|
-
version = result.stdout.scan(/[\d
|
|
105
|
+
version = result.stdout.scan(/(?:master\s)?[\d+\.\(\)]+\S+/).join("\s")
|
|
106
106
|
msg("#{component} version: #{version}")
|
|
107
107
|
end
|
|
108
108
|
end
|
data/lib/chef-dk/command/base.rb
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
-
# License:: Apache License, Version 2.0
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
require 'mixlib/cli'
|
|
19
|
-
require 'chef-dk/helpers'
|
|
20
|
-
require 'chef-dk/version'
|
|
21
|
-
require 'chef/exceptions'
|
|
22
|
-
|
|
23
|
-
module ChefDK
|
|
24
|
-
module Command
|
|
25
|
-
class Base
|
|
26
|
-
include Mixlib::CLI
|
|
27
|
-
include ChefDK::Helpers
|
|
28
|
-
|
|
29
|
-
option :help,
|
|
30
|
-
:short => "-h",
|
|
31
|
-
:long => "--help",
|
|
32
|
-
:description => "Show this message",
|
|
33
|
-
:boolean => true
|
|
34
|
-
|
|
35
|
-
option :version,
|
|
36
|
-
:short => "-v",
|
|
37
|
-
:long => "--version",
|
|
38
|
-
:description => "Show chef version",
|
|
39
|
-
:boolean => true
|
|
40
|
-
|
|
41
|
-
def initialize
|
|
42
|
-
super
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
#
|
|
46
|
-
# optparser overwrites -h / --help options with its own.
|
|
47
|
-
# In order to control this behavior, make sure the default options are
|
|
48
|
-
# handled here.
|
|
49
|
-
#
|
|
50
|
-
def run_with_default_options(params = [ ])
|
|
51
|
-
if needs_help?(params)
|
|
52
|
-
msg(opt_parser.to_s)
|
|
53
|
-
0
|
|
54
|
-
elsif needs_version?(params)
|
|
55
|
-
msg("Chef Development Kit Version: #{ChefDK::VERSION}")
|
|
56
|
-
0
|
|
57
|
-
else
|
|
58
|
-
run(params)
|
|
59
|
-
end
|
|
60
|
-
rescue Chef::Exceptions::ConfigurationError => e
|
|
61
|
-
err("ERROR: #{e.message}\n")
|
|
62
|
-
1
|
|
63
|
-
rescue OptionParser::InvalidOption, OptionParser::MissingArgument => e
|
|
64
|
-
err("ERROR: #{e.message}\n")
|
|
65
|
-
msg(opt_parser)
|
|
66
|
-
1
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def needs_help?(params)
|
|
70
|
-
params.include?("-h") || params.include?("--help")
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def needs_version?(params)
|
|
74
|
-
params.include?("-v") || params.include?("--version")
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require 'mixlib/cli'
|
|
19
|
+
require 'chef-dk/helpers'
|
|
20
|
+
require 'chef-dk/version'
|
|
21
|
+
require 'chef/exceptions'
|
|
22
|
+
|
|
23
|
+
module ChefDK
|
|
24
|
+
module Command
|
|
25
|
+
class Base
|
|
26
|
+
include Mixlib::CLI
|
|
27
|
+
include ChefDK::Helpers
|
|
28
|
+
|
|
29
|
+
option :help,
|
|
30
|
+
:short => "-h",
|
|
31
|
+
:long => "--help",
|
|
32
|
+
:description => "Show this message",
|
|
33
|
+
:boolean => true
|
|
34
|
+
|
|
35
|
+
option :version,
|
|
36
|
+
:short => "-v",
|
|
37
|
+
:long => "--version",
|
|
38
|
+
:description => "Show chef version",
|
|
39
|
+
:boolean => true
|
|
40
|
+
|
|
41
|
+
def initialize
|
|
42
|
+
super
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
#
|
|
46
|
+
# optparser overwrites -h / --help options with its own.
|
|
47
|
+
# In order to control this behavior, make sure the default options are
|
|
48
|
+
# handled here.
|
|
49
|
+
#
|
|
50
|
+
def run_with_default_options(params = [ ])
|
|
51
|
+
if needs_help?(params)
|
|
52
|
+
msg(opt_parser.to_s)
|
|
53
|
+
0
|
|
54
|
+
elsif needs_version?(params)
|
|
55
|
+
msg("Chef Development Kit Version: #{ChefDK::VERSION}")
|
|
56
|
+
0
|
|
57
|
+
else
|
|
58
|
+
run(params)
|
|
59
|
+
end
|
|
60
|
+
rescue Chef::Exceptions::ConfigurationError => e
|
|
61
|
+
err("ERROR: #{e.message}\n")
|
|
62
|
+
1
|
|
63
|
+
rescue OptionParser::InvalidOption, OptionParser::MissingArgument => e
|
|
64
|
+
err("ERROR: #{e.message}\n")
|
|
65
|
+
msg(opt_parser)
|
|
66
|
+
1
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def needs_help?(params)
|
|
70
|
+
params.include?("-h") || params.include?("--help")
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def needs_version?(params)
|
|
74
|
+
params.include?("-v") || params.include?("--version")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: Copyright (c) 2015 Chef Software Inc.
|
|
3
|
-
# License:: Apache License, Version 2.0
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
require 'chef-dk/command/base'
|
|
19
|
-
require 'chef-dk/ui'
|
|
20
|
-
require 'chef-dk/configurable'
|
|
21
|
-
require 'chef-dk/policyfile_services/clean_policy_cookbooks'
|
|
22
|
-
|
|
23
|
-
module ChefDK
|
|
24
|
-
module Command
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class CleanPolicyCookbooks < Base
|
|
28
|
-
|
|
29
|
-
banner(<<-BANNER)
|
|
30
|
-
Usage: chef clean-policy-cookbooks [options]
|
|
31
|
-
|
|
32
|
-
`chef clean-policy-cookbooks` deletes unused policyfile cookbooks. Cookbooks
|
|
33
|
-
are considered unused when they are not referenced by any policyfile revision
|
|
34
|
-
on the server. Note that cookbooks which are referenced by "orphaned" policy
|
|
35
|
-
revisions are not removed, so you may wish to run `chef clean-policy-revisions`
|
|
36
|
-
to remove orphaned policies before running this command.
|
|
37
|
-
|
|
38
|
-
See our detailed README for more information:
|
|
39
|
-
|
|
40
|
-
https://github.com/chef/chef-dk/blob/master/POLICYFILE_README.md
|
|
41
|
-
|
|
42
|
-
Options:
|
|
43
|
-
|
|
44
|
-
BANNER
|
|
45
|
-
|
|
46
|
-
option :config_file,
|
|
47
|
-
short: "-c CONFIG_FILE",
|
|
48
|
-
long: "--config CONFIG_FILE",
|
|
49
|
-
description: "Path to configuration file"
|
|
50
|
-
|
|
51
|
-
option :debug,
|
|
52
|
-
short: "-D",
|
|
53
|
-
long: "--debug",
|
|
54
|
-
description: "Enable stacktraces and other debug output",
|
|
55
|
-
default: false
|
|
56
|
-
|
|
57
|
-
include Configurable
|
|
58
|
-
|
|
59
|
-
attr_accessor :ui
|
|
60
|
-
|
|
61
|
-
attr_reader :policy_name
|
|
62
|
-
|
|
63
|
-
attr_reader :policy_group
|
|
64
|
-
|
|
65
|
-
def initialize(*args)
|
|
66
|
-
super
|
|
67
|
-
@ui = UI.new
|
|
68
|
-
|
|
69
|
-
@clean_policy_cookbooks_service = nil
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def run(params)
|
|
73
|
-
return 1 unless apply_params!(params)
|
|
74
|
-
clean_policy_cookbooks_service.run
|
|
75
|
-
0
|
|
76
|
-
rescue PolicyfileServiceError => e
|
|
77
|
-
handle_error(e)
|
|
78
|
-
1
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def clean_policy_cookbooks_service
|
|
82
|
-
@clean_policy_cookbooks_service ||=
|
|
83
|
-
PolicyfileServices::CleanPolicyCookbooks.new(config: chef_config, ui: ui)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def debug?
|
|
87
|
-
!!config[:debug]
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def handle_error(error)
|
|
91
|
-
ui.err("Error: #{error.message}")
|
|
92
|
-
if error.respond_to?(:reason)
|
|
93
|
-
ui.err("Reason: #{error.reason}")
|
|
94
|
-
ui.err("")
|
|
95
|
-
ui.err(error.extended_error_info) if debug?
|
|
96
|
-
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
def apply_params!(params)
|
|
101
|
-
remaining_args = parse_options(params)
|
|
102
|
-
|
|
103
|
-
if !remaining_args.empty?
|
|
104
|
-
ui.err("Too many arguments")
|
|
105
|
-
ui.err("")
|
|
106
|
-
ui.err(opt_parser)
|
|
107
|
-
false
|
|
108
|
-
else
|
|
109
|
-
true
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2015 Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require 'chef-dk/command/base'
|
|
19
|
+
require 'chef-dk/ui'
|
|
20
|
+
require 'chef-dk/configurable'
|
|
21
|
+
require 'chef-dk/policyfile_services/clean_policy_cookbooks'
|
|
22
|
+
|
|
23
|
+
module ChefDK
|
|
24
|
+
module Command
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class CleanPolicyCookbooks < Base
|
|
28
|
+
|
|
29
|
+
banner(<<-BANNER)
|
|
30
|
+
Usage: chef clean-policy-cookbooks [options]
|
|
31
|
+
|
|
32
|
+
`chef clean-policy-cookbooks` deletes unused policyfile cookbooks. Cookbooks
|
|
33
|
+
are considered unused when they are not referenced by any policyfile revision
|
|
34
|
+
on the server. Note that cookbooks which are referenced by "orphaned" policy
|
|
35
|
+
revisions are not removed, so you may wish to run `chef clean-policy-revisions`
|
|
36
|
+
to remove orphaned policies before running this command.
|
|
37
|
+
|
|
38
|
+
See our detailed README for more information:
|
|
39
|
+
|
|
40
|
+
https://github.com/chef/chef-dk/blob/master/POLICYFILE_README.md
|
|
41
|
+
|
|
42
|
+
Options:
|
|
43
|
+
|
|
44
|
+
BANNER
|
|
45
|
+
|
|
46
|
+
option :config_file,
|
|
47
|
+
short: "-c CONFIG_FILE",
|
|
48
|
+
long: "--config CONFIG_FILE",
|
|
49
|
+
description: "Path to configuration file"
|
|
50
|
+
|
|
51
|
+
option :debug,
|
|
52
|
+
short: "-D",
|
|
53
|
+
long: "--debug",
|
|
54
|
+
description: "Enable stacktraces and other debug output",
|
|
55
|
+
default: false
|
|
56
|
+
|
|
57
|
+
include Configurable
|
|
58
|
+
|
|
59
|
+
attr_accessor :ui
|
|
60
|
+
|
|
61
|
+
attr_reader :policy_name
|
|
62
|
+
|
|
63
|
+
attr_reader :policy_group
|
|
64
|
+
|
|
65
|
+
def initialize(*args)
|
|
66
|
+
super
|
|
67
|
+
@ui = UI.new
|
|
68
|
+
|
|
69
|
+
@clean_policy_cookbooks_service = nil
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def run(params)
|
|
73
|
+
return 1 unless apply_params!(params)
|
|
74
|
+
clean_policy_cookbooks_service.run
|
|
75
|
+
0
|
|
76
|
+
rescue PolicyfileServiceError => e
|
|
77
|
+
handle_error(e)
|
|
78
|
+
1
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def clean_policy_cookbooks_service
|
|
82
|
+
@clean_policy_cookbooks_service ||=
|
|
83
|
+
PolicyfileServices::CleanPolicyCookbooks.new(config: chef_config, ui: ui)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def debug?
|
|
87
|
+
!!config[:debug]
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def handle_error(error)
|
|
91
|
+
ui.err("Error: #{error.message}")
|
|
92
|
+
if error.respond_to?(:reason)
|
|
93
|
+
ui.err("Reason: #{error.reason}")
|
|
94
|
+
ui.err("")
|
|
95
|
+
ui.err(error.extended_error_info) if debug?
|
|
96
|
+
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def apply_params!(params)
|
|
101
|
+
remaining_args = parse_options(params)
|
|
102
|
+
|
|
103
|
+
if !remaining_args.empty?
|
|
104
|
+
ui.err("Too many arguments")
|
|
105
|
+
ui.err("")
|
|
106
|
+
ui.err(opt_parser)
|
|
107
|
+
false
|
|
108
|
+
else
|
|
109
|
+
true
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|