chef-dk 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +190 -190
- data/Gemfile +26 -0
- data/LICENSE +201 -201
- data/README.md +276 -276
- data/Rakefile +18 -18
- data/bin/chef +25 -25
- data/lib/chef-dk.rb +19 -19
- data/lib/chef-dk/authenticated_http.rb +40 -40
- data/lib/chef-dk/builtin_commands.rb +60 -60
- data/lib/chef-dk/chef_runner.rb +98 -98
- data/lib/chef-dk/cli.rb +200 -200
- data/lib/chef-dk/command/base.rb +79 -75
- data/lib/chef-dk/command/clean_policy_cookbooks.rb +116 -116
- data/lib/chef-dk/command/clean_policy_revisions.rb +113 -113
- data/lib/chef-dk/command/delete_policy.rb +122 -122
- data/lib/chef-dk/command/delete_policy_group.rb +122 -122
- data/lib/chef-dk/command/diff.rb +316 -316
- data/lib/chef-dk/command/env.rb +90 -90
- data/lib/chef-dk/command/exec.rb +45 -45
- data/lib/chef-dk/command/export.rb +151 -153
- data/lib/chef-dk/command/gem.rb +47 -47
- data/lib/chef-dk/command/generate.rb +120 -118
- data/lib/chef-dk/command/generator_commands.rb +80 -80
- data/lib/chef-dk/command/generator_commands/app.rb +107 -107
- data/lib/chef-dk/command/generator_commands/attribute.rb +37 -37
- data/lib/chef-dk/command/generator_commands/base.rb +121 -121
- data/lib/chef-dk/command/generator_commands/cookbook.rb +119 -108
- data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +100 -100
- data/lib/chef-dk/command/generator_commands/cookbook_file.rb +45 -45
- data/lib/chef-dk/command/generator_commands/generator_generator.rb +177 -0
- data/lib/chef-dk/command/generator_commands/lwrp.rb +36 -36
- data/lib/chef-dk/command/generator_commands/policyfile.rb +86 -83
- data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
- data/lib/chef-dk/command/generator_commands/repo.rb +96 -96
- data/lib/chef-dk/command/generator_commands/template.rb +46 -46
- data/lib/chef-dk/command/install.rb +121 -121
- data/lib/chef-dk/command/provision.rb +438 -438
- data/lib/chef-dk/command/push.rb +118 -118
- data/lib/chef-dk/command/push_archive.rb +126 -126
- data/lib/chef-dk/command/shell_init.rb +180 -180
- data/lib/chef-dk/command/show_policy.rb +165 -165
- data/lib/chef-dk/command/undelete.rb +155 -155
- data/lib/chef-dk/command/update.rb +129 -129
- data/lib/chef-dk/command/verify.rb +490 -453
- data/lib/chef-dk/commands_map.rb +115 -115
- 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 +171 -171
- data/lib/chef-dk/configurable.rb +57 -52
- data/lib/chef-dk/cookbook_metadata.rb +45 -45
- data/lib/chef-dk/cookbook_omnifetch.rb +32 -32
- data/lib/chef-dk/cookbook_profiler/git.rb +151 -151
- data/lib/chef-dk/cookbook_profiler/identifiers.rb +72 -72
- data/lib/chef-dk/cookbook_profiler/null_scm.rb +32 -32
- data/lib/chef-dk/exceptions.rb +113 -113
- data/lib/chef-dk/generator.rb +163 -162
- data/lib/chef-dk/helpers.rb +159 -159
- data/lib/chef-dk/pager.rb +106 -106
- data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +122 -122
- data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +54 -54
- data/lib/chef-dk/policyfile/community_cookbook_source.rb +82 -82
- data/lib/chef-dk/policyfile/comparison_base.rb +124 -124
- data/lib/chef-dk/policyfile/cookbook_location_specification.rb +133 -133
- data/lib/chef-dk/policyfile/cookbook_locks.rb +466 -466
- data/lib/chef-dk/policyfile/cookbook_sources.rb +21 -21
- data/lib/chef-dk/policyfile/differ.rb +266 -266
- data/lib/chef-dk/policyfile/dsl.rb +197 -197
- data/lib/chef-dk/policyfile/lister.rb +232 -232
- data/lib/chef-dk/policyfile/null_cookbook_source.rb +45 -45
- data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
- data/lib/chef-dk/policyfile/reports/install.rb +70 -70
- data/lib/chef-dk/policyfile/reports/table_printer.rb +58 -58
- data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
- data/lib/chef-dk/policyfile/solution_dependencies.rb +298 -298
- data/lib/chef-dk/policyfile/storage_config.rb +100 -100
- data/lib/chef-dk/policyfile/undo_record.rb +142 -142
- data/lib/chef-dk/policyfile/undo_stack.rb +130 -130
- data/lib/chef-dk/policyfile/uploader.rb +213 -213
- data/lib/chef-dk/policyfile_compiler.rb +322 -322
- data/lib/chef-dk/policyfile_lock.rb +552 -552
- data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
- data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +125 -125
- data/lib/chef-dk/policyfile_services/export_repo.rb +309 -281
- data/lib/chef-dk/policyfile_services/install.rb +125 -125
- data/lib/chef-dk/policyfile_services/push.rb +114 -114
- data/lib/chef-dk/policyfile_services/push_archive.rb +173 -173
- data/lib/chef-dk/policyfile_services/rm_policy.rb +142 -142
- data/lib/chef-dk/policyfile_services/rm_policy_group.rb +86 -86
- data/lib/chef-dk/policyfile_services/show_policy.rb +237 -237
- data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
- data/lib/chef-dk/policyfile_services/update_attributes.rb +104 -104
- data/lib/chef-dk/service_exception_inspectors.rb +25 -25
- data/lib/chef-dk/service_exception_inspectors/base.rb +40 -40
- data/lib/chef-dk/service_exception_inspectors/http.rb +121 -121
- data/lib/chef-dk/service_exceptions.rb +143 -143
- data/lib/chef-dk/shell_out.rb +36 -36
- data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +100 -100
- data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +9 -9
- data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +54 -54
- data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +16 -16
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +28 -28
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +27 -0
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +7 -7
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +3 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +57 -57
- 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/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/roles/README.md +8 -8
- data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json +12 -12
- data/lib/chef-dk/skeletons/code_generator/files/default/serverspec_spec_helper.rb +8 -3
- data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +2 -2
- data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +97 -97
- data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +12 -12
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +104 -92
- data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +24 -24
- data/lib/chef-dk/skeletons/code_generator/recipes/lwrp.rb +23 -23
- data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +8 -8
- data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +27 -27
- data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +48 -47
- data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +32 -32
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +3 -3
- data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.apache2.erb +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 +20 -16
- data/lib/chef-dk/skeletons/code_generator/templates/default/README.md.erb +4 -4
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +16 -16
- data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +27 -0
- data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +7 -7
- data/lib/chef-dk/skeletons/code_generator/templates/default/recipe.rb.erb +5 -5
- data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +20 -20
- data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +11 -11
- data/lib/chef-dk/skeletons/code_generator/templates/default/serverspec_default_spec.rb.erb +9 -9
- data/lib/chef-dk/ui.rb +58 -58
- data/lib/chef-dk/version.rb +20 -20
- data/lib/kitchen/provisioner/policyfile_zero.rb +193 -164
- 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 +117 -117
- data/spec/shared/fixture_cookbook_checksums.rb +47 -47
- data/spec/shared/setup_git_cookbooks.rb +53 -53
- data/spec/spec_helper.rb +49 -48
- data/spec/test_helpers.rb +84 -84
- data/spec/unit/chef_runner_spec.rb +111 -110
- data/spec/unit/cli_spec.rb +357 -357
- data/spec/unit/command/base_spec.rb +169 -136
- data/spec/unit/command/clean_policy_cookbooks_spec.rb +181 -181
- data/spec/unit/command/clean_policy_revisions_spec.rb +181 -181
- data/spec/unit/command/delete_policy_group_spec.rb +207 -207
- data/spec/unit/command/delete_policy_spec.rb +207 -207
- data/spec/unit/command/diff_spec.rb +312 -312
- data/spec/unit/command/env_spec.rb +52 -52
- data/spec/unit/command/exec_spec.rb +179 -179
- data/spec/unit/command/export_spec.rb +189 -189
- data/spec/unit/command/generate_spec.rb +142 -142
- data/spec/unit/command/generator_commands/app_spec.rb +169 -169
- data/spec/unit/command/generator_commands/attribute_spec.rb +32 -32
- data/spec/unit/command/generator_commands/cookbook_file_spec.rb +32 -32
- data/spec/unit/command/generator_commands/cookbook_spec.rb +320 -240
- data/spec/unit/command/generator_commands/generator_generator_spec.rb +229 -0
- data/spec/unit/command/generator_commands/lwrp_spec.rb +32 -32
- data/spec/unit/command/generator_commands/policyfile_spec.rb +125 -125
- data/spec/unit/command/generator_commands/recipe_spec.rb +34 -34
- data/spec/unit/command/generator_commands/repo_spec.rb +283 -283
- data/spec/unit/command/generator_commands/template_spec.rb +32 -32
- data/spec/unit/command/install_spec.rb +179 -179
- data/spec/unit/command/provision_spec.rb +592 -592
- data/spec/unit/command/push_archive_spec.rb +153 -153
- data/spec/unit/command/push_spec.rb +199 -199
- data/spec/unit/command/shell_init_spec.rb +329 -329
- data/spec/unit/command/show_policy_spec.rb +235 -235
- data/spec/unit/command/undelete_spec.rb +246 -246
- data/spec/unit/command/update_spec.rb +251 -251
- data/spec/unit/command/verify_spec.rb +323 -322
- data/spec/unit/commands_map_spec.rb +57 -57
- data/spec/unit/component_test_spec.rb +126 -126
- data/spec/unit/cookbook_metadata_spec.rb +98 -98
- data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
- data/spec/unit/cookbook_profiler/identifiers_spec.rb +83 -83
- data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_one.rb +9 -9
- data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_two.rb +9 -9
- data/spec/unit/fixtures/command/cli_test_command.rb +26 -26
- data/spec/unit/fixtures/command/explicit_path_example.rb +7 -7
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/.kitchen.yml +16 -16
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/Berksfile +3 -3
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/README.md +4 -4
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore +96 -96
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb +8 -8
- data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb +8 -8
- data/spec/unit/fixtures/cookbooks_api/pruned_small_universe.json +1321 -1321
- data/spec/unit/fixtures/cookbooks_api/small_universe.json +2987 -2987
- data/spec/unit/fixtures/cookbooks_api/universe.json +1 -1
- data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +36 -36
- data/spec/unit/fixtures/dev_cookbooks/README.md +16 -16
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/integration_test +2 -2
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/verify_me +5 -5
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/chef/verify_me +3 -3
- data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/test-kitchen/verify_me +2 -2
- data/spec/unit/fixtures/example_cookbook/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/example_cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/metadata.json +5 -5
- data/spec/unit/fixtures/example_cookbook_metadata_json_only/recipes/default.rb +8 -8
- data/spec/unit/fixtures/example_cookbook_no_metadata/.gitignore +17 -17
- data/spec/unit/fixtures/example_cookbook_no_metadata/.kitchen.yml +16 -16
- data/spec/unit/fixtures/example_cookbook_no_metadata/Berksfile +3 -3
- data/spec/unit/fixtures/example_cookbook_no_metadata/README.md +4 -4
- data/spec/unit/fixtures/example_cookbook_no_metadata/chefignore +96 -96
- data/spec/unit/fixtures/example_cookbook_no_metadata/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/Berksfile +3 -3
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/metadata.rb +9 -9
- data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/.kitchen.yml +16 -16
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/Berksfile +3 -3
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/chefignore +96 -96
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/recipes/default.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/metadata-missing/README.md +2 -2
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
- data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
- data/spec/unit/generator_spec.rb +120 -120
- data/spec/unit/helpers_spec.rb +92 -92
- data/spec/unit/pager_spec.rb +119 -119
- data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +66 -66
- data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +34 -34
- data/spec/unit/policyfile/community_cookbook_source_spec.rb +51 -51
- data/spec/unit/policyfile/comparison_base_spec.rb +343 -343
- data/spec/unit/policyfile/cookbook_location_specification_spec.rb +252 -252
- data/spec/unit/policyfile/cookbook_locks_spec.rb +529 -529
- data/spec/unit/policyfile/differ_spec.rb +687 -687
- data/spec/unit/policyfile/lister_spec.rb +272 -272
- data/spec/unit/policyfile/null_cookbook_source_spec.rb +35 -35
- data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
- data/spec/unit/policyfile/reports/install_spec.rb +115 -115
- data/spec/unit/policyfile/reports/upload_spec.rb +96 -96
- data/spec/unit/policyfile/solution_dependencies_spec.rb +145 -145
- data/spec/unit/policyfile/storage_config_spec.rb +172 -172
- data/spec/unit/policyfile/undo_record_spec.rb +260 -260
- data/spec/unit/policyfile/undo_stack_spec.rb +266 -266
- data/spec/unit/policyfile/uploader_spec.rb +410 -410
- data/spec/unit/policyfile_demands_spec.rb +876 -876
- data/spec/unit/policyfile_evaluation_spec.rb +441 -441
- data/spec/unit/policyfile_lock_build_spec.rb +1056 -1056
- data/spec/unit/policyfile_lock_install_spec.rb +138 -138
- data/spec/unit/policyfile_lock_serialization_spec.rb +425 -425
- data/spec/unit/policyfile_lock_validation_spec.rb +611 -611
- data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
- data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +275 -275
- data/spec/unit/policyfile_services/export_repo_spec.rb +439 -416
- data/spec/unit/policyfile_services/install_spec.rb +191 -191
- data/spec/unit/policyfile_services/push_archive_spec.rb +345 -345
- data/spec/unit/policyfile_services/push_spec.rb +233 -233
- data/spec/unit/policyfile_services/rm_policy_group_spec.rb +241 -241
- data/spec/unit/policyfile_services/rm_policy_spec.rb +266 -266
- data/spec/unit/policyfile_services/show_policy_spec.rb +889 -889
- data/spec/unit/policyfile_services/undelete_spec.rb +304 -304
- data/spec/unit/policyfile_services/update_attributes_spec.rb +217 -217
- data/spec/unit/service_exception_inspectors/base_spec.rb +43 -43
- data/spec/unit/service_exception_inspectors/http_spec.rb +140 -140
- data/spec/unit/shell_out_spec.rb +34 -34
- metadata +9 -3
|
@@ -1,34 +1,34 @@
|
|
|
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/recipe'
|
|
21
|
-
|
|
22
|
-
describe ChefDK::Command::GeneratorCommands::Recipe do
|
|
23
|
-
|
|
24
|
-
include_examples "a file generator" do
|
|
25
|
-
|
|
26
|
-
let(:generator_name) { "recipe" }
|
|
27
|
-
let(:generated_files) { [ "recipes/new_recipe.rb",
|
|
28
|
-
"spec/spec_helper.rb",
|
|
29
|
-
"spec/unit/recipes/new_recipe_spec.rb" ] }
|
|
30
|
-
let(:new_file_name) { "new_recipe" }
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
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/recipe'
|
|
21
|
+
|
|
22
|
+
describe ChefDK::Command::GeneratorCommands::Recipe do
|
|
23
|
+
|
|
24
|
+
include_examples "a file generator" do
|
|
25
|
+
|
|
26
|
+
let(:generator_name) { "recipe" }
|
|
27
|
+
let(:generated_files) { [ "recipes/new_recipe.rb",
|
|
28
|
+
"spec/spec_helper.rb",
|
|
29
|
+
"spec/unit/recipes/new_recipe_spec.rb" ] }
|
|
30
|
+
let(:new_file_name) { "new_recipe" }
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -1,283 +1,283 @@
|
|
|
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_generated_file'
|
|
20
|
-
require 'chef-dk/command/generator_commands/repo'
|
|
21
|
-
|
|
22
|
-
describe ChefDK::Command::GeneratorCommands::Repo do
|
|
23
|
-
|
|
24
|
-
let(:argv) { %w[new_repo] }
|
|
25
|
-
|
|
26
|
-
let(:stdout_io) { StringIO.new }
|
|
27
|
-
let(:stderr_io) { StringIO.new }
|
|
28
|
-
|
|
29
|
-
let(:expected_cookbook_file_relpaths) do
|
|
30
|
-
%w[
|
|
31
|
-
LICENSE
|
|
32
|
-
]
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
let(:file) { "" }
|
|
36
|
-
let(:file_path) { File.join(repo_path, file) }
|
|
37
|
-
let(:file_contents) { File.read(file_path) }
|
|
38
|
-
let(:repo_path) { File.join(tempdir, "new_repo") }
|
|
39
|
-
|
|
40
|
-
let(:expected_cookbook_files) do
|
|
41
|
-
expected_cookbook_file_relpaths.map do |relpath|
|
|
42
|
-
File.join(tempdir, "new_repo", relpath)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
subject(:generator) { described_class.new(argv) }
|
|
47
|
-
|
|
48
|
-
def generator_context
|
|
49
|
-
ChefDK::Generator.context
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
before do
|
|
53
|
-
ChefDK::Generator.reset
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
context "when given the name of the repo to generate" do
|
|
57
|
-
|
|
58
|
-
before do
|
|
59
|
-
reset_tempdir
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it "configures the generator context" do
|
|
63
|
-
generator.read_and_validate_params
|
|
64
|
-
generator.setup_context
|
|
65
|
-
expect(generator_context.repo_root).to eq(Dir.pwd)
|
|
66
|
-
expect(generator_context.repo_name).to eq("new_repo")
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "creates a new repo" do
|
|
70
|
-
Dir.chdir(tempdir) do
|
|
71
|
-
allow(generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
72
|
-
generator.run
|
|
73
|
-
end
|
|
74
|
-
generated_files = Dir.glob(File.join(tempdir, "new_repo", "**", "*"), File::FNM_DOTMATCH)
|
|
75
|
-
expected_cookbook_files.each do |expected_file|
|
|
76
|
-
expect(generated_files).to include(expected_file)
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
describe "generated files" do
|
|
81
|
-
before do
|
|
82
|
-
Dir.chdir(tempdir) do
|
|
83
|
-
allow(generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
84
|
-
generator.run
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
describe "LICENSE" do
|
|
89
|
-
let(:file) { "LICENSE" }
|
|
90
|
-
|
|
91
|
-
context "all_rights" do
|
|
92
|
-
it "is the default" do
|
|
93
|
-
expect(file_contents).to match(/Copyright \d\d\d\d/)
|
|
94
|
-
expect(file_contents).to match(/All rights reserved, do not redistribute/)
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
context "with copyright_holder" do
|
|
98
|
-
let(:argv) { ["new_repo", "-C", "Adam Jacob"] }
|
|
99
|
-
it "includes the name" do
|
|
100
|
-
expect(file_contents).to match(/Copyright \d\d\d\d Adam Jacob/)
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
context "apache2" do
|
|
106
|
-
let(:argv) { ["new_repo", "-I", "apache2" ] }
|
|
107
|
-
|
|
108
|
-
it "is the apache license" do
|
|
109
|
-
expect(file_contents).to match(/Apache License/)
|
|
110
|
-
expect(file_contents).to match(/Version 2.0/)
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
context "mit" do
|
|
115
|
-
let(:argv) { ["new_repo", "-I", "mit" ] }
|
|
116
|
-
|
|
117
|
-
it "is the mit license" do
|
|
118
|
-
expect(file_contents).to match(/The MIT License \(MIT\)/)
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
context "with copyright_holder" do
|
|
122
|
-
let(:argv) { ["new_repo", "-I", "mit", "-C", "Adam Jacob"] }
|
|
123
|
-
it "includes the name" do
|
|
124
|
-
expect(file_contents).to match(/Copyright \(c\) \d\d\d\d Adam Jacob/)
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
context "gplv2" do
|
|
130
|
-
let(:argv) { ["new_repo", "-I", "gplv2" ] }
|
|
131
|
-
|
|
132
|
-
it "is the GPL version 2 license" do
|
|
133
|
-
expect(file_contents).to match(/GNU GENERAL PUBLIC LICENSE/)
|
|
134
|
-
expect(file_contents).to match(/Version 2, June 1991/)
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
context "gplv3" do
|
|
139
|
-
let(:argv) { ["new_repo", "-I", "gplv3" ] }
|
|
140
|
-
|
|
141
|
-
it "is the GPL version 2 license" do
|
|
142
|
-
expect(file_contents).to match(/GNU GENERAL PUBLIC LICENSE/)
|
|
143
|
-
expect(file_contents).to match(/Version 3, 29 June 2007/)
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
describe "README.md" do
|
|
149
|
-
let(:file) { "README.md" }
|
|
150
|
-
|
|
151
|
-
it "is the standard readme" do
|
|
152
|
-
expect(file_contents).to match(/Every Chef installation needs a Chef Repository/)
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
describe "chefignore" do
|
|
157
|
-
let(:file) { "chefignore" }
|
|
158
|
-
|
|
159
|
-
it "has the preamble" do
|
|
160
|
-
expect(file_contents).to match(/Put files\/directories that should be ignored in this file when uploading/)
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
describe ".gitignore" do
|
|
165
|
-
let(:file) { ".gitignore" }
|
|
166
|
-
|
|
167
|
-
it "has the right contents" do
|
|
168
|
-
expect(file_contents).to match(/\.rake_test_cache/)
|
|
169
|
-
expect(file_contents).to match(/\.chef\/\*\.pem/)
|
|
170
|
-
expect(file_contents).to match(/\.chef\/encrypted_data_bag_secret/)
|
|
171
|
-
expect(file_contents).to_not match(/cookbooks\/\*\*/)
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
context "with --policy-only" do
|
|
175
|
-
let(:argv) { ["new_repo", "--policy-only" ] }
|
|
176
|
-
|
|
177
|
-
it "blocks cookbooks" do
|
|
178
|
-
expect(file_contents).to match(/cookbooks\/\*\*/)
|
|
179
|
-
expect(file_contents).to match(/cookbooks\/README\.md/)
|
|
180
|
-
end
|
|
181
|
-
end
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
describe "cookbooks" do
|
|
185
|
-
describe "README.md" do
|
|
186
|
-
let(:file) { "cookbooks/README.md" }
|
|
187
|
-
|
|
188
|
-
it "has the right contents" do
|
|
189
|
-
expect(file_contents).to match(/This directory contains the cookbooks/)
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
context "with --policy-only" do
|
|
193
|
-
let(:argv) { ["new_repo", "--policy-only" ] }
|
|
194
|
-
|
|
195
|
-
it "tells you whats up" do
|
|
196
|
-
expect(file_contents).to match(/This directory typically contains Chef cookbooks/)
|
|
197
|
-
end
|
|
198
|
-
end
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
describe "example/metadata.rb" do
|
|
202
|
-
let(:file) { "cookbooks/example/metadata.rb" }
|
|
203
|
-
|
|
204
|
-
it "has the right contents" do
|
|
205
|
-
expect(file_contents).to match(/name 'example'/)
|
|
206
|
-
end
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
describe "example/attributes/default.rb" do
|
|
210
|
-
let(:file) { "cookbooks/example/attributes/default.rb" }
|
|
211
|
-
|
|
212
|
-
it "has the right contents" do
|
|
213
|
-
expect(file_contents).to match(/default\["example"\]\["name"\] = "Sam Doe"/)
|
|
214
|
-
end
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
describe "example/recipes/default.rb" do
|
|
218
|
-
let(:file) { "cookbooks/example/recipes/default.rb" }
|
|
219
|
-
|
|
220
|
-
it "has the right contents" do
|
|
221
|
-
expect(file_contents).to match(/log "Welcome to Chef, \#\{node\["example"\]\["name"\]\}!" do/)
|
|
222
|
-
end
|
|
223
|
-
end
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
describe "data_bags" do
|
|
227
|
-
describe "README.md" do
|
|
228
|
-
let(:file) { "data_bags/README.md" }
|
|
229
|
-
|
|
230
|
-
it "has the right contents" do
|
|
231
|
-
expect(file_contents).to match(/This directory contains directories of the various data bags/)
|
|
232
|
-
end
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
describe "example_item.json" do
|
|
236
|
-
let(:file) { "data_bags/example/example_item.json" }
|
|
237
|
-
|
|
238
|
-
it "has the right contents" do
|
|
239
|
-
expect(file_contents).to match(/"id": "example_item"/)
|
|
240
|
-
end
|
|
241
|
-
end
|
|
242
|
-
end
|
|
243
|
-
|
|
244
|
-
describe "environments" do
|
|
245
|
-
describe "README.md" do
|
|
246
|
-
let(:file) { "environments/README.md" }
|
|
247
|
-
|
|
248
|
-
it "has the right contents" do
|
|
249
|
-
expect(file_contents).to match(/Create environments here, in either the Role Ruby DSL \(\.rb\) or JSON \(\.json\) files\./)
|
|
250
|
-
end
|
|
251
|
-
end
|
|
252
|
-
|
|
253
|
-
describe "example.json" do
|
|
254
|
-
let(:file) { "environments/example.json" }
|
|
255
|
-
|
|
256
|
-
it "has the right contents" do
|
|
257
|
-
expect(file_contents).to match(/"description": "This is an example environment defined as JSON"/)
|
|
258
|
-
end
|
|
259
|
-
end
|
|
260
|
-
end
|
|
261
|
-
|
|
262
|
-
describe "roles" do
|
|
263
|
-
describe "README.md" do
|
|
264
|
-
let(:file) { "roles/README.md" }
|
|
265
|
-
|
|
266
|
-
it "has the right contents" do
|
|
267
|
-
expect(file_contents).to match(/Create roles here, in either the Role Ruby DSL \(\.rb\) or JSON \(\.json\) files\./)
|
|
268
|
-
end
|
|
269
|
-
end
|
|
270
|
-
|
|
271
|
-
describe "example.json" do
|
|
272
|
-
let(:file) { "roles/example.json" }
|
|
273
|
-
|
|
274
|
-
it "has the right contents" do
|
|
275
|
-
expect(file_contents).to match(/"description": "This is an example role defined as JSON"/)
|
|
276
|
-
end
|
|
277
|
-
end
|
|
278
|
-
end
|
|
279
|
-
end
|
|
280
|
-
end
|
|
281
|
-
end
|
|
282
|
-
|
|
283
|
-
|
|
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_generated_file'
|
|
20
|
+
require 'chef-dk/command/generator_commands/repo'
|
|
21
|
+
|
|
22
|
+
describe ChefDK::Command::GeneratorCommands::Repo do
|
|
23
|
+
|
|
24
|
+
let(:argv) { %w[new_repo] }
|
|
25
|
+
|
|
26
|
+
let(:stdout_io) { StringIO.new }
|
|
27
|
+
let(:stderr_io) { StringIO.new }
|
|
28
|
+
|
|
29
|
+
let(:expected_cookbook_file_relpaths) do
|
|
30
|
+
%w[
|
|
31
|
+
LICENSE
|
|
32
|
+
]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
let(:file) { "" }
|
|
36
|
+
let(:file_path) { File.join(repo_path, file) }
|
|
37
|
+
let(:file_contents) { File.read(file_path) }
|
|
38
|
+
let(:repo_path) { File.join(tempdir, "new_repo") }
|
|
39
|
+
|
|
40
|
+
let(:expected_cookbook_files) do
|
|
41
|
+
expected_cookbook_file_relpaths.map do |relpath|
|
|
42
|
+
File.join(tempdir, "new_repo", relpath)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
subject(:generator) { described_class.new(argv) }
|
|
47
|
+
|
|
48
|
+
def generator_context
|
|
49
|
+
ChefDK::Generator.context
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
before do
|
|
53
|
+
ChefDK::Generator.reset
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
context "when given the name of the repo to generate" do
|
|
57
|
+
|
|
58
|
+
before do
|
|
59
|
+
reset_tempdir
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "configures the generator context" do
|
|
63
|
+
generator.read_and_validate_params
|
|
64
|
+
generator.setup_context
|
|
65
|
+
expect(generator_context.repo_root).to eq(Dir.pwd)
|
|
66
|
+
expect(generator_context.repo_name).to eq("new_repo")
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "creates a new repo" do
|
|
70
|
+
Dir.chdir(tempdir) do
|
|
71
|
+
allow(generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
72
|
+
generator.run
|
|
73
|
+
end
|
|
74
|
+
generated_files = Dir.glob(File.join(tempdir, "new_repo", "**", "*"), File::FNM_DOTMATCH)
|
|
75
|
+
expected_cookbook_files.each do |expected_file|
|
|
76
|
+
expect(generated_files).to include(expected_file)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
describe "generated files" do
|
|
81
|
+
before do
|
|
82
|
+
Dir.chdir(tempdir) do
|
|
83
|
+
allow(generator.chef_runner).to receive(:stdout).and_return(stdout_io)
|
|
84
|
+
generator.run
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
describe "LICENSE" do
|
|
89
|
+
let(:file) { "LICENSE" }
|
|
90
|
+
|
|
91
|
+
context "all_rights" do
|
|
92
|
+
it "is the default" do
|
|
93
|
+
expect(file_contents).to match(/Copyright \d\d\d\d/)
|
|
94
|
+
expect(file_contents).to match(/All rights reserved, do not redistribute/)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
context "with copyright_holder" do
|
|
98
|
+
let(:argv) { ["new_repo", "-C", "Adam Jacob"] }
|
|
99
|
+
it "includes the name" do
|
|
100
|
+
expect(file_contents).to match(/Copyright \d\d\d\d Adam Jacob/)
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
context "apache2" do
|
|
106
|
+
let(:argv) { ["new_repo", "-I", "apache2" ] }
|
|
107
|
+
|
|
108
|
+
it "is the apache license" do
|
|
109
|
+
expect(file_contents).to match(/Apache License/)
|
|
110
|
+
expect(file_contents).to match(/Version 2.0/)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
context "mit" do
|
|
115
|
+
let(:argv) { ["new_repo", "-I", "mit" ] }
|
|
116
|
+
|
|
117
|
+
it "is the mit license" do
|
|
118
|
+
expect(file_contents).to match(/The MIT License \(MIT\)/)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
context "with copyright_holder" do
|
|
122
|
+
let(:argv) { ["new_repo", "-I", "mit", "-C", "Adam Jacob"] }
|
|
123
|
+
it "includes the name" do
|
|
124
|
+
expect(file_contents).to match(/Copyright \(c\) \d\d\d\d Adam Jacob/)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
context "gplv2" do
|
|
130
|
+
let(:argv) { ["new_repo", "-I", "gplv2" ] }
|
|
131
|
+
|
|
132
|
+
it "is the GPL version 2 license" do
|
|
133
|
+
expect(file_contents).to match(/GNU GENERAL PUBLIC LICENSE/)
|
|
134
|
+
expect(file_contents).to match(/Version 2, June 1991/)
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
context "gplv3" do
|
|
139
|
+
let(:argv) { ["new_repo", "-I", "gplv3" ] }
|
|
140
|
+
|
|
141
|
+
it "is the GPL version 2 license" do
|
|
142
|
+
expect(file_contents).to match(/GNU GENERAL PUBLIC LICENSE/)
|
|
143
|
+
expect(file_contents).to match(/Version 3, 29 June 2007/)
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
describe "README.md" do
|
|
149
|
+
let(:file) { "README.md" }
|
|
150
|
+
|
|
151
|
+
it "is the standard readme" do
|
|
152
|
+
expect(file_contents).to match(/Every Chef installation needs a Chef Repository/)
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
describe "chefignore" do
|
|
157
|
+
let(:file) { "chefignore" }
|
|
158
|
+
|
|
159
|
+
it "has the preamble" do
|
|
160
|
+
expect(file_contents).to match(/Put files\/directories that should be ignored in this file when uploading/)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
describe ".gitignore" do
|
|
165
|
+
let(:file) { ".gitignore" }
|
|
166
|
+
|
|
167
|
+
it "has the right contents" do
|
|
168
|
+
expect(file_contents).to match(/\.rake_test_cache/)
|
|
169
|
+
expect(file_contents).to match(/\.chef\/\*\.pem/)
|
|
170
|
+
expect(file_contents).to match(/\.chef\/encrypted_data_bag_secret/)
|
|
171
|
+
expect(file_contents).to_not match(/cookbooks\/\*\*/)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
context "with --policy-only" do
|
|
175
|
+
let(:argv) { ["new_repo", "--policy-only" ] }
|
|
176
|
+
|
|
177
|
+
it "blocks cookbooks" do
|
|
178
|
+
expect(file_contents).to match(/cookbooks\/\*\*/)
|
|
179
|
+
expect(file_contents).to match(/cookbooks\/README\.md/)
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
describe "cookbooks" do
|
|
185
|
+
describe "README.md" do
|
|
186
|
+
let(:file) { "cookbooks/README.md" }
|
|
187
|
+
|
|
188
|
+
it "has the right contents" do
|
|
189
|
+
expect(file_contents).to match(/This directory contains the cookbooks/)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
context "with --policy-only" do
|
|
193
|
+
let(:argv) { ["new_repo", "--policy-only" ] }
|
|
194
|
+
|
|
195
|
+
it "tells you whats up" do
|
|
196
|
+
expect(file_contents).to match(/This directory typically contains Chef cookbooks/)
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
describe "example/metadata.rb" do
|
|
202
|
+
let(:file) { "cookbooks/example/metadata.rb" }
|
|
203
|
+
|
|
204
|
+
it "has the right contents" do
|
|
205
|
+
expect(file_contents).to match(/name 'example'/)
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
describe "example/attributes/default.rb" do
|
|
210
|
+
let(:file) { "cookbooks/example/attributes/default.rb" }
|
|
211
|
+
|
|
212
|
+
it "has the right contents" do
|
|
213
|
+
expect(file_contents).to match(/default\["example"\]\["name"\] = "Sam Doe"/)
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
describe "example/recipes/default.rb" do
|
|
218
|
+
let(:file) { "cookbooks/example/recipes/default.rb" }
|
|
219
|
+
|
|
220
|
+
it "has the right contents" do
|
|
221
|
+
expect(file_contents).to match(/log "Welcome to Chef, \#\{node\["example"\]\["name"\]\}!" do/)
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
describe "data_bags" do
|
|
227
|
+
describe "README.md" do
|
|
228
|
+
let(:file) { "data_bags/README.md" }
|
|
229
|
+
|
|
230
|
+
it "has the right contents" do
|
|
231
|
+
expect(file_contents).to match(/This directory contains directories of the various data bags/)
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
describe "example_item.json" do
|
|
236
|
+
let(:file) { "data_bags/example/example_item.json" }
|
|
237
|
+
|
|
238
|
+
it "has the right contents" do
|
|
239
|
+
expect(file_contents).to match(/"id": "example_item"/)
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
describe "environments" do
|
|
245
|
+
describe "README.md" do
|
|
246
|
+
let(:file) { "environments/README.md" }
|
|
247
|
+
|
|
248
|
+
it "has the right contents" do
|
|
249
|
+
expect(file_contents).to match(/Create environments here, in either the Role Ruby DSL \(\.rb\) or JSON \(\.json\) files\./)
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
describe "example.json" do
|
|
254
|
+
let(:file) { "environments/example.json" }
|
|
255
|
+
|
|
256
|
+
it "has the right contents" do
|
|
257
|
+
expect(file_contents).to match(/"description": "This is an example environment defined as JSON"/)
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
describe "roles" do
|
|
263
|
+
describe "README.md" do
|
|
264
|
+
let(:file) { "roles/README.md" }
|
|
265
|
+
|
|
266
|
+
it "has the right contents" do
|
|
267
|
+
expect(file_contents).to match(/Create roles here, in either the Role Ruby DSL \(\.rb\) or JSON \(\.json\) files\./)
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
describe "example.json" do
|
|
272
|
+
let(:file) { "roles/example.json" }
|
|
273
|
+
|
|
274
|
+
it "has the right contents" do
|
|
275
|
+
expect(file_contents).to match(/"description": "This is an example role defined as JSON"/)
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
|