chef-dk 2.4.17 → 2.5.3
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 +5 -5
- data/Gemfile +121 -119
- data/Gemfile.lock +802 -817
- 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 -20
- 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 +126 -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 +151 -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 +150 -150
- data/lib/chef-dk/generator.rb +165 -165
- data/lib/chef-dk/helpers.rb +176 -176
- data/lib/chef-dk/pager.rb +105 -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 +164 -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/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 +123 -122
- 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 +122 -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 +312 -312
- data/lib/chef-dk/policyfile/source_uri.rb +57 -57
- data/lib/chef-dk/policyfile/storage_config.rb +102 -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 +420 -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 +200 -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 +236 -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 +107 -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 +54 -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 +152 -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/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 +22 -22
- 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 +756 -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/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 -161
- 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 +638 -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 +478 -478
- data/spec/unit/policyfile_services/install_spec.rb +209 -209
- data/spec/unit/policyfile_services/push_archive_spec.rb +374 -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 +5 -5
|
@@ -1,166 +1,166 @@
|
|
|
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 "spec_helper"
|
|
19
|
-
require "shared/custom_generator_cookbook"
|
|
20
|
-
require "chef-dk/command/generator_commands/app"
|
|
21
|
-
|
|
22
|
-
describe ChefDK::Command::GeneratorCommands::App do
|
|
23
|
-
|
|
24
|
-
let(:argv) { %w{new_app} }
|
|
25
|
-
|
|
26
|
-
let(:stdout_io) { StringIO.new }
|
|
27
|
-
let(:stderr_io) { StringIO.new }
|
|
28
|
-
|
|
29
|
-
let(:expected_cookbook_file_relpaths) do
|
|
30
|
-
%w{
|
|
31
|
-
.gitignore
|
|
32
|
-
.kitchen.yml
|
|
33
|
-
test
|
|
34
|
-
test/
|
|
35
|
-
test/
|
|
36
|
-
test/
|
|
37
|
-
README.md
|
|
38
|
-
cookbooks/new_app/Berksfile
|
|
39
|
-
cookbooks/new_app/chefignore
|
|
40
|
-
cookbooks/new_app/metadata.rb
|
|
41
|
-
cookbooks/new_app/recipes
|
|
42
|
-
cookbooks/new_app/recipes/default.rb
|
|
43
|
-
cookbooks/new_app/spec
|
|
44
|
-
cookbooks/new_app/spec/spec_helper.rb
|
|
45
|
-
cookbooks/new_app/spec/unit
|
|
46
|
-
cookbooks/new_app/spec/unit/recipes
|
|
47
|
-
cookbooks/new_app/spec/unit/recipes/default_spec.rb
|
|
48
|
-
}
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
let(:expected_cookbook_files) do
|
|
52
|
-
expected_cookbook_file_relpaths.map do |relpath|
|
|
53
|
-
File.join(tempdir, "new_app", relpath)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
subject(:cookbook_generator) { described_class.new(argv) }
|
|
58
|
-
|
|
59
|
-
def generator_context
|
|
60
|
-
ChefDK::Generator.context
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
before do
|
|
64
|
-
ChefDK::Generator.reset
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
include_examples "custom generator cookbook" do
|
|
68
|
-
|
|
69
|
-
let(:generator_arg) { "new_app" }
|
|
70
|
-
|
|
71
|
-
let(:generator_name) { "app" }
|
|
72
|
-
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
context "when given the name of the cookbook to generate" do
|
|
76
|
-
|
|
77
|
-
before do
|
|
78
|
-
reset_tempdir
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
it "configures the generator context" do
|
|
82
|
-
cookbook_generator.read_and_validate_params
|
|
83
|
-
cookbook_generator.setup_context
|
|
84
|
-
expect(generator_context.app_root).to eq(Dir.pwd)
|
|
85
|
-
expect(generator_context.app_name).to eq("new_app")
|
|
86
|
-
expect(generator_context.cookbook_root).to eq(File.join(Dir.pwd, "new_app", "cookbooks"))
|
|
87
|
-
expect(generator_context.cookbook_name).to eq("new_app")
|
|
88
|
-
expect(generator_context.recipe_name).to eq("default")
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
describe "generated files" do
|
|
92
|
-
it "creates a new cookbook" do
|
|
93
|
-
Dir.chdir(tempdir) do
|
|
94
|
-
allow(cookbook_generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
95
|
-
cookbook_generator.run
|
|
96
|
-
end
|
|
97
|
-
generated_files = Dir.glob(File.join(tempdir, "new_app", "**", "*"), File::FNM_DOTMATCH)
|
|
98
|
-
expected_cookbook_files.each do |expected_file|
|
|
99
|
-
expect(generated_files).to include(expected_file)
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
shared_examples_for "a generated file" do |context_var|
|
|
104
|
-
before do
|
|
105
|
-
Dir.chdir(tempdir) do
|
|
106
|
-
allow(cookbook_generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
107
|
-
cookbook_generator.run
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
it "should contain #{context_var} from the generator context" do
|
|
112
|
-
expect(File.read(file)).to match line
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
describe "README.md" do
|
|
117
|
-
let(:file) { File.join(tempdir, "new_app", "README.md") }
|
|
118
|
-
|
|
119
|
-
include_examples "a generated file", :cookbook_name do
|
|
120
|
-
let(:line) { "# new_app" }
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
describe ".kitchen.yml" do
|
|
125
|
-
let(:file) { File.join(tempdir, "new_app", ".kitchen.yml") }
|
|
126
|
-
|
|
127
|
-
include_examples "a generated file", :cookbook_name do
|
|
128
|
-
let(:line) { /\s*- recipe\[new_app::default\]/ }
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
describe "test/
|
|
133
|
-
let(:file) { File.join(tempdir, "new_app", "test", "
|
|
134
|
-
|
|
135
|
-
include_examples "a generated file", :cookbook_name do
|
|
136
|
-
let(:line) { "describe port" }
|
|
137
|
-
end
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
describe "cookbooks/new_app/metadata.rb" do
|
|
141
|
-
let(:file) { File.join(tempdir, "new_app", "cookbooks", "new_app", "metadata.rb") }
|
|
142
|
-
|
|
143
|
-
include_examples "a generated file", :cookbook_name do
|
|
144
|
-
let(:line) { /name\s+'new_app'/ }
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
describe "cookbooks/new_app/recipes/default.rb" do
|
|
149
|
-
let(:file) { File.join(tempdir, "new_app", "cookbooks", "new_app", "recipes", "default.rb") }
|
|
150
|
-
|
|
151
|
-
include_examples "a generated file", :cookbook_name do
|
|
152
|
-
let(:line) { "# Cookbook:: new_app" }
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
describe "cookbooks/new_app/spec/unit/recipes/default_spec.rb" do
|
|
157
|
-
let(:file) { File.join(tempdir, "new_app", "cookbooks", "new_app", "spec", "unit", "recipes", "default_spec.rb") }
|
|
158
|
-
|
|
159
|
-
include_examples "a generated file", :cookbook_name do
|
|
160
|
-
let(:line) { "describe \'new_app::default\' do" }
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
end
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "spec_helper"
|
|
19
|
+
require "shared/custom_generator_cookbook"
|
|
20
|
+
require "chef-dk/command/generator_commands/app"
|
|
21
|
+
|
|
22
|
+
describe ChefDK::Command::GeneratorCommands::App do
|
|
23
|
+
|
|
24
|
+
let(:argv) { %w{new_app} }
|
|
25
|
+
|
|
26
|
+
let(:stdout_io) { StringIO.new }
|
|
27
|
+
let(:stderr_io) { StringIO.new }
|
|
28
|
+
|
|
29
|
+
let(:expected_cookbook_file_relpaths) do
|
|
30
|
+
%w{
|
|
31
|
+
.gitignore
|
|
32
|
+
.kitchen.yml
|
|
33
|
+
test
|
|
34
|
+
test/integration
|
|
35
|
+
test/integration/default
|
|
36
|
+
test/integration/default/default_test.rb
|
|
37
|
+
README.md
|
|
38
|
+
cookbooks/new_app/Berksfile
|
|
39
|
+
cookbooks/new_app/chefignore
|
|
40
|
+
cookbooks/new_app/metadata.rb
|
|
41
|
+
cookbooks/new_app/recipes
|
|
42
|
+
cookbooks/new_app/recipes/default.rb
|
|
43
|
+
cookbooks/new_app/spec
|
|
44
|
+
cookbooks/new_app/spec/spec_helper.rb
|
|
45
|
+
cookbooks/new_app/spec/unit
|
|
46
|
+
cookbooks/new_app/spec/unit/recipes
|
|
47
|
+
cookbooks/new_app/spec/unit/recipes/default_spec.rb
|
|
48
|
+
}
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
let(:expected_cookbook_files) do
|
|
52
|
+
expected_cookbook_file_relpaths.map do |relpath|
|
|
53
|
+
File.join(tempdir, "new_app", relpath)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
subject(:cookbook_generator) { described_class.new(argv) }
|
|
58
|
+
|
|
59
|
+
def generator_context
|
|
60
|
+
ChefDK::Generator.context
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
before do
|
|
64
|
+
ChefDK::Generator.reset
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
include_examples "custom generator cookbook" do
|
|
68
|
+
|
|
69
|
+
let(:generator_arg) { "new_app" }
|
|
70
|
+
|
|
71
|
+
let(:generator_name) { "app" }
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
context "when given the name of the cookbook to generate" do
|
|
76
|
+
|
|
77
|
+
before do
|
|
78
|
+
reset_tempdir
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it "configures the generator context" do
|
|
82
|
+
cookbook_generator.read_and_validate_params
|
|
83
|
+
cookbook_generator.setup_context
|
|
84
|
+
expect(generator_context.app_root).to eq(Dir.pwd)
|
|
85
|
+
expect(generator_context.app_name).to eq("new_app")
|
|
86
|
+
expect(generator_context.cookbook_root).to eq(File.join(Dir.pwd, "new_app", "cookbooks"))
|
|
87
|
+
expect(generator_context.cookbook_name).to eq("new_app")
|
|
88
|
+
expect(generator_context.recipe_name).to eq("default")
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
describe "generated files" do
|
|
92
|
+
it "creates a new cookbook" do
|
|
93
|
+
Dir.chdir(tempdir) do
|
|
94
|
+
allow(cookbook_generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
95
|
+
cookbook_generator.run
|
|
96
|
+
end
|
|
97
|
+
generated_files = Dir.glob(File.join(tempdir, "new_app", "**", "*"), File::FNM_DOTMATCH)
|
|
98
|
+
expected_cookbook_files.each do |expected_file|
|
|
99
|
+
expect(generated_files).to include(expected_file)
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
shared_examples_for "a generated file" do |context_var|
|
|
104
|
+
before do
|
|
105
|
+
Dir.chdir(tempdir) do
|
|
106
|
+
allow(cookbook_generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
107
|
+
cookbook_generator.run
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
it "should contain #{context_var} from the generator context" do
|
|
112
|
+
expect(File.read(file)).to match line
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
describe "README.md" do
|
|
117
|
+
let(:file) { File.join(tempdir, "new_app", "README.md") }
|
|
118
|
+
|
|
119
|
+
include_examples "a generated file", :cookbook_name do
|
|
120
|
+
let(:line) { "# new_app" }
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
describe ".kitchen.yml" do
|
|
125
|
+
let(:file) { File.join(tempdir, "new_app", ".kitchen.yml") }
|
|
126
|
+
|
|
127
|
+
include_examples "a generated file", :cookbook_name do
|
|
128
|
+
let(:line) { /\s*- recipe\[new_app::default\]/ }
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
describe "test/integration/default/default_test.rb" do
|
|
133
|
+
let(:file) { File.join(tempdir, "new_app", "test", "integration", "default", "default_test.rb") }
|
|
134
|
+
|
|
135
|
+
include_examples "a generated file", :cookbook_name do
|
|
136
|
+
let(:line) { "describe port" }
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
describe "cookbooks/new_app/metadata.rb" do
|
|
141
|
+
let(:file) { File.join(tempdir, "new_app", "cookbooks", "new_app", "metadata.rb") }
|
|
142
|
+
|
|
143
|
+
include_examples "a generated file", :cookbook_name do
|
|
144
|
+
let(:line) { /name\s+'new_app'/ }
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
describe "cookbooks/new_app/recipes/default.rb" do
|
|
149
|
+
let(:file) { File.join(tempdir, "new_app", "cookbooks", "new_app", "recipes", "default.rb") }
|
|
150
|
+
|
|
151
|
+
include_examples "a generated file", :cookbook_name do
|
|
152
|
+
let(:line) { "# Cookbook:: new_app" }
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
describe "cookbooks/new_app/spec/unit/recipes/default_spec.rb" do
|
|
157
|
+
let(:file) { File.join(tempdir, "new_app", "cookbooks", "new_app", "spec", "unit", "recipes", "default_spec.rb") }
|
|
158
|
+
|
|
159
|
+
include_examples "a generated file", :cookbook_name do
|
|
160
|
+
let(:line) { "describe \'new_app::default\' do" }
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
@@ -1,31 +1,31 @@
|
|
|
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 "spec_helper"
|
|
19
|
-
require "shared/a_file_generator"
|
|
20
|
-
require "chef-dk/command/generator_commands/attribute"
|
|
21
|
-
|
|
22
|
-
describe ChefDK::Command::GeneratorCommands::Attribute do
|
|
23
|
-
|
|
24
|
-
include_examples "a file generator" do
|
|
25
|
-
|
|
26
|
-
let(:generator_name) { "attribute" }
|
|
27
|
-
let(:generated_files) { [ "attributes/new_attribute_file.rb" ] }
|
|
28
|
-
let(:new_file_name) { "new_attribute_file" }
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
end
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "spec_helper"
|
|
19
|
+
require "shared/a_file_generator"
|
|
20
|
+
require "chef-dk/command/generator_commands/attribute"
|
|
21
|
+
|
|
22
|
+
describe ChefDK::Command::GeneratorCommands::Attribute do
|
|
23
|
+
|
|
24
|
+
include_examples "a file generator" do
|
|
25
|
+
|
|
26
|
+
let(:generator_name) { "attribute" }
|
|
27
|
+
let(:generated_files) { [ "attributes/new_attribute_file.rb" ] }
|
|
28
|
+
let(:new_file_name) { "new_attribute_file" }
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,181 +1,181 @@
|
|
|
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 "pry"
|
|
19
|
-
require "spec_helper"
|
|
20
|
-
require "chef-dk/command/generator_commands/base"
|
|
21
|
-
|
|
22
|
-
describe ChefDK::Command::GeneratorCommands::Base do
|
|
23
|
-
describe "parsing Chef configuration" do
|
|
24
|
-
let(:cli_args) do
|
|
25
|
-
[
|
|
26
|
-
"-C", "Business Man",
|
|
27
|
-
"-I", "Serious Business",
|
|
28
|
-
"-m", "business.man@corporation.com"
|
|
29
|
-
]
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
before do
|
|
33
|
-
Chef::Config.reset
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
context "when generator configuration is defined" do
|
|
37
|
-
before do
|
|
38
|
-
Chef::Config.reset
|
|
39
|
-
Chef::Config.chefdk.generator.copyright_holder = "This Guy"
|
|
40
|
-
Chef::Config.chefdk.generator.email = "this.guy@twothumbs.net"
|
|
41
|
-
Chef::Config.chefdk.generator.license = "Two Thumbs License"
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it "uses the defined values" do
|
|
45
|
-
cmd = ChefDK::Command::GeneratorCommands::Base.new([])
|
|
46
|
-
cmd.parse_options
|
|
47
|
-
cmd.setup_context
|
|
48
|
-
cfg = cmd.config
|
|
49
|
-
expect(cfg[:copyright_holder]).to eq("This Guy")
|
|
50
|
-
expect(cfg[:email]).to eq("this.guy@twothumbs.net")
|
|
51
|
-
expect(cfg[:license]).to eq("Two Thumbs License")
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
context "when cli overrides are provided" do
|
|
55
|
-
before do
|
|
56
|
-
Chef::Config.reset
|
|
57
|
-
Chef::Config.chefdk.generator.copyright_holder = "This Guy"
|
|
58
|
-
Chef::Config.chefdk.generator.email = "this.guy@twothumbs.net"
|
|
59
|
-
Chef::Config.chefdk.generator.license = "Two Thumbs License"
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it "uses the cli args" do
|
|
63
|
-
cmd = ChefDK::Command::GeneratorCommands::Base.new(cli_args)
|
|
64
|
-
cmd.parse_options(cli_args)
|
|
65
|
-
cmd.setup_context
|
|
66
|
-
cfg = cmd.config
|
|
67
|
-
expect(cfg[:copyright_holder]).to eq("Business Man")
|
|
68
|
-
expect(cfg[:email]).to eq("business.man@corporation.com")
|
|
69
|
-
expect(cfg[:license]).to eq("Serious Business")
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
context "when knife configuration is also defined" do
|
|
74
|
-
|
|
75
|
-
before do
|
|
76
|
-
Chef::Config.reset
|
|
77
|
-
Chef::Config.chefdk.generator.copyright_holder = "This Guy"
|
|
78
|
-
Chef::Config.chefdk.generator.email = "this.guy@twothumbs.net"
|
|
79
|
-
Chef::Config.chefdk.generator.license = "Two Thumbs License"
|
|
80
|
-
Chef::Config.knife.cookbook_copyright = "Knife User"
|
|
81
|
-
Chef::Config.knife.cookbook_email = "knife.user@example.com"
|
|
82
|
-
Chef::Config.knife.cookbook_license = "GPLv9000"
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
it "uses the generator configuration" do
|
|
86
|
-
cmd = ChefDK::Command::GeneratorCommands::Base.new([])
|
|
87
|
-
cmd.parse_options
|
|
88
|
-
cmd.setup_context
|
|
89
|
-
cfg = cmd.config
|
|
90
|
-
expect(cfg[:copyright_holder]).to eq("This Guy")
|
|
91
|
-
expect(cfg[:email]).to eq("this.guy@twothumbs.net")
|
|
92
|
-
expect(cfg[:license]).to eq("Two Thumbs License")
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
context "when knife configuration is defined" do
|
|
98
|
-
before do
|
|
99
|
-
Chef::Config.reset
|
|
100
|
-
Chef::Config.knife.cookbook_copyright = "Knife User"
|
|
101
|
-
Chef::Config.knife.cookbook_email = "knife.user@example.com"
|
|
102
|
-
Chef::Config.knife.cookbook_license = "GPLv9000"
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
it "uses the defined values" do
|
|
106
|
-
cmd = ChefDK::Command::GeneratorCommands::Base.new([])
|
|
107
|
-
cmd.parse_options
|
|
108
|
-
cmd.setup_context
|
|
109
|
-
cfg = cmd.config
|
|
110
|
-
expect(cfg[:copyright_holder]).to eq("Knife User")
|
|
111
|
-
expect(cfg[:email]).to eq("knife.user@example.com")
|
|
112
|
-
expect(cfg[:license]).to eq("GPLv9000")
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
context "when cli overrides are provided" do
|
|
116
|
-
|
|
117
|
-
before do
|
|
118
|
-
Chef::Config.reset
|
|
119
|
-
Chef::Config.knife.cookbook_copyright = "Knife User"
|
|
120
|
-
Chef::Config.knife.cookbook_email = "knife.user@example.com"
|
|
121
|
-
Chef::Config.knife.cookbook_license = "GPLv9000"
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
it "uses the cli args" do
|
|
125
|
-
cmd = ChefDK::Command::GeneratorCommands::Base.new(cli_args)
|
|
126
|
-
cmd.parse_options(cli_args)
|
|
127
|
-
cmd.setup_context
|
|
128
|
-
cfg = cmd.config
|
|
129
|
-
expect(cfg[:copyright_holder]).to eq("Business Man")
|
|
130
|
-
expect(cfg[:email]).to eq("business.man@corporation.com")
|
|
131
|
-
expect(cfg[:license]).to eq("Serious Business")
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
describe "#have_git?" do
|
|
138
|
-
let(:cmd) { described_class.new([]) }
|
|
139
|
-
let(:path) { "bin_path" }
|
|
140
|
-
|
|
141
|
-
before do
|
|
142
|
-
allow(File).to receive(:exist?)
|
|
143
|
-
allow(ENV).to receive(:[]).with("PATH").and_return(path)
|
|
144
|
-
allow(ENV).to receive(:[]).with("PATHEXT").and_return(nil)
|
|
145
|
-
allow(RbConfig::CONFIG).to receive(:[]).with("EXEEXT").and_return("")
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
describe "when git executable exists" do
|
|
149
|
-
it "returns true" do
|
|
150
|
-
allow(File).to receive(:exist?).and_return(true)
|
|
151
|
-
expect(cmd.have_git?).to eq(true)
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
describe "when git executable does not exist" do
|
|
156
|
-
it "returns false" do
|
|
157
|
-
allow(File).to receive(:exist?).and_return(false)
|
|
158
|
-
expect(cmd.have_git?).to eq(false)
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
it "checks PATH for git executable" do
|
|
163
|
-
expect(File).to receive(:exist?).with(File.join(path, "git"))
|
|
164
|
-
cmd.have_git?
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
describe "when on Windows" do
|
|
168
|
-
before do
|
|
169
|
-
allow(ENV).to receive(:[]).with("PATHEXT").and_return(".com;.exe;.bat")
|
|
170
|
-
allow(RbConfig::CONFIG).to receive(:[]).with("EXEEXT").and_return(".exe")
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
it "checks PATH for git executable with an extension found in PATHEXT" do
|
|
174
|
-
expect(File).to receive(:exist?).with(File.join(path, "git.com"))
|
|
175
|
-
expect(File).to receive(:exist?).with(File.join(path, "git.exe"))
|
|
176
|
-
expect(File).to receive(:exist?).with(File.join(path, "git.bat"))
|
|
177
|
-
cmd.have_git?
|
|
178
|
-
end
|
|
179
|
-
end
|
|
180
|
-
end
|
|
181
|
-
end
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "pry"
|
|
19
|
+
require "spec_helper"
|
|
20
|
+
require "chef-dk/command/generator_commands/base"
|
|
21
|
+
|
|
22
|
+
describe ChefDK::Command::GeneratorCommands::Base do
|
|
23
|
+
describe "parsing Chef configuration" do
|
|
24
|
+
let(:cli_args) do
|
|
25
|
+
[
|
|
26
|
+
"-C", "Business Man",
|
|
27
|
+
"-I", "Serious Business",
|
|
28
|
+
"-m", "business.man@corporation.com"
|
|
29
|
+
]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
before do
|
|
33
|
+
Chef::Config.reset
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
context "when generator configuration is defined" do
|
|
37
|
+
before do
|
|
38
|
+
Chef::Config.reset
|
|
39
|
+
Chef::Config.chefdk.generator.copyright_holder = "This Guy"
|
|
40
|
+
Chef::Config.chefdk.generator.email = "this.guy@twothumbs.net"
|
|
41
|
+
Chef::Config.chefdk.generator.license = "Two Thumbs License"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "uses the defined values" do
|
|
45
|
+
cmd = ChefDK::Command::GeneratorCommands::Base.new([])
|
|
46
|
+
cmd.parse_options
|
|
47
|
+
cmd.setup_context
|
|
48
|
+
cfg = cmd.config
|
|
49
|
+
expect(cfg[:copyright_holder]).to eq("This Guy")
|
|
50
|
+
expect(cfg[:email]).to eq("this.guy@twothumbs.net")
|
|
51
|
+
expect(cfg[:license]).to eq("Two Thumbs License")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
context "when cli overrides are provided" do
|
|
55
|
+
before do
|
|
56
|
+
Chef::Config.reset
|
|
57
|
+
Chef::Config.chefdk.generator.copyright_holder = "This Guy"
|
|
58
|
+
Chef::Config.chefdk.generator.email = "this.guy@twothumbs.net"
|
|
59
|
+
Chef::Config.chefdk.generator.license = "Two Thumbs License"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "uses the cli args" do
|
|
63
|
+
cmd = ChefDK::Command::GeneratorCommands::Base.new(cli_args)
|
|
64
|
+
cmd.parse_options(cli_args)
|
|
65
|
+
cmd.setup_context
|
|
66
|
+
cfg = cmd.config
|
|
67
|
+
expect(cfg[:copyright_holder]).to eq("Business Man")
|
|
68
|
+
expect(cfg[:email]).to eq("business.man@corporation.com")
|
|
69
|
+
expect(cfg[:license]).to eq("Serious Business")
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
context "when knife configuration is also defined" do
|
|
74
|
+
|
|
75
|
+
before do
|
|
76
|
+
Chef::Config.reset
|
|
77
|
+
Chef::Config.chefdk.generator.copyright_holder = "This Guy"
|
|
78
|
+
Chef::Config.chefdk.generator.email = "this.guy@twothumbs.net"
|
|
79
|
+
Chef::Config.chefdk.generator.license = "Two Thumbs License"
|
|
80
|
+
Chef::Config.knife.cookbook_copyright = "Knife User"
|
|
81
|
+
Chef::Config.knife.cookbook_email = "knife.user@example.com"
|
|
82
|
+
Chef::Config.knife.cookbook_license = "GPLv9000"
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it "uses the generator configuration" do
|
|
86
|
+
cmd = ChefDK::Command::GeneratorCommands::Base.new([])
|
|
87
|
+
cmd.parse_options
|
|
88
|
+
cmd.setup_context
|
|
89
|
+
cfg = cmd.config
|
|
90
|
+
expect(cfg[:copyright_holder]).to eq("This Guy")
|
|
91
|
+
expect(cfg[:email]).to eq("this.guy@twothumbs.net")
|
|
92
|
+
expect(cfg[:license]).to eq("Two Thumbs License")
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
context "when knife configuration is defined" do
|
|
98
|
+
before do
|
|
99
|
+
Chef::Config.reset
|
|
100
|
+
Chef::Config.knife.cookbook_copyright = "Knife User"
|
|
101
|
+
Chef::Config.knife.cookbook_email = "knife.user@example.com"
|
|
102
|
+
Chef::Config.knife.cookbook_license = "GPLv9000"
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it "uses the defined values" do
|
|
106
|
+
cmd = ChefDK::Command::GeneratorCommands::Base.new([])
|
|
107
|
+
cmd.parse_options
|
|
108
|
+
cmd.setup_context
|
|
109
|
+
cfg = cmd.config
|
|
110
|
+
expect(cfg[:copyright_holder]).to eq("Knife User")
|
|
111
|
+
expect(cfg[:email]).to eq("knife.user@example.com")
|
|
112
|
+
expect(cfg[:license]).to eq("GPLv9000")
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
context "when cli overrides are provided" do
|
|
116
|
+
|
|
117
|
+
before do
|
|
118
|
+
Chef::Config.reset
|
|
119
|
+
Chef::Config.knife.cookbook_copyright = "Knife User"
|
|
120
|
+
Chef::Config.knife.cookbook_email = "knife.user@example.com"
|
|
121
|
+
Chef::Config.knife.cookbook_license = "GPLv9000"
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
it "uses the cli args" do
|
|
125
|
+
cmd = ChefDK::Command::GeneratorCommands::Base.new(cli_args)
|
|
126
|
+
cmd.parse_options(cli_args)
|
|
127
|
+
cmd.setup_context
|
|
128
|
+
cfg = cmd.config
|
|
129
|
+
expect(cfg[:copyright_holder]).to eq("Business Man")
|
|
130
|
+
expect(cfg[:email]).to eq("business.man@corporation.com")
|
|
131
|
+
expect(cfg[:license]).to eq("Serious Business")
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
describe "#have_git?" do
|
|
138
|
+
let(:cmd) { described_class.new([]) }
|
|
139
|
+
let(:path) { "bin_path" }
|
|
140
|
+
|
|
141
|
+
before do
|
|
142
|
+
allow(File).to receive(:exist?)
|
|
143
|
+
allow(ENV).to receive(:[]).with("PATH").and_return(path)
|
|
144
|
+
allow(ENV).to receive(:[]).with("PATHEXT").and_return(nil)
|
|
145
|
+
allow(RbConfig::CONFIG).to receive(:[]).with("EXEEXT").and_return("")
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
describe "when git executable exists" do
|
|
149
|
+
it "returns true" do
|
|
150
|
+
allow(File).to receive(:exist?).and_return(true)
|
|
151
|
+
expect(cmd.have_git?).to eq(true)
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
describe "when git executable does not exist" do
|
|
156
|
+
it "returns false" do
|
|
157
|
+
allow(File).to receive(:exist?).and_return(false)
|
|
158
|
+
expect(cmd.have_git?).to eq(false)
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
it "checks PATH for git executable" do
|
|
163
|
+
expect(File).to receive(:exist?).with(File.join(path, "git"))
|
|
164
|
+
cmd.have_git?
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
describe "when on Windows" do
|
|
168
|
+
before do
|
|
169
|
+
allow(ENV).to receive(:[]).with("PATHEXT").and_return(".com;.exe;.bat")
|
|
170
|
+
allow(RbConfig::CONFIG).to receive(:[]).with("EXEEXT").and_return(".exe")
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
it "checks PATH for git executable with an extension found in PATHEXT" do
|
|
174
|
+
expect(File).to receive(:exist?).with(File.join(path, "git.com"))
|
|
175
|
+
expect(File).to receive(:exist?).with(File.join(path, "git.exe"))
|
|
176
|
+
expect(File).to receive(:exist?).with(File.join(path, "git.bat"))
|
|
177
|
+
cmd.have_git?
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
end
|