chef-dk 2.6.2 → 3.0.36
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 +126 -121
- data/Gemfile.lock +812 -807
- data/LICENSE +201 -201
- data/README.md +333 -333
- data/Rakefile +74 -74
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +27 -27
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +287 -287
- 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 +21 -21
- data/acceptance/Gemfile.lock +334 -334
- 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 +60 -60
- data/lib/chef-dk.rb +19 -19
- data/lib/chef-dk/authenticated_http.rb +22 -22
- data/lib/chef-dk/builtin_commands.rb +59 -59
- data/lib/chef-dk/chef_runner.rb +114 -114
- data/lib/chef-dk/chef_server_api_multi.rb +73 -73
- data/lib/chef-dk/cli.rb +201 -201
- data/lib/chef-dk/command/base.rb +79 -79
- data/lib/chef-dk/command/clean_policy_cookbooks.rb +114 -114
- data/lib/chef-dk/command/clean_policy_revisions.rb +111 -111
- data/lib/chef-dk/command/delete_policy.rb +120 -120
- data/lib/chef-dk/command/delete_policy_group.rb +120 -120
- data/lib/chef-dk/command/diff.rb +315 -315
- data/lib/chef-dk/command/env.rb +89 -89
- data/lib/chef-dk/command/exec.rb +44 -44
- data/lib/chef-dk/command/export.rb +155 -155
- data/lib/chef-dk/command/gem.rb +47 -47
- data/lib/chef-dk/command/generate.rb +125 -125
- data/lib/chef-dk/command/generator_commands.rb +83 -83
- data/lib/chef-dk/command/generator_commands/app.rb +106 -106
- data/lib/chef-dk/command/generator_commands/attribute.rb +36 -36
- data/lib/chef-dk/command/generator_commands/base.rb +157 -157
- data/lib/chef-dk/command/generator_commands/build_cookbook.rb +125 -125
- data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +85 -85
- data/lib/chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter.rb +38 -38
- data/lib/chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext.rb +39 -39
- data/lib/chef-dk/command/generator_commands/cookbook.rb +241 -241
- 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 +174 -174
- data/lib/chef-dk/command/generator_commands/helpers.rb +36 -36
- data/lib/chef-dk/command/generator_commands/policyfile.rb +124 -126
- data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
- data/lib/chef-dk/command/generator_commands/repo.rb +123 -123
- data/lib/chef-dk/command/generator_commands/resource.rb +36 -36
- data/lib/chef-dk/command/generator_commands/template.rb +46 -46
- data/lib/chef-dk/command/install.rb +120 -120
- data/lib/chef-dk/command/provision.rb +436 -436
- data/lib/chef-dk/command/push.rb +117 -117
- data/lib/chef-dk/command/push_archive.rb +125 -125
- data/lib/chef-dk/command/shell_init.rb +179 -179
- data/lib/chef-dk/command/show_policy.rb +163 -163
- data/lib/chef-dk/command/undelete.rb +154 -154
- data/lib/chef-dk/command/update.rb +133 -133
- data/lib/chef-dk/command/verify.rb +629 -629
- data/lib/chef-dk/commands_map.rb +113 -113
- 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 +227 -227
- data/lib/chef-dk/configurable.rb +88 -88
- 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 +152 -151
- data/lib/chef-dk/cookbook_profiler/identifiers.rb +72 -72
- data/lib/chef-dk/cookbook_profiler/null_scm.rb +31 -31
- data/lib/chef-dk/exceptions.rb +151 -150
- data/lib/chef-dk/generator.rb +165 -165
- data/lib/chef-dk/helpers.rb +176 -176
- data/lib/chef-dk/pager.rb +104 -105
- data/lib/chef-dk/policyfile/artifactory_cookbook_source.rb +102 -102
- data/lib/chef-dk/policyfile/attribute_merge_checker.rb +110 -110
- data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +138 -138
- data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +99 -99
- data/lib/chef-dk/policyfile/chef_server_lock_fetcher.rb +167 -164
- data/lib/chef-dk/policyfile/community_cookbook_source.rb +95 -95
- data/lib/chef-dk/policyfile/comparison_base.rb +123 -123
- 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 +23 -23
- data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +89 -89
- data/lib/chef-dk/policyfile/differ.rb +263 -263
- data/lib/chef-dk/policyfile/dsl.rb +288 -288
- data/lib/chef-dk/policyfile/git_lock_fetcher.rb +265 -0
- data/lib/chef-dk/policyfile/included_policies_cookbook_source.rb +156 -156
- data/lib/chef-dk/policyfile/lister.rb +229 -229
- data/lib/chef-dk/policyfile/local_lock_fetcher.rb +129 -123
- data/lib/chef-dk/policyfile/lock_applier.rb +80 -80
- data/lib/chef-dk/policyfile/null_cookbook_source.rb +49 -49
- data/lib/chef-dk/policyfile/policyfile_location_specification.rb +125 -122
- data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
- data/lib/chef-dk/policyfile/reports/install.rb +69 -69
- data/lib/chef-dk/policyfile/reports/table_printer.rb +57 -57
- data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
- data/lib/chef-dk/policyfile/solution_dependencies.rb +311 -312
- data/lib/chef-dk/policyfile/source_uri.rb +57 -57
- data/lib/chef-dk/policyfile/storage_config.rb +112 -102
- data/lib/chef-dk/policyfile/undo_record.rb +139 -139
- data/lib/chef-dk/policyfile/undo_stack.rb +128 -128
- data/lib/chef-dk/policyfile/uploader.rb +213 -213
- data/lib/chef-dk/policyfile_compiler.rb +528 -528
- data/lib/chef-dk/policyfile_lock.rb +581 -581
- data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
- data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +123 -123
- data/lib/chef-dk/policyfile_services/export_repo.rb +419 -420
- data/lib/chef-dk/policyfile_services/install.rb +162 -162
- data/lib/chef-dk/policyfile_services/push.rb +112 -112
- data/lib/chef-dk/policyfile_services/push_archive.rb +164 -200
- data/lib/chef-dk/policyfile_services/rm_policy.rb +141 -141
- data/lib/chef-dk/policyfile_services/rm_policy_group.rb +85 -85
- data/lib/chef-dk/policyfile_services/show_policy.rb +234 -236
- data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
- data/lib/chef-dk/policyfile_services/update_attributes.rb +110 -110
- data/lib/chef-dk/service_exception_inspectors.rb +24 -24
- data/lib/chef-dk/service_exception_inspectors/base.rb +39 -39
- data/lib/chef-dk/service_exception_inspectors/http.rb +119 -119
- data/lib/chef-dk/service_exceptions.rb +142 -142
- data/lib/chef-dk/shell_out.rb +36 -36
- data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +4 -4
- data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/.kitchen.yml +21 -21
- data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/README.md +146 -146
- data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +104 -107
- 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 +66 -54
- data/lib/chef-dk/skeletons/code_generator/files/default/delivery-config.json +17 -17
- data/lib/chef-dk/skeletons/code_generator/files/default/delivery-project.toml +36 -36
- data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +22 -22
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +24 -24
- 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 +8 -8
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +7 -7
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +56 -56
- 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/spec_helper.rb +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +3 -3
- data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +89 -89
- data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +13 -13
- data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +177 -177
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +158 -152
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +25 -25
- data/lib/chef-dk/skeletons/code_generator/recipes/helpers.rb +21 -21
- data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +52 -52
- data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +68 -68
- data/lib/chef-dk/skeletons/code_generator/recipes/resource.rb +13 -13
- data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +32 -32
- data/lib/chef-dk/skeletons/code_generator/templates/default/CHANGELOG.md.erb +11 -0
- 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.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/build_cookbook/Berksfile.erb +7 -7
- data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb +10 -10
- data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/recipe.rb.erb +8 -8
- data/lib/chef-dk/skeletons/code_generator/templates/default/helpers.rb.erb +39 -39
- data/lib/chef-dk/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +18 -18
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +26 -26
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +33 -33
- data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +20 -20
- 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 +35 -35
- data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +128 -128
- data/lib/chef-dk/skeletons/code_generator/templates/default/resource.rb.erb +1 -1
- data/lib/chef-dk/ui.rb +57 -57
- data/lib/chef-dk/version.rb +20 -20
- data/lib/kitchen/provisioner/policyfile_zero.rb +195 -195
- data/omnibus_overrides.rb +25 -25
- 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 +136 -136
- data/spec/shared/fixture_cookbook_checksums.rb +46 -46
- data/spec/shared/setup_git_committer_config.rb +54 -54
- 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/chef_server_api_multi_spec.rb +120 -120
- data/spec/unit/cli_spec.rb +377 -377
- data/spec/unit/command/base_spec.rb +172 -172
- data/spec/unit/command/clean_policy_cookbooks_spec.rb +180 -180
- data/spec/unit/command/clean_policy_revisions_spec.rb +180 -180
- data/spec/unit/command/delete_policy_group_spec.rb +206 -206
- data/spec/unit/command/delete_policy_spec.rb +206 -206
- data/spec/unit/command/diff_spec.rb +311 -311
- data/spec/unit/command/env_spec.rb +52 -52
- data/spec/unit/command/exec_spec.rb +178 -178
- data/spec/unit/command/export_spec.rb +199 -199
- data/spec/unit/command/generate_spec.rb +142 -142
- data/spec/unit/command/generator_commands/app_spec.rb +166 -166
- data/spec/unit/command/generator_commands/attribute_spec.rb +31 -31
- data/spec/unit/command/generator_commands/base_spec.rb +181 -181
- data/spec/unit/command/generator_commands/build_cookbook_spec.rb +377 -377
- data/spec/unit/command/generator_commands/chef_exts/generator_desc_resource_spec.rb +97 -97
- data/spec/unit/command/generator_commands/chef_exts/recipe_dsl_ext_spec.rb +111 -111
- data/spec/unit/command/generator_commands/cookbook_file_spec.rb +31 -31
- data/spec/unit/command/generator_commands/cookbook_spec.rb +765 -756
- data/spec/unit/command/generator_commands/generator_generator_spec.rb +227 -227
- data/spec/unit/command/generator_commands/helpers_spec.rb +31 -31
- data/spec/unit/command/generator_commands/policyfile_spec.rb +223 -223
- data/spec/unit/command/generator_commands/recipe_spec.rb +37 -37
- data/spec/unit/command/generator_commands/repo_spec.rb +374 -374
- data/spec/unit/command/generator_commands/resource_spec.rb +31 -31
- data/spec/unit/command/generator_commands/template_spec.rb +31 -31
- data/spec/unit/command/install_spec.rb +179 -179
- data/spec/unit/command/provision_spec.rb +589 -589
- data/spec/unit/command/push_archive_spec.rb +153 -153
- data/spec/unit/command/push_spec.rb +198 -198
- data/spec/unit/command/shell_init_spec.rb +339 -339
- data/spec/unit/command/show_policy_spec.rb +234 -234
- data/spec/unit/command/undelete_spec.rb +244 -244
- data/spec/unit/command/update_spec.rb +283 -283
- data/spec/unit/command/verify_spec.rb +341 -341
- data/spec/unit/commands_map_spec.rb +57 -57
- data/spec/unit/component_test_spec.rb +128 -128
- data/spec/unit/configurable_spec.rb +68 -68
- data/spec/unit/cookbook_metadata_spec.rb +96 -96
- data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
- data/spec/unit/cookbook_profiler/identifiers_spec.rb +81 -81
- 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/chef_server_universe.json +56 -56
- data/spec/unit/fixtures/cookbooks_api/pruned_chef_server_universe.json +30 -30
- 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 +33 -33
- 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 -119
- data/spec/unit/pager_spec.rb +117 -117
- data/spec/unit/policyfile/artifactory_cookbook_source_spec.rb +59 -59
- data/spec/unit/policyfile/attribute_merge_checker_spec.rb +80 -80
- data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +93 -93
- data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +55 -55
- data/spec/unit/policyfile/chef_server_lock_fetcher_spec.rb +161 -161
- data/spec/unit/policyfile/community_cookbook_source_spec.rb +83 -83
- data/spec/unit/policyfile/comparison_base_spec.rb +340 -340
- data/spec/unit/policyfile/cookbook_location_specification_spec.rb +347 -347
- data/spec/unit/policyfile/cookbook_locks_spec.rb +527 -527
- data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +129 -129
- data/spec/unit/policyfile/differ_spec.rb +686 -686
- data/spec/unit/policyfile/git_lock_fetcher_spec.rb +155 -0
- data/spec/unit/policyfile/included_policies_cookbook_source_spec.rb +242 -242
- data/spec/unit/policyfile/lister_spec.rb +268 -268
- data/spec/unit/policyfile/local_lock_fetcher_spec.rb +173 -173
- data/spec/unit/policyfile/lock_applier_spec.rb +100 -100
- data/spec/unit/policyfile/null_cookbook_source_spec.rb +34 -34
- data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
- data/spec/unit/policyfile/reports/install_spec.rb +114 -114
- data/spec/unit/policyfile/reports/upload_spec.rb +94 -94
- data/spec/unit/policyfile/solution_dependencies_spec.rb +170 -170
- data/spec/unit/policyfile/source_uri_spec.rb +36 -36
- data/spec/unit/policyfile/storage_config_spec.rb +180 -180
- data/spec/unit/policyfile/undo_record_spec.rb +258 -258
- data/spec/unit/policyfile/undo_stack_spec.rb +265 -265
- data/spec/unit/policyfile/uploader_spec.rb +409 -409
- data/spec/unit/policyfile_demands_spec.rb +1197 -1197
- data/spec/unit/policyfile_evaluation_spec.rb +628 -638
- data/spec/unit/policyfile_includes_dsl_spec.rb +159 -159
- data/spec/unit/policyfile_includes_spec.rb +720 -720
- data/spec/unit/policyfile_install_with_includes_spec.rb +232 -232
- data/spec/unit/policyfile_lock_build_spec.rb +1065 -1065
- data/spec/unit/policyfile_lock_install_spec.rb +137 -137
- data/spec/unit/policyfile_lock_serialization_spec.rb +424 -424
- data/spec/unit/policyfile_lock_validation_spec.rb +608 -608
- data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
- data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +272 -272
- data/spec/unit/policyfile_services/export_repo_spec.rb +473 -478
- data/spec/unit/policyfile_services/install_spec.rb +209 -209
- data/spec/unit/policyfile_services/push_archive_spec.rb +359 -374
- data/spec/unit/policyfile_services/push_spec.rb +249 -249
- data/spec/unit/policyfile_services/rm_policy_group_spec.rb +237 -237
- data/spec/unit/policyfile_services/rm_policy_spec.rb +263 -263
- data/spec/unit/policyfile_services/show_policy_spec.rb +887 -887
- data/spec/unit/policyfile_services/undelete_spec.rb +302 -302
- data/spec/unit/policyfile_services/update_attributes_spec.rb +229 -229
- data/spec/unit/policyfile_services/update_spec.rb +140 -140
- data/spec/unit/service_exception_inspectors/base_spec.rb +41 -41
- data/spec/unit/service_exception_inspectors/http_spec.rb +138 -138
- data/spec/unit/shell_out_spec.rb +34 -34
- data/tasks/announce.rb +57 -57
- data/tasks/bin/bundle-platform.bat +2 -2
- data/tasks/dependencies.rb +89 -89
- data/tasks/templates/prerelease.md.erb +35 -35
- data/tasks/templates/release.md.erb +34 -34
- data/warning.txt +9 -9
- metadata +9 -5
|
@@ -1,154 +1,154 @@
|
|
|
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/undelete"
|
|
22
|
-
|
|
23
|
-
module ChefDK
|
|
24
|
-
module Command
|
|
25
|
-
|
|
26
|
-
class Undelete < Base
|
|
27
|
-
|
|
28
|
-
banner(<<-BANNER)
|
|
29
|
-
Usage: chef undelete [--list | --id ID] [options]
|
|
30
|
-
|
|
31
|
-
`chef undelete` helps you recover quickly if you've deleted a policy or policy
|
|
32
|
-
group in error. When run with no arguements, it lists the available undo
|
|
33
|
-
operations. To undo the last delete operation, use `chef undelete --last`.
|
|
34
|
-
|
|
35
|
-
CAVEATS:
|
|
36
|
-
`chef undelete` doesn't detect conflicts. If a deleted item has been recreated,
|
|
37
|
-
running `chef undelete` will overwrite it.
|
|
38
|
-
|
|
39
|
-
Undo information does not include cookbooks that might be referenced by
|
|
40
|
-
policies. If you have cleaned the policy cookbooks after the delete operation
|
|
41
|
-
you want to reverse, `chef undelete` may not be able to fully restore the
|
|
42
|
-
previous state.
|
|
43
|
-
|
|
44
|
-
The delete commands also do not store access control data, so you may have to
|
|
45
|
-
manually reapply any ACL customizations you have made.
|
|
46
|
-
|
|
47
|
-
See our detailed README for more information:
|
|
48
|
-
|
|
49
|
-
https://docs.chef.io/policyfile.html
|
|
50
|
-
|
|
51
|
-
Options:
|
|
52
|
-
|
|
53
|
-
BANNER
|
|
54
|
-
|
|
55
|
-
option :undo_last,
|
|
56
|
-
short: "-l",
|
|
57
|
-
long: "--last",
|
|
58
|
-
description: "Undo the most recent delete operation"
|
|
59
|
-
|
|
60
|
-
option :undo_record_id,
|
|
61
|
-
short: "-i ID",
|
|
62
|
-
long: "--id ID",
|
|
63
|
-
description: "Undo the delete operation with the given ID"
|
|
64
|
-
|
|
65
|
-
option :config_file,
|
|
66
|
-
short: "-c CONFIG_FILE",
|
|
67
|
-
long: "--config CONFIG_FILE",
|
|
68
|
-
description: "Path to configuration file"
|
|
69
|
-
|
|
70
|
-
option :debug,
|
|
71
|
-
short: "-D",
|
|
72
|
-
long: "--debug",
|
|
73
|
-
description: "Enable stacktraces and other debug output",
|
|
74
|
-
default: false
|
|
75
|
-
|
|
76
|
-
include Configurable
|
|
77
|
-
|
|
78
|
-
attr_accessor :ui
|
|
79
|
-
|
|
80
|
-
attr_reader :undo_record_id
|
|
81
|
-
|
|
82
|
-
def initialize(*args)
|
|
83
|
-
super
|
|
84
|
-
@list_undo_records = false
|
|
85
|
-
@undo_record_id = nil
|
|
86
|
-
@ui = UI.new
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def run(params)
|
|
90
|
-
return 1 unless apply_params!(params)
|
|
91
|
-
if list_undo_records?
|
|
92
|
-
undelete_service.list
|
|
93
|
-
else
|
|
94
|
-
undelete_service.run
|
|
95
|
-
end
|
|
96
|
-
0
|
|
97
|
-
rescue PolicyfileServiceError => e
|
|
98
|
-
handle_error(e)
|
|
99
|
-
1
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def undelete_service
|
|
103
|
-
@undelete_service ||=
|
|
104
|
-
PolicyfileServices::Undelete.new(config: chef_config,
|
|
105
|
-
ui: ui,
|
|
106
|
-
undo_record_id: undo_record_id)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def debug?
|
|
110
|
-
!!config[:debug]
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def list_undo_records?
|
|
114
|
-
@list_undo_records
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def handle_error(error)
|
|
118
|
-
ui.err("Error: #{error.message}")
|
|
119
|
-
if error.respond_to?(:reason)
|
|
120
|
-
ui.err("Reason: #{error.reason}")
|
|
121
|
-
ui.err("")
|
|
122
|
-
ui.err(error.extended_error_info) if debug?
|
|
123
|
-
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
def apply_params!(params)
|
|
128
|
-
remaining_args = parse_options(params)
|
|
129
|
-
|
|
130
|
-
if !remaining_args.empty?
|
|
131
|
-
ui.err("Too many arguments")
|
|
132
|
-
ui.err("")
|
|
133
|
-
ui.err(opt_parser)
|
|
134
|
-
false
|
|
135
|
-
elsif config[:undo_record_id].nil? && config[:undo_last].nil?
|
|
136
|
-
@list_undo_records = true
|
|
137
|
-
true
|
|
138
|
-
elsif config[:undo_record_id] && config[:undo_last]
|
|
139
|
-
ui.err("Error: options --last and --id cannot both be given.")
|
|
140
|
-
ui.err("")
|
|
141
|
-
ui.err(opt_parser)
|
|
142
|
-
false
|
|
143
|
-
elsif config[:undo_record_id]
|
|
144
|
-
@undo_record_id = config[:undo_record_id]
|
|
145
|
-
true
|
|
146
|
-
elsif config[:undo_last]
|
|
147
|
-
@undo_record_id = nil
|
|
148
|
-
true
|
|
149
|
-
end
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
end
|
|
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/undelete"
|
|
22
|
+
|
|
23
|
+
module ChefDK
|
|
24
|
+
module Command
|
|
25
|
+
|
|
26
|
+
class Undelete < Base
|
|
27
|
+
|
|
28
|
+
banner(<<-BANNER)
|
|
29
|
+
Usage: chef undelete [--list | --id ID] [options]
|
|
30
|
+
|
|
31
|
+
`chef undelete` helps you recover quickly if you've deleted a policy or policy
|
|
32
|
+
group in error. When run with no arguements, it lists the available undo
|
|
33
|
+
operations. To undo the last delete operation, use `chef undelete --last`.
|
|
34
|
+
|
|
35
|
+
CAVEATS:
|
|
36
|
+
`chef undelete` doesn't detect conflicts. If a deleted item has been recreated,
|
|
37
|
+
running `chef undelete` will overwrite it.
|
|
38
|
+
|
|
39
|
+
Undo information does not include cookbooks that might be referenced by
|
|
40
|
+
policies. If you have cleaned the policy cookbooks after the delete operation
|
|
41
|
+
you want to reverse, `chef undelete` may not be able to fully restore the
|
|
42
|
+
previous state.
|
|
43
|
+
|
|
44
|
+
The delete commands also do not store access control data, so you may have to
|
|
45
|
+
manually reapply any ACL customizations you have made.
|
|
46
|
+
|
|
47
|
+
See our detailed README for more information:
|
|
48
|
+
|
|
49
|
+
https://docs.chef.io/policyfile.html
|
|
50
|
+
|
|
51
|
+
Options:
|
|
52
|
+
|
|
53
|
+
BANNER
|
|
54
|
+
|
|
55
|
+
option :undo_last,
|
|
56
|
+
short: "-l",
|
|
57
|
+
long: "--last",
|
|
58
|
+
description: "Undo the most recent delete operation"
|
|
59
|
+
|
|
60
|
+
option :undo_record_id,
|
|
61
|
+
short: "-i ID",
|
|
62
|
+
long: "--id ID",
|
|
63
|
+
description: "Undo the delete operation with the given ID"
|
|
64
|
+
|
|
65
|
+
option :config_file,
|
|
66
|
+
short: "-c CONFIG_FILE",
|
|
67
|
+
long: "--config CONFIG_FILE",
|
|
68
|
+
description: "Path to configuration file"
|
|
69
|
+
|
|
70
|
+
option :debug,
|
|
71
|
+
short: "-D",
|
|
72
|
+
long: "--debug",
|
|
73
|
+
description: "Enable stacktraces and other debug output",
|
|
74
|
+
default: false
|
|
75
|
+
|
|
76
|
+
include Configurable
|
|
77
|
+
|
|
78
|
+
attr_accessor :ui
|
|
79
|
+
|
|
80
|
+
attr_reader :undo_record_id
|
|
81
|
+
|
|
82
|
+
def initialize(*args)
|
|
83
|
+
super
|
|
84
|
+
@list_undo_records = false
|
|
85
|
+
@undo_record_id = nil
|
|
86
|
+
@ui = UI.new
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def run(params)
|
|
90
|
+
return 1 unless apply_params!(params)
|
|
91
|
+
if list_undo_records?
|
|
92
|
+
undelete_service.list
|
|
93
|
+
else
|
|
94
|
+
undelete_service.run
|
|
95
|
+
end
|
|
96
|
+
0
|
|
97
|
+
rescue PolicyfileServiceError => e
|
|
98
|
+
handle_error(e)
|
|
99
|
+
1
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def undelete_service
|
|
103
|
+
@undelete_service ||=
|
|
104
|
+
PolicyfileServices::Undelete.new(config: chef_config,
|
|
105
|
+
ui: ui,
|
|
106
|
+
undo_record_id: undo_record_id)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def debug?
|
|
110
|
+
!!config[:debug]
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def list_undo_records?
|
|
114
|
+
@list_undo_records
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def handle_error(error)
|
|
118
|
+
ui.err("Error: #{error.message}")
|
|
119
|
+
if error.respond_to?(:reason)
|
|
120
|
+
ui.err("Reason: #{error.reason}")
|
|
121
|
+
ui.err("")
|
|
122
|
+
ui.err(error.extended_error_info) if debug?
|
|
123
|
+
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def apply_params!(params)
|
|
128
|
+
remaining_args = parse_options(params)
|
|
129
|
+
|
|
130
|
+
if !remaining_args.empty?
|
|
131
|
+
ui.err("Too many arguments")
|
|
132
|
+
ui.err("")
|
|
133
|
+
ui.err(opt_parser)
|
|
134
|
+
false
|
|
135
|
+
elsif config[:undo_record_id].nil? && config[:undo_last].nil?
|
|
136
|
+
@list_undo_records = true
|
|
137
|
+
true
|
|
138
|
+
elsif config[:undo_record_id] && config[:undo_last]
|
|
139
|
+
ui.err("Error: options --last and --id cannot both be given.")
|
|
140
|
+
ui.err("")
|
|
141
|
+
ui.err(opt_parser)
|
|
142
|
+
false
|
|
143
|
+
elsif config[:undo_record_id]
|
|
144
|
+
@undo_record_id = config[:undo_record_id]
|
|
145
|
+
true
|
|
146
|
+
elsif config[:undo_last]
|
|
147
|
+
@undo_record_id = nil
|
|
148
|
+
true
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
@@ -1,133 +1,133 @@
|
|
|
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-dk/command/base"
|
|
19
|
-
require "chef-dk/ui"
|
|
20
|
-
require "chef-dk/policyfile_services/install"
|
|
21
|
-
require "chef-dk/policyfile_services/update_attributes"
|
|
22
|
-
require "chef-dk/configurable"
|
|
23
|
-
|
|
24
|
-
module ChefDK
|
|
25
|
-
module Command
|
|
26
|
-
|
|
27
|
-
class Update < Base
|
|
28
|
-
|
|
29
|
-
include Configurable
|
|
30
|
-
|
|
31
|
-
banner(<<-BANNER)
|
|
32
|
-
Usage: chef update [ POLICY_FILE ] [options] [cookbook_1] [...]
|
|
33
|
-
|
|
34
|
-
`chef update` reads your `Policyfile.rb`, applies any changes, re-solves the
|
|
35
|
-
dependencies and emits an updated `Policyfile.lock.json`. The new locked policy
|
|
36
|
-
will reflect any changes to the `run_list` and pull in any cookbook updates
|
|
37
|
-
that are compatible with the version constraints stated in your `Policyfile.rb`.
|
|
38
|
-
|
|
39
|
-
Individual dependent cookbooks (and their dependencies) may be updated by
|
|
40
|
-
passing their names after the POLICY_FILE. The POLICY_FILE parameter is
|
|
41
|
-
mandatory if you want to update individual cookbooks.
|
|
42
|
-
|
|
43
|
-
See our detailed README for more information:
|
|
44
|
-
|
|
45
|
-
https://docs.chef.io/policyfile.html
|
|
46
|
-
|
|
47
|
-
Options:
|
|
48
|
-
|
|
49
|
-
BANNER
|
|
50
|
-
|
|
51
|
-
option :config_file,
|
|
52
|
-
short: "-c CONFIG_FILE",
|
|
53
|
-
long: "--config CONFIG_FILE",
|
|
54
|
-
description: "Path to configuration file"
|
|
55
|
-
|
|
56
|
-
option :debug,
|
|
57
|
-
short: "-D",
|
|
58
|
-
long: "--debug",
|
|
59
|
-
description: "Enable stacktraces and other debug output",
|
|
60
|
-
default: false,
|
|
61
|
-
boolean: true
|
|
62
|
-
|
|
63
|
-
option :update_attributes_only,
|
|
64
|
-
short: "-a",
|
|
65
|
-
long: "--attributes",
|
|
66
|
-
description: "Only update attributes (not cookbooks)",
|
|
67
|
-
default: false,
|
|
68
|
-
boolean: true
|
|
69
|
-
|
|
70
|
-
attr_reader :policyfile_relative_path
|
|
71
|
-
|
|
72
|
-
attr_accessor :ui
|
|
73
|
-
|
|
74
|
-
def initialize(*args)
|
|
75
|
-
super
|
|
76
|
-
@ui = UI.new
|
|
77
|
-
|
|
78
|
-
@policyfile_relative_path = nil
|
|
79
|
-
@installer = nil
|
|
80
|
-
@attributes_updater = nil
|
|
81
|
-
@cookbooks_to_update = []
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def run(params = [])
|
|
85
|
-
return 1 unless apply_params!(params)
|
|
86
|
-
attributes_updater.run
|
|
87
|
-
installer.run(@cookbooks_to_update) unless update_attributes_only?
|
|
88
|
-
0
|
|
89
|
-
rescue PolicyfileServiceError => e
|
|
90
|
-
handle_error(e)
|
|
91
|
-
1
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def installer
|
|
95
|
-
@installer ||= PolicyfileServices::Install.new(policyfile: policyfile_relative_path, ui: ui, root_dir: Dir.pwd, config: chef_config, overwrite: true)
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def attributes_updater
|
|
99
|
-
@attributes_updater ||=
|
|
100
|
-
PolicyfileServices::UpdateAttributes.new(policyfile: policyfile_relative_path, ui: ui, root_dir: Dir.pwd, chef_config: chef_config)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
def debug?
|
|
104
|
-
!!config[:debug]
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def config_path
|
|
108
|
-
config[:config_file]
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def update_attributes_only?
|
|
112
|
-
!!config[:update_attributes_only]
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def handle_error(error)
|
|
116
|
-
ui.err("Error: #{error.message}")
|
|
117
|
-
if error.respond_to?(:reason)
|
|
118
|
-
ui.err("Reason: #{error.reason}")
|
|
119
|
-
ui.err("")
|
|
120
|
-
ui.err(error.extended_error_info) if debug?
|
|
121
|
-
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def apply_params!(params)
|
|
126
|
-
remaining_args = parse_options(params)
|
|
127
|
-
@policyfile_relative_path = remaining_args.shift
|
|
128
|
-
@cookbooks_to_update += remaining_args
|
|
129
|
-
true
|
|
130
|
-
end
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
end
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2014-2018 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/policyfile_services/install"
|
|
21
|
+
require "chef-dk/policyfile_services/update_attributes"
|
|
22
|
+
require "chef-dk/configurable"
|
|
23
|
+
|
|
24
|
+
module ChefDK
|
|
25
|
+
module Command
|
|
26
|
+
|
|
27
|
+
class Update < Base
|
|
28
|
+
|
|
29
|
+
include Configurable
|
|
30
|
+
|
|
31
|
+
banner(<<-BANNER)
|
|
32
|
+
Usage: chef update [ POLICY_FILE ] [options] [cookbook_1] [...]
|
|
33
|
+
|
|
34
|
+
`chef update` reads your `Policyfile.rb`, applies any changes, re-solves the
|
|
35
|
+
dependencies and emits an updated `Policyfile.lock.json`. The new locked policy
|
|
36
|
+
will reflect any changes to the `run_list` and pull in any cookbook updates
|
|
37
|
+
that are compatible with the version constraints stated in your `Policyfile.rb`.
|
|
38
|
+
|
|
39
|
+
Individual dependent cookbooks (and their dependencies) may be updated by
|
|
40
|
+
passing their names after the POLICY_FILE. The POLICY_FILE parameter is
|
|
41
|
+
mandatory if you want to update individual cookbooks.
|
|
42
|
+
|
|
43
|
+
See our detailed README for more information:
|
|
44
|
+
|
|
45
|
+
https://docs.chef.io/policyfile.html
|
|
46
|
+
|
|
47
|
+
Options:
|
|
48
|
+
|
|
49
|
+
BANNER
|
|
50
|
+
|
|
51
|
+
option :config_file,
|
|
52
|
+
short: "-c CONFIG_FILE",
|
|
53
|
+
long: "--config CONFIG_FILE",
|
|
54
|
+
description: "Path to configuration file"
|
|
55
|
+
|
|
56
|
+
option :debug,
|
|
57
|
+
short: "-D",
|
|
58
|
+
long: "--debug",
|
|
59
|
+
description: "Enable stacktraces and other debug output",
|
|
60
|
+
default: false,
|
|
61
|
+
boolean: true
|
|
62
|
+
|
|
63
|
+
option :update_attributes_only,
|
|
64
|
+
short: "-a",
|
|
65
|
+
long: "--attributes",
|
|
66
|
+
description: "Only update attributes (not cookbooks)",
|
|
67
|
+
default: false,
|
|
68
|
+
boolean: true
|
|
69
|
+
|
|
70
|
+
attr_reader :policyfile_relative_path
|
|
71
|
+
|
|
72
|
+
attr_accessor :ui
|
|
73
|
+
|
|
74
|
+
def initialize(*args)
|
|
75
|
+
super
|
|
76
|
+
@ui = UI.new
|
|
77
|
+
|
|
78
|
+
@policyfile_relative_path = nil
|
|
79
|
+
@installer = nil
|
|
80
|
+
@attributes_updater = nil
|
|
81
|
+
@cookbooks_to_update = []
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def run(params = [])
|
|
85
|
+
return 1 unless apply_params!(params)
|
|
86
|
+
attributes_updater.run
|
|
87
|
+
installer.run(@cookbooks_to_update) unless update_attributes_only?
|
|
88
|
+
0
|
|
89
|
+
rescue PolicyfileServiceError => e
|
|
90
|
+
handle_error(e)
|
|
91
|
+
1
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def installer
|
|
95
|
+
@installer ||= PolicyfileServices::Install.new(policyfile: policyfile_relative_path, ui: ui, root_dir: Dir.pwd, config: chef_config, overwrite: true)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def attributes_updater
|
|
99
|
+
@attributes_updater ||=
|
|
100
|
+
PolicyfileServices::UpdateAttributes.new(policyfile: policyfile_relative_path, ui: ui, root_dir: Dir.pwd, chef_config: chef_config)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def debug?
|
|
104
|
+
!!config[:debug]
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def config_path
|
|
108
|
+
config[:config_file]
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def update_attributes_only?
|
|
112
|
+
!!config[:update_attributes_only]
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def handle_error(error)
|
|
116
|
+
ui.err("Error: #{error.message}")
|
|
117
|
+
if error.respond_to?(:reason)
|
|
118
|
+
ui.err("Reason: #{error.reason}")
|
|
119
|
+
ui.err("")
|
|
120
|
+
ui.err(error.extended_error_info) if debug?
|
|
121
|
+
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def apply_params!(params)
|
|
126
|
+
remaining_args = parse_options(params)
|
|
127
|
+
@policyfile_relative_path = remaining_args.shift
|
|
128
|
+
@cookbooks_to_update += remaining_args
|
|
129
|
+
true
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|