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,179 +1,179 @@
|
|
|
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 "erb"
|
|
19
|
-
|
|
20
|
-
require "chef-dk/commands_map"
|
|
21
|
-
require "chef-dk/builtin_commands"
|
|
22
|
-
require "chef-dk/command/base"
|
|
23
|
-
require "mixlib/shellout"
|
|
24
|
-
|
|
25
|
-
module ChefDK
|
|
26
|
-
|
|
27
|
-
class ShellCompletionTemplateContext
|
|
28
|
-
|
|
29
|
-
def commands
|
|
30
|
-
ChefDK.commands_map.command_specs.inject({}) do |cmd_info, (_key, cmd_spec)|
|
|
31
|
-
cmd_info[cmd_spec.name] = cmd_spec.description
|
|
32
|
-
cmd_info
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def get_binding
|
|
37
|
-
binding
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
module Command
|
|
42
|
-
class ShellInit < ChefDK::Command::Base
|
|
43
|
-
|
|
44
|
-
SUPPORTED_SHELLS = %w{ bash fish zsh sh powershell posh}.map(&:freeze).freeze
|
|
45
|
-
|
|
46
|
-
banner(<<-HELP)
|
|
47
|
-
Usage: chef shell-init
|
|
48
|
-
|
|
49
|
-
`chef shell-init` modifies your shell environment to make ChefDK your default
|
|
50
|
-
ruby.
|
|
51
|
-
|
|
52
|
-
To enable for just the current shell session:
|
|
53
|
-
|
|
54
|
-
In sh, bash, and zsh:
|
|
55
|
-
eval "$(chef shell-init SHELL_NAME)"
|
|
56
|
-
In fish:
|
|
57
|
-
eval (chef shell-init fish)
|
|
58
|
-
In Powershell:
|
|
59
|
-
chef shell-init powershell | Invoke-Expression
|
|
60
|
-
|
|
61
|
-
To permanently enable:
|
|
62
|
-
|
|
63
|
-
In sh, bash, and zsh:
|
|
64
|
-
echo 'eval "$(chef shell-init SHELL_NAME)"' >> ~/.YOUR_SHELL_RC_FILE
|
|
65
|
-
In fish:
|
|
66
|
-
echo 'eval (chef shell-init SHELL_NAME)' >> ~/.config/fish/config.fish
|
|
67
|
-
In Powershell
|
|
68
|
-
"chef shell-init powershell | Invoke-Expression" >> $PROFILE
|
|
69
|
-
|
|
70
|
-
OPTIONS:
|
|
71
|
-
|
|
72
|
-
HELP
|
|
73
|
-
|
|
74
|
-
option :omnibus_dir,
|
|
75
|
-
:long => "--omnibus-dir OMNIBUS_DIR",
|
|
76
|
-
:description => "Alternate path to omnibus install (used for testing)"
|
|
77
|
-
|
|
78
|
-
def initialize
|
|
79
|
-
super
|
|
80
|
-
@shell_completion_template_context = nil
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def omnibus_root
|
|
84
|
-
config[:omnibus_dir] || super
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def run(argv)
|
|
88
|
-
# Currently we don't have any shell-specific features, so we ignore the
|
|
89
|
-
# shell name. We'll need it if we add completion.
|
|
90
|
-
remaining_args = parse_options(argv)
|
|
91
|
-
shell_name = remaining_args.first
|
|
92
|
-
if shell_name.nil?
|
|
93
|
-
err("Please specify what shell you are using\n")
|
|
94
|
-
err(opt_parser.to_s)
|
|
95
|
-
return 1
|
|
96
|
-
elsif !SUPPORTED_SHELLS.include?(shell_name)
|
|
97
|
-
err("Shell `#{shell_name}' is not currently supported")
|
|
98
|
-
err("Supported shells are: #{SUPPORTED_SHELLS.join(' ')}")
|
|
99
|
-
return 1
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
env = omnibus_env.dup
|
|
103
|
-
path = env.delete("PATH")
|
|
104
|
-
export(shell_name, "PATH", path)
|
|
105
|
-
env.each do |var_name, value|
|
|
106
|
-
export(shell_name, var_name, value)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
emit_shell_cmd(completion_for(shell_name))
|
|
110
|
-
0
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def emit_shell_cmd(cmd)
|
|
114
|
-
msg(cmd) unless cmd.empty?
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def completion_for(shell)
|
|
118
|
-
return "" unless (completion_template_basename = completion_template_for(shell))
|
|
119
|
-
completion_template_path = expand_completion_template_path(completion_template_basename)
|
|
120
|
-
erb = ERB.new(File.read(completion_template_path), nil, "-")
|
|
121
|
-
context_binding = shell_completion_template_context.get_binding
|
|
122
|
-
erb.result(context_binding)
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def completion_template_for(shell)
|
|
126
|
-
case shell
|
|
127
|
-
when "bash"
|
|
128
|
-
"bash.sh.erb"
|
|
129
|
-
when "fish"
|
|
130
|
-
"chef.fish.erb"
|
|
131
|
-
when "zsh"
|
|
132
|
-
"zsh.zsh.erb"
|
|
133
|
-
else
|
|
134
|
-
# Pull requests accepted!
|
|
135
|
-
nil
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def expand_completion_template_path(basename)
|
|
140
|
-
File.join(File.expand_path("../../completions", __FILE__), basename)
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
def shell_completion_template_context
|
|
144
|
-
@shell_completion_template_context ||= ShellCompletionTemplateContext.new
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
def export(shell, var, val)
|
|
148
|
-
case shell
|
|
149
|
-
when "sh", "bash", "zsh"
|
|
150
|
-
posix_shell_export(var, val)
|
|
151
|
-
when "fish"
|
|
152
|
-
fish_shell_export(var, val)
|
|
153
|
-
when "powershell", "posh"
|
|
154
|
-
powershell_export(var, val)
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
def posix_shell_export(var, val)
|
|
159
|
-
emit_shell_cmd(%Q{export #{var}="#{val}"})
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
def fish_shell_export(var, val)
|
|
163
|
-
# Fish's syntax for setting PATH is special. Path elements are
|
|
164
|
-
# divided by spaces (instead of colons). We also send STDERR to
|
|
165
|
-
# /dev/null to avoid Fish's helpful warnings about nonexistent
|
|
166
|
-
# PATH elements.
|
|
167
|
-
if var == "PATH"
|
|
168
|
-
emit_shell_cmd(%Q{set -gx #{var} "#{val.split(':').join('" "')}" 2>/dev/null;})
|
|
169
|
-
else
|
|
170
|
-
emit_shell_cmd(%Q{set -gx #{var} "#{val}";})
|
|
171
|
-
end
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
def powershell_export(var, val)
|
|
175
|
-
emit_shell_cmd(%Q{$env:#{var}="#{val}"})
|
|
176
|
-
end
|
|
177
|
-
end
|
|
178
|
-
end
|
|
179
|
-
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 "erb"
|
|
19
|
+
|
|
20
|
+
require "chef-dk/commands_map"
|
|
21
|
+
require "chef-dk/builtin_commands"
|
|
22
|
+
require "chef-dk/command/base"
|
|
23
|
+
require "mixlib/shellout"
|
|
24
|
+
|
|
25
|
+
module ChefDK
|
|
26
|
+
|
|
27
|
+
class ShellCompletionTemplateContext
|
|
28
|
+
|
|
29
|
+
def commands
|
|
30
|
+
ChefDK.commands_map.command_specs.inject({}) do |cmd_info, (_key, cmd_spec)|
|
|
31
|
+
cmd_info[cmd_spec.name] = cmd_spec.description
|
|
32
|
+
cmd_info
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def get_binding
|
|
37
|
+
binding
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
module Command
|
|
42
|
+
class ShellInit < ChefDK::Command::Base
|
|
43
|
+
|
|
44
|
+
SUPPORTED_SHELLS = %w{ bash fish zsh sh powershell posh}.map(&:freeze).freeze
|
|
45
|
+
|
|
46
|
+
banner(<<-HELP)
|
|
47
|
+
Usage: chef shell-init
|
|
48
|
+
|
|
49
|
+
`chef shell-init` modifies your shell environment to make ChefDK your default
|
|
50
|
+
ruby.
|
|
51
|
+
|
|
52
|
+
To enable for just the current shell session:
|
|
53
|
+
|
|
54
|
+
In sh, bash, and zsh:
|
|
55
|
+
eval "$(chef shell-init SHELL_NAME)"
|
|
56
|
+
In fish:
|
|
57
|
+
eval (chef shell-init fish)
|
|
58
|
+
In Powershell:
|
|
59
|
+
chef shell-init powershell | Invoke-Expression
|
|
60
|
+
|
|
61
|
+
To permanently enable:
|
|
62
|
+
|
|
63
|
+
In sh, bash, and zsh:
|
|
64
|
+
echo 'eval "$(chef shell-init SHELL_NAME)"' >> ~/.YOUR_SHELL_RC_FILE
|
|
65
|
+
In fish:
|
|
66
|
+
echo 'eval (chef shell-init SHELL_NAME)' >> ~/.config/fish/config.fish
|
|
67
|
+
In Powershell
|
|
68
|
+
"chef shell-init powershell | Invoke-Expression" >> $PROFILE
|
|
69
|
+
|
|
70
|
+
OPTIONS:
|
|
71
|
+
|
|
72
|
+
HELP
|
|
73
|
+
|
|
74
|
+
option :omnibus_dir,
|
|
75
|
+
:long => "--omnibus-dir OMNIBUS_DIR",
|
|
76
|
+
:description => "Alternate path to omnibus install (used for testing)"
|
|
77
|
+
|
|
78
|
+
def initialize
|
|
79
|
+
super
|
|
80
|
+
@shell_completion_template_context = nil
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def omnibus_root
|
|
84
|
+
config[:omnibus_dir] || super
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def run(argv)
|
|
88
|
+
# Currently we don't have any shell-specific features, so we ignore the
|
|
89
|
+
# shell name. We'll need it if we add completion.
|
|
90
|
+
remaining_args = parse_options(argv)
|
|
91
|
+
shell_name = remaining_args.first
|
|
92
|
+
if shell_name.nil?
|
|
93
|
+
err("Please specify what shell you are using\n")
|
|
94
|
+
err(opt_parser.to_s)
|
|
95
|
+
return 1
|
|
96
|
+
elsif !SUPPORTED_SHELLS.include?(shell_name)
|
|
97
|
+
err("Shell `#{shell_name}' is not currently supported")
|
|
98
|
+
err("Supported shells are: #{SUPPORTED_SHELLS.join(' ')}")
|
|
99
|
+
return 1
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
env = omnibus_env.dup
|
|
103
|
+
path = env.delete("PATH")
|
|
104
|
+
export(shell_name, "PATH", path)
|
|
105
|
+
env.each do |var_name, value|
|
|
106
|
+
export(shell_name, var_name, value)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
emit_shell_cmd(completion_for(shell_name))
|
|
110
|
+
0
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def emit_shell_cmd(cmd)
|
|
114
|
+
msg(cmd) unless cmd.empty?
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def completion_for(shell)
|
|
118
|
+
return "" unless (completion_template_basename = completion_template_for(shell))
|
|
119
|
+
completion_template_path = expand_completion_template_path(completion_template_basename)
|
|
120
|
+
erb = ERB.new(File.read(completion_template_path), nil, "-")
|
|
121
|
+
context_binding = shell_completion_template_context.get_binding
|
|
122
|
+
erb.result(context_binding)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def completion_template_for(shell)
|
|
126
|
+
case shell
|
|
127
|
+
when "bash"
|
|
128
|
+
"bash.sh.erb"
|
|
129
|
+
when "fish"
|
|
130
|
+
"chef.fish.erb"
|
|
131
|
+
when "zsh"
|
|
132
|
+
"zsh.zsh.erb"
|
|
133
|
+
else
|
|
134
|
+
# Pull requests accepted!
|
|
135
|
+
nil
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def expand_completion_template_path(basename)
|
|
140
|
+
File.join(File.expand_path("../../completions", __FILE__), basename)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def shell_completion_template_context
|
|
144
|
+
@shell_completion_template_context ||= ShellCompletionTemplateContext.new
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def export(shell, var, val)
|
|
148
|
+
case shell
|
|
149
|
+
when "sh", "bash", "zsh"
|
|
150
|
+
posix_shell_export(var, val)
|
|
151
|
+
when "fish"
|
|
152
|
+
fish_shell_export(var, val)
|
|
153
|
+
when "powershell", "posh"
|
|
154
|
+
powershell_export(var, val)
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def posix_shell_export(var, val)
|
|
159
|
+
emit_shell_cmd(%Q{export #{var}="#{val}"})
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def fish_shell_export(var, val)
|
|
163
|
+
# Fish's syntax for setting PATH is special. Path elements are
|
|
164
|
+
# divided by spaces (instead of colons). We also send STDERR to
|
|
165
|
+
# /dev/null to avoid Fish's helpful warnings about nonexistent
|
|
166
|
+
# PATH elements.
|
|
167
|
+
if var == "PATH"
|
|
168
|
+
emit_shell_cmd(%Q{set -gx #{var} "#{val.split(':').join('" "')}" 2>/dev/null;})
|
|
169
|
+
else
|
|
170
|
+
emit_shell_cmd(%Q{set -gx #{var} "#{val}";})
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def powershell_export(var, val)
|
|
175
|
+
emit_shell_cmd(%Q{$env:#{var}="#{val}"})
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|
|
@@ -1,163 +1,163 @@
|
|
|
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/lister"
|
|
22
|
-
require "chef-dk/policyfile_services/show_policy"
|
|
23
|
-
|
|
24
|
-
module ChefDK
|
|
25
|
-
module Command
|
|
26
|
-
|
|
27
|
-
class ShowPolicy < Base
|
|
28
|
-
|
|
29
|
-
banner(<<-BANNER)
|
|
30
|
-
Usage: chef show-policy [POLICY_NAME [POLICY_GROUP]] [options]
|
|
31
|
-
|
|
32
|
-
`chef show-policy` Displays the revisions of policyfiles on the server. By
|
|
33
|
-
default, only active policy revisions are shown. Use the `--orphans` options to
|
|
34
|
-
show policy revisions that are not assigned to any policy group.
|
|
35
|
-
|
|
36
|
-
When both POLICY_NAME and POLICY_GROUP are given, the command shows the content
|
|
37
|
-
of a the active policyfile lock for the given POLICY_GROUP. See also the `diff`
|
|
38
|
-
command.
|
|
39
|
-
|
|
40
|
-
See our detailed README for more information:
|
|
41
|
-
|
|
42
|
-
https://docs.chef.io/policyfile.html
|
|
43
|
-
|
|
44
|
-
Options:
|
|
45
|
-
|
|
46
|
-
BANNER
|
|
47
|
-
|
|
48
|
-
option :show_orphans,
|
|
49
|
-
short: "-o",
|
|
50
|
-
long: "--orphans",
|
|
51
|
-
description: "Show policy revisions that are unassigned",
|
|
52
|
-
default: false
|
|
53
|
-
|
|
54
|
-
option :pager,
|
|
55
|
-
long: "--[no-]pager",
|
|
56
|
-
description: "Enable/disable paged policyfile lock ouput (default: enabled)",
|
|
57
|
-
default: true,
|
|
58
|
-
boolean: true
|
|
59
|
-
|
|
60
|
-
option :config_file,
|
|
61
|
-
short: "-c CONFIG_FILE",
|
|
62
|
-
long: "--config CONFIG_FILE",
|
|
63
|
-
description: "Path to configuration file"
|
|
64
|
-
|
|
65
|
-
option :debug,
|
|
66
|
-
short: "-D",
|
|
67
|
-
long: "--debug",
|
|
68
|
-
description: "Enable stacktraces and other debug output",
|
|
69
|
-
default: false
|
|
70
|
-
|
|
71
|
-
include Configurable
|
|
72
|
-
|
|
73
|
-
attr_accessor :ui
|
|
74
|
-
|
|
75
|
-
attr_reader :policy_name
|
|
76
|
-
|
|
77
|
-
attr_reader :policy_group
|
|
78
|
-
|
|
79
|
-
def initialize(*args)
|
|
80
|
-
super
|
|
81
|
-
@show_all_policies = nil
|
|
82
|
-
@policy_name = nil
|
|
83
|
-
@policy_group = nil
|
|
84
|
-
@ui = UI.new
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def run(params)
|
|
88
|
-
return 1 unless apply_params!(params)
|
|
89
|
-
show_policy_service.run
|
|
90
|
-
0
|
|
91
|
-
rescue PolicyfileServiceError => e
|
|
92
|
-
handle_error(e)
|
|
93
|
-
1
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def show_policy_service
|
|
97
|
-
@policy_list_service ||=
|
|
98
|
-
PolicyfileServices::ShowPolicy.new(config: chef_config,
|
|
99
|
-
ui: ui,
|
|
100
|
-
policy_name: policy_name,
|
|
101
|
-
policy_group: policy_group,
|
|
102
|
-
show_orphans: show_orphans?,
|
|
103
|
-
summary_diff: show_summary_diff?,
|
|
104
|
-
pager: enable_pager?)
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def debug?
|
|
108
|
-
!!config[:debug]
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def show_summary_diff?
|
|
112
|
-
false
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def show_orphans?
|
|
116
|
-
config[:show_orphans]
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def enable_pager?
|
|
120
|
-
config[:pager]
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def handle_error(error)
|
|
124
|
-
ui.err("Error: #{error.message}")
|
|
125
|
-
if error.respond_to?(:reason)
|
|
126
|
-
ui.err("Reason: #{error.reason}")
|
|
127
|
-
ui.err("")
|
|
128
|
-
ui.err(error.extended_error_info) if debug?
|
|
129
|
-
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
130
|
-
end
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
def apply_params!(params)
|
|
134
|
-
remaining_args = parse_options(params)
|
|
135
|
-
|
|
136
|
-
if remaining_args.empty? && show_summary_diff?
|
|
137
|
-
ui.err("The --summary-diff option can only be used when showing a single policy")
|
|
138
|
-
ui.err("")
|
|
139
|
-
ui.err(opt_parser)
|
|
140
|
-
false
|
|
141
|
-
elsif remaining_args.empty?
|
|
142
|
-
@show_all_policies = true
|
|
143
|
-
true
|
|
144
|
-
elsif remaining_args.size == 1
|
|
145
|
-
@policy_name = remaining_args.first
|
|
146
|
-
@show_all_policies = false
|
|
147
|
-
true
|
|
148
|
-
elsif remaining_args.size == 2
|
|
149
|
-
@policy_name = remaining_args[0]
|
|
150
|
-
@policy_group = remaining_args[1]
|
|
151
|
-
@show_all_policies = false
|
|
152
|
-
true
|
|
153
|
-
else
|
|
154
|
-
ui.err("Too many arguments")
|
|
155
|
-
ui.err("")
|
|
156
|
-
ui.err(opt_parser)
|
|
157
|
-
false
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
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/lister"
|
|
22
|
+
require "chef-dk/policyfile_services/show_policy"
|
|
23
|
+
|
|
24
|
+
module ChefDK
|
|
25
|
+
module Command
|
|
26
|
+
|
|
27
|
+
class ShowPolicy < Base
|
|
28
|
+
|
|
29
|
+
banner(<<-BANNER)
|
|
30
|
+
Usage: chef show-policy [POLICY_NAME [POLICY_GROUP]] [options]
|
|
31
|
+
|
|
32
|
+
`chef show-policy` Displays the revisions of policyfiles on the server. By
|
|
33
|
+
default, only active policy revisions are shown. Use the `--orphans` options to
|
|
34
|
+
show policy revisions that are not assigned to any policy group.
|
|
35
|
+
|
|
36
|
+
When both POLICY_NAME and POLICY_GROUP are given, the command shows the content
|
|
37
|
+
of a the active policyfile lock for the given POLICY_GROUP. See also the `diff`
|
|
38
|
+
command.
|
|
39
|
+
|
|
40
|
+
See our detailed README for more information:
|
|
41
|
+
|
|
42
|
+
https://docs.chef.io/policyfile.html
|
|
43
|
+
|
|
44
|
+
Options:
|
|
45
|
+
|
|
46
|
+
BANNER
|
|
47
|
+
|
|
48
|
+
option :show_orphans,
|
|
49
|
+
short: "-o",
|
|
50
|
+
long: "--orphans",
|
|
51
|
+
description: "Show policy revisions that are unassigned",
|
|
52
|
+
default: false
|
|
53
|
+
|
|
54
|
+
option :pager,
|
|
55
|
+
long: "--[no-]pager",
|
|
56
|
+
description: "Enable/disable paged policyfile lock ouput (default: enabled)",
|
|
57
|
+
default: true,
|
|
58
|
+
boolean: true
|
|
59
|
+
|
|
60
|
+
option :config_file,
|
|
61
|
+
short: "-c CONFIG_FILE",
|
|
62
|
+
long: "--config CONFIG_FILE",
|
|
63
|
+
description: "Path to configuration file"
|
|
64
|
+
|
|
65
|
+
option :debug,
|
|
66
|
+
short: "-D",
|
|
67
|
+
long: "--debug",
|
|
68
|
+
description: "Enable stacktraces and other debug output",
|
|
69
|
+
default: false
|
|
70
|
+
|
|
71
|
+
include Configurable
|
|
72
|
+
|
|
73
|
+
attr_accessor :ui
|
|
74
|
+
|
|
75
|
+
attr_reader :policy_name
|
|
76
|
+
|
|
77
|
+
attr_reader :policy_group
|
|
78
|
+
|
|
79
|
+
def initialize(*args)
|
|
80
|
+
super
|
|
81
|
+
@show_all_policies = nil
|
|
82
|
+
@policy_name = nil
|
|
83
|
+
@policy_group = nil
|
|
84
|
+
@ui = UI.new
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def run(params)
|
|
88
|
+
return 1 unless apply_params!(params)
|
|
89
|
+
show_policy_service.run
|
|
90
|
+
0
|
|
91
|
+
rescue PolicyfileServiceError => e
|
|
92
|
+
handle_error(e)
|
|
93
|
+
1
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def show_policy_service
|
|
97
|
+
@policy_list_service ||=
|
|
98
|
+
PolicyfileServices::ShowPolicy.new(config: chef_config,
|
|
99
|
+
ui: ui,
|
|
100
|
+
policy_name: policy_name,
|
|
101
|
+
policy_group: policy_group,
|
|
102
|
+
show_orphans: show_orphans?,
|
|
103
|
+
summary_diff: show_summary_diff?,
|
|
104
|
+
pager: enable_pager?)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def debug?
|
|
108
|
+
!!config[:debug]
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def show_summary_diff?
|
|
112
|
+
false
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def show_orphans?
|
|
116
|
+
config[:show_orphans]
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def enable_pager?
|
|
120
|
+
config[:pager]
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def handle_error(error)
|
|
124
|
+
ui.err("Error: #{error.message}")
|
|
125
|
+
if error.respond_to?(:reason)
|
|
126
|
+
ui.err("Reason: #{error.reason}")
|
|
127
|
+
ui.err("")
|
|
128
|
+
ui.err(error.extended_error_info) if debug?
|
|
129
|
+
ui.err(error.cause.backtrace.join("\n")) if debug?
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def apply_params!(params)
|
|
134
|
+
remaining_args = parse_options(params)
|
|
135
|
+
|
|
136
|
+
if remaining_args.empty? && show_summary_diff?
|
|
137
|
+
ui.err("The --summary-diff option can only be used when showing a single policy")
|
|
138
|
+
ui.err("")
|
|
139
|
+
ui.err(opt_parser)
|
|
140
|
+
false
|
|
141
|
+
elsif remaining_args.empty?
|
|
142
|
+
@show_all_policies = true
|
|
143
|
+
true
|
|
144
|
+
elsif remaining_args.size == 1
|
|
145
|
+
@policy_name = remaining_args.first
|
|
146
|
+
@show_all_policies = false
|
|
147
|
+
true
|
|
148
|
+
elsif remaining_args.size == 2
|
|
149
|
+
@policy_name = remaining_args[0]
|
|
150
|
+
@policy_group = remaining_args[1]
|
|
151
|
+
@show_all_policies = false
|
|
152
|
+
true
|
|
153
|
+
else
|
|
154
|
+
ui.err("Too many arguments")
|
|
155
|
+
ui.err("")
|
|
156
|
+
ui.err(opt_parser)
|
|
157
|
+
false
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|