chef 14.13.11-universal-mingw32 → 14.14.14-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +72 -72
- data/LICENSE +201 -201
- data/README.md +240 -240
- data/Rakefile +72 -72
- data/bin/chef-apply +24 -24
- data/bin/chef-client +25 -25
- data/bin/chef-resource-inspector +26 -26
- data/bin/chef-service-manager +37 -37
- data/bin/chef-shell +31 -31
- data/bin/chef-solo +24 -24
- data/bin/chef-windows-service +34 -34
- data/bin/knife +24 -24
- data/chef-universal-mingw32.gemspec +24 -24
- data/chef.gemspec +62 -62
- data/distro/powershell/chef/chef.psm1 +459 -459
- data/ext/win32-eventlog/Rakefile +53 -53
- data/ext/win32-eventlog/chef-log.man +56 -56
- data/lib/.DS_Store +0 -0
- data/lib/chef.rb +34 -34
- data/lib/chef/.DS_Store +0 -0
- data/lib/chef/api_client.rb +228 -228
- data/lib/chef/api_client/registration.rb +200 -200
- data/lib/chef/api_client_v1.rb +326 -326
- data/lib/chef/application.rb +398 -398
- data/lib/chef/application/apply.rb +226 -226
- data/lib/chef/application/client.rb +559 -559
- data/lib/chef/application/exit_code.rb +164 -164
- data/lib/chef/application/knife.rb +221 -221
- data/lib/chef/application/solo.rb +381 -381
- data/lib/chef/application/windows_service.rb +337 -337
- data/lib/chef/application/windows_service_manager.rb +204 -204
- data/lib/chef/applications.rb +4 -4
- data/lib/chef/audit/audit_event_proxy.rb +93 -93
- data/lib/chef/audit/audit_reporter.rb +176 -176
- data/lib/chef/audit/control_group_data.rb +145 -145
- data/lib/chef/audit/logger.rb +36 -36
- data/lib/chef/audit/rspec_formatter.rb +37 -37
- data/lib/chef/audit/runner.rb +196 -196
- data/lib/chef/blacklist.rb +81 -81
- data/lib/chef/chef_class.rb +248 -248
- data/lib/chef/chef_fs.rb +59 -59
- data/lib/chef/chef_fs/chef_fs_data_store.rb +870 -870
- data/lib/chef/chef_fs/command_line.rb +291 -291
- data/lib/chef/chef_fs/config.rb +284 -284
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -26
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +39 -39
- data/lib/chef/chef_fs/data_handler/client_key_data_handler.rb +11 -11
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +35 -35
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -38
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +67 -67
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +207 -207
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -40
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +55 -55
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -36
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +36 -36
- data/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb +17 -17
- data/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb +17 -17
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +48 -48
- data/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb +33 -33
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -40
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +29 -29
- data/lib/chef/chef_fs/file_pattern.rb +301 -301
- data/lib/chef/chef_fs/file_system.rb +431 -431
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -47
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +187 -187
- data/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb +65 -65
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +67 -67
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +75 -75
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +196 -196
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb +38 -38
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +106 -106
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +208 -208
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +78 -78
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb +61 -61
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +105 -105
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +76 -76
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb +19 -19
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +67 -67
- data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +56 -56
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +51 -51
- data/lib/chef/chef_fs/file_system/chef_server/org_entry.rb +35 -35
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +65 -65
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +64 -64
- data/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb +41 -41
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +158 -158
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +135 -135
- data/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb +43 -43
- data/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb +38 -38
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +176 -176
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +207 -207
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb +45 -45
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +111 -111
- data/lib/chef/chef_fs/file_system/exceptions.rb +105 -105
- data/lib/chef/chef_fs/file_system/memory/memory_dir.rb +53 -53
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +20 -20
- data/lib/chef/chef_fs/file_system/memory/memory_root.rb +23 -23
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +62 -62
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +32 -32
- data/lib/chef/chef_fs/file_system/repository/acl.rb +45 -45
- data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +50 -50
- data/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +155 -155
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb +41 -41
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +143 -143
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +177 -177
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +232 -232
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/repository/client.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/client_key.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/client_keys_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/clients_dir.rb +37 -37
- data/lib/chef/chef_fs/file_system/repository/container.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/containers_dir.rb +37 -37
- data/lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb +36 -36
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +51 -51
- data/lib/chef/chef_fs/file_system/repository/data_bag.rb +39 -39
- data/lib/chef/chef_fs/file_system/repository/data_bag_item.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb +39 -39
- data/lib/chef/chef_fs/file_system/repository/directory.rb +167 -167
- data/lib/chef/chef_fs/file_system/repository/environment.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/environments_dir.rb +37 -37
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +151 -151
- data/lib/chef/chef_fs/file_system/repository/group.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/groups_dir.rb +37 -37
- data/lib/chef/chef_fs/file_system/repository/node.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +59 -59
- data/lib/chef/chef_fs/file_system/repository/policies_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/repository/policy.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/policy_group.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb +37 -37
- data/lib/chef/chef_fs/file_system/repository/role.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/roles_dir.rb +37 -37
- data/lib/chef/chef_fs/file_system/repository/user.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/users_dir.rb +37 -37
- data/lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb +34 -34
- data/lib/chef/chef_fs/file_system_cache.rb +80 -80
- data/lib/chef/chef_fs/knife.rb +161 -161
- data/lib/chef/chef_fs/parallelizer.rb +103 -103
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +35 -35
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +277 -277
- data/lib/chef/chef_fs/path_utils.rb +127 -127
- data/lib/chef/client.rb +1037 -1037
- data/lib/chef/config.rb +84 -84
- data/lib/chef/config_fetcher.rb +72 -72
- data/lib/chef/constants.rb +28 -28
- data/lib/chef/cookbook/chefignore.rb +78 -78
- data/lib/chef/cookbook/cookbook_collection.rb +63 -63
- data/lib/chef/cookbook/cookbook_version_loader.rb +267 -267
- data/lib/chef/cookbook/file_system_file_vendor.rb +58 -58
- data/lib/chef/cookbook/file_vendor.rb +71 -71
- data/lib/chef/cookbook/gem_installer.rb +100 -95
- data/lib/chef/cookbook/manifest_v0.rb +73 -73
- data/lib/chef/cookbook/manifest_v2.rb +45 -45
- data/lib/chef/cookbook/metadata.rb +804 -804
- data/lib/chef/cookbook/remote_file_vendor.rb +87 -87
- data/lib/chef/cookbook/synchronizer.rb +312 -312
- data/lib/chef/cookbook/syntax_check.rb +260 -260
- data/lib/chef/cookbook_loader.rb +208 -208
- data/lib/chef/cookbook_manifest.rb +328 -328
- data/lib/chef/cookbook_site_streaming_uploader.rb +241 -241
- data/lib/chef/cookbook_uploader.rb +156 -156
- data/lib/chef/cookbook_version.rb +544 -544
- data/lib/chef/daemon.rb +131 -131
- data/lib/chef/data_bag.rb +174 -174
- data/lib/chef/data_bag_item.rb +209 -209
- data/lib/chef/data_collector.rb +565 -565
- data/lib/chef/data_collector/messages.rb +100 -100
- data/lib/chef/data_collector/messages/helpers.rb +159 -159
- data/lib/chef/data_collector/resource_report.rb +123 -123
- data/lib/chef/decorator.rb +81 -81
- data/lib/chef/decorator/lazy.rb +60 -60
- data/lib/chef/decorator/lazy_array.rb +59 -59
- data/lib/chef/decorator/unchain.rb +43 -43
- data/lib/chef/delayed_evaluator.rb +21 -21
- data/lib/chef/deprecated.rb +248 -248
- data/lib/chef/deprecation/warnings.rb +38 -38
- data/lib/chef/digester.rb +74 -74
- data/lib/chef/dsl.rb +6 -6
- data/lib/chef/dsl/.DS_Store +0 -0
- data/lib/chef/dsl/audit.rb +51 -51
- data/lib/chef/dsl/chef_provisioning.rb +57 -57
- data/lib/chef/dsl/cheffish.rb +65 -65
- data/lib/chef/dsl/core.rb +52 -52
- data/lib/chef/dsl/data_query.rb +103 -103
- data/lib/chef/dsl/declare_resource.rb +319 -319
- data/lib/chef/dsl/definitions.rb +43 -43
- data/lib/chef/dsl/include_attribute.rb +57 -57
- data/lib/chef/dsl/include_recipe.rb +40 -40
- data/lib/chef/dsl/platform_introspection.rb +269 -269
- data/lib/chef/dsl/powershell.rb +29 -29
- data/lib/chef/dsl/reboot_pending.rb +57 -57
- data/lib/chef/dsl/recipe.rb +76 -76
- data/lib/chef/dsl/registry_helper.rb +63 -63
- data/lib/chef/dsl/resources.rb +49 -49
- data/lib/chef/dsl/universal.rb +60 -60
- data/lib/chef/encrypted_data_bag_item.rb +157 -157
- data/lib/chef/encrypted_data_bag_item/assertions.rb +54 -54
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -56
- data/lib/chef/encrypted_data_bag_item/decryption_failure.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +227 -227
- data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +37 -37
- data/lib/chef/encrypted_data_bag_item/encryption_failure.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +225 -225
- data/lib/chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/unsupported_cipher.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format.rb +22 -22
- data/lib/chef/environment.rb +319 -319
- data/lib/chef/event_dispatch/base.rb +445 -445
- data/lib/chef/event_dispatch/dispatcher.rb +62 -62
- data/lib/chef/event_dispatch/dsl.rb +65 -65
- data/lib/chef/event_dispatch/events_output_stream.rb +37 -37
- data/lib/chef/event_loggers/base.rb +62 -62
- data/lib/chef/event_loggers/windows_eventlog.rb +101 -101
- data/lib/chef/exceptions.rb +543 -531
- data/lib/chef/file_access_control.rb +75 -75
- data/lib/chef/file_access_control/unix.rb +290 -290
- data/lib/chef/file_access_control/windows.rb +337 -337
- data/lib/chef/file_cache.rb +223 -223
- data/lib/chef/file_content_management/content_base.rb +58 -58
- data/lib/chef/file_content_management/deploy.rb +37 -37
- data/lib/chef/file_content_management/deploy/cp.rb +48 -48
- data/lib/chef/file_content_management/deploy/mv_unix.rb +77 -77
- data/lib/chef/file_content_management/deploy/mv_windows.rb +103 -103
- data/lib/chef/file_content_management/tempfile.rb +107 -107
- data/lib/chef/formatters/base.rb +246 -246
- data/lib/chef/formatters/doc.rb +443 -443
- data/lib/chef/formatters/error_description.rb +86 -86
- data/lib/chef/formatters/error_inspectors.rb +19 -19
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +183 -183
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +154 -154
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +168 -168
- data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +82 -82
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +128 -128
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +147 -147
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +124 -124
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +121 -121
- data/lib/chef/formatters/error_mapper.rb +85 -85
- data/lib/chef/formatters/indentable_output_stream.rb +182 -182
- data/lib/chef/formatters/minimal.rb +233 -233
- data/lib/chef/guard_interpreter.rb +32 -32
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +47 -47
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +138 -138
- data/lib/chef/handler.rb +266 -266
- data/lib/chef/handler/error_report.rb +33 -33
- data/lib/chef/handler/json_file.rb +62 -62
- data/lib/chef/http.rb +539 -539
- data/lib/chef/http/api_versions.rb +56 -56
- data/lib/chef/http/auth_credentials.rb +59 -59
- data/lib/chef/http/authenticator.rb +118 -118
- data/lib/chef/http/basic_client.rb +157 -157
- data/lib/chef/http/cookie_jar.rb +31 -31
- data/lib/chef/http/cookie_manager.rb +59 -59
- data/lib/chef/http/decompressor.rb +142 -142
- data/lib/chef/http/http_request.rb +189 -189
- data/lib/chef/http/json_input.rb +73 -73
- data/lib/chef/http/json_output.rb +81 -81
- data/lib/chef/http/json_to_model_output.rb +34 -34
- data/lib/chef/http/remote_request_id.rb +46 -46
- data/lib/chef/http/simple.rb +40 -40
- data/lib/chef/http/simple_json.rb +43 -43
- data/lib/chef/http/socketless_chef_zero_client.rb +209 -209
- data/lib/chef/http/ssl_policies.rb +130 -130
- data/lib/chef/http/validate_content_length.rb +114 -114
- data/lib/chef/json_compat.rb +68 -68
- data/lib/chef/key.rb +269 -269
- data/lib/chef/knife.rb +620 -620
- data/lib/chef/knife/.DS_Store +0 -0
- data/lib/chef/knife/bootstrap.rb +525 -501
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +159 -159
- data/lib/chef/knife/bootstrap/client_builder.rb +208 -208
- data/lib/chef/knife/bootstrap/templates/README.md +11 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +243 -243
- data/lib/chef/knife/client_bulk_delete.rb +103 -103
- data/lib/chef/knife/client_create.rb +110 -110
- data/lib/chef/knife/client_delete.rb +62 -62
- data/lib/chef/knife/client_edit.rb +52 -52
- data/lib/chef/knife/client_key_create.rb +70 -70
- data/lib/chef/knife/client_key_delete.rb +77 -77
- data/lib/chef/knife/client_key_edit.rb +80 -80
- data/lib/chef/knife/client_key_list.rb +70 -70
- data/lib/chef/knife/client_key_show.rb +77 -77
- data/lib/chef/knife/client_list.rb +41 -41
- data/lib/chef/knife/client_reregister.rb +58 -58
- data/lib/chef/knife/client_show.rb +48 -48
- data/lib/chef/knife/config_get.rb +126 -126
- data/lib/chef/knife/config_get_profile.rb +37 -37
- data/lib/chef/knife/config_list_profiles.rb +121 -121
- data/lib/chef/knife/config_use_profile.rb +50 -50
- data/lib/chef/knife/configure.rb +147 -147
- data/lib/chef/knife/configure_client.rb +48 -48
- data/lib/chef/knife/cookbook_bulk_delete.rb +71 -71
- data/lib/chef/knife/cookbook_create.rb +29 -29
- data/lib/chef/knife/cookbook_delete.rb +151 -151
- data/lib/chef/knife/cookbook_download.rb +142 -142
- data/lib/chef/knife/cookbook_list.rb +47 -47
- data/lib/chef/knife/cookbook_metadata.rb +106 -106
- data/lib/chef/knife/cookbook_metadata_from_file.rb +43 -43
- data/lib/chef/knife/cookbook_show.rb +98 -98
- data/lib/chef/knife/cookbook_site_download.rb +40 -40
- data/lib/chef/knife/cookbook_site_install.rb +40 -40
- data/lib/chef/knife/cookbook_site_list.rb +40 -40
- data/lib/chef/knife/cookbook_site_search.rb +40 -40
- data/lib/chef/knife/cookbook_site_share.rb +41 -41
- data/lib/chef/knife/cookbook_site_show.rb +40 -40
- data/lib/chef/knife/cookbook_site_unshare.rb +41 -41
- data/lib/chef/knife/cookbook_test.rb +95 -95
- data/lib/chef/knife/cookbook_upload.rb +308 -308
- data/lib/chef/knife/core/bootstrap_context.rb +273 -273
- data/lib/chef/knife/core/cookbook_scm_repo.rb +159 -159
- data/lib/chef/knife/core/gem_glob_loader.rb +138 -138
- data/lib/chef/knife/core/generic_presenter.rb +231 -231
- data/lib/chef/knife/core/hashed_command_loader.rb +99 -99
- data/lib/chef/knife/core/node_editor.rb +130 -130
- data/lib/chef/knife/core/node_presenter.rb +158 -158
- data/lib/chef/knife/core/object_loader.rb +115 -115
- data/lib/chef/knife/core/status_presenter.rb +172 -172
- data/lib/chef/knife/core/subcommand_loader.rb +183 -183
- data/lib/chef/knife/core/text_formatter.rb +85 -85
- data/lib/chef/knife/core/ui.rb +286 -286
- data/lib/chef/knife/data_bag_create.rb +80 -80
- data/lib/chef/knife/data_bag_delete.rb +49 -49
- data/lib/chef/knife/data_bag_edit.rb +74 -74
- data/lib/chef/knife/data_bag_from_file.rb +113 -113
- data/lib/chef/knife/data_bag_list.rb +42 -42
- data/lib/chef/knife/data_bag_secret_options.rb +142 -142
- data/lib/chef/knife/data_bag_show.rb +69 -69
- data/lib/chef/knife/delete.rb +125 -125
- data/lib/chef/knife/deps.rb +154 -154
- data/lib/chef/knife/diff.rb +84 -84
- data/lib/chef/knife/download.rb +84 -84
- data/lib/chef/knife/edit.rb +88 -88
- data/lib/chef/knife/environment_compare.rb +127 -127
- data/lib/chef/knife/environment_create.rb +52 -52
- data/lib/chef/knife/environment_delete.rb +44 -44
- data/lib/chef/knife/environment_edit.rb +44 -44
- data/lib/chef/knife/environment_from_file.rb +84 -84
- data/lib/chef/knife/environment_list.rb +41 -41
- data/lib/chef/knife/environment_show.rb +47 -47
- data/lib/chef/knife/exec.rb +87 -87
- data/lib/chef/knife/key_create.rb +112 -112
- data/lib/chef/knife/key_create_base.rb +50 -50
- data/lib/chef/knife/key_delete.rb +55 -55
- data/lib/chef/knife/key_edit.rb +118 -118
- data/lib/chef/knife/key_edit_base.rb +55 -55
- data/lib/chef/knife/key_list.rb +88 -88
- data/lib/chef/knife/key_list_base.rb +45 -45
- data/lib/chef/knife/key_show.rb +53 -53
- data/lib/chef/knife/list.rb +172 -172
- data/lib/chef/knife/node_bulk_delete.rb +74 -74
- data/lib/chef/knife/node_create.rb +47 -47
- data/lib/chef/knife/node_delete.rb +46 -46
- data/lib/chef/knife/node_edit.rb +70 -70
- data/lib/chef/knife/node_environment_set.rb +54 -54
- data/lib/chef/knife/node_from_file.rb +51 -51
- data/lib/chef/knife/node_list.rb +44 -44
- data/lib/chef/knife/node_policy_set.rb +79 -79
- data/lib/chef/knife/node_run_list_add.rb +104 -104
- data/lib/chef/knife/node_run_list_remove.rb +67 -67
- data/lib/chef/knife/node_run_list_set.rb +66 -66
- data/lib/chef/knife/node_show.rb +61 -61
- data/lib/chef/knife/null.rb +10 -10
- data/lib/chef/knife/osc_user_create.rb +97 -97
- data/lib/chef/knife/osc_user_delete.rb +51 -51
- data/lib/chef/knife/osc_user_edit.rb +58 -58
- data/lib/chef/knife/osc_user_list.rb +47 -47
- data/lib/chef/knife/osc_user_reregister.rb +64 -64
- data/lib/chef/knife/osc_user_show.rb +53 -53
- data/lib/chef/knife/raw.rb +124 -124
- data/lib/chef/knife/recipe_list.rb +32 -32
- data/lib/chef/knife/rehash.rb +65 -65
- data/lib/chef/knife/role_bulk_delete.rb +65 -65
- data/lib/chef/knife/role_create.rb +53 -53
- data/lib/chef/knife/role_delete.rb +46 -46
- data/lib/chef/knife/role_edit.rb +45 -45
- data/lib/chef/knife/role_env_run_list_add.rb +87 -87
- data/lib/chef/knife/role_env_run_list_clear.rb +55 -55
- data/lib/chef/knife/role_env_run_list_remove.rb +57 -57
- data/lib/chef/knife/role_env_run_list_replace.rb +60 -60
- data/lib/chef/knife/role_env_run_list_set.rb +70 -70
- data/lib/chef/knife/role_from_file.rb +51 -51
- data/lib/chef/knife/role_list.rb +42 -42
- data/lib/chef/knife/role_run_list_add.rb +87 -87
- data/lib/chef/knife/role_run_list_clear.rb +55 -55
- data/lib/chef/knife/role_run_list_remove.rb +56 -56
- data/lib/chef/knife/role_run_list_replace.rb +60 -60
- data/lib/chef/knife/role_run_list_set.rb +69 -69
- data/lib/chef/knife/role_show.rb +48 -48
- data/lib/chef/knife/search.rb +194 -194
- data/lib/chef/knife/serve.rb +64 -64
- data/lib/chef/knife/show.rb +72 -72
- data/lib/chef/knife/ssh.rb +634 -634
- data/lib/chef/knife/ssl_check.rb +283 -283
- data/lib/chef/knife/ssl_fetch.rb +161 -161
- data/lib/chef/knife/status.rb +110 -110
- data/lib/chef/knife/supermarket_download.rb +122 -122
- data/lib/chef/knife/supermarket_install.rb +193 -193
- data/lib/chef/knife/supermarket_list.rb +65 -65
- data/lib/chef/knife/supermarket_search.rb +53 -53
- data/lib/chef/knife/supermarket_share.rb +166 -166
- data/lib/chef/knife/supermarket_show.rb +67 -67
- data/lib/chef/knife/supermarket_unshare.rb +61 -61
- data/lib/chef/knife/tag_create.rb +52 -52
- data/lib/chef/knife/tag_delete.rb +60 -60
- data/lib/chef/knife/tag_list.rb +47 -47
- data/lib/chef/knife/upload.rb +86 -86
- data/lib/chef/knife/user_create.rb +151 -151
- data/lib/chef/knife/user_delete.rb +96 -96
- data/lib/chef/knife/user_edit.rb +82 -82
- data/lib/chef/knife/user_key_create.rb +70 -70
- data/lib/chef/knife/user_key_delete.rb +77 -77
- data/lib/chef/knife/user_key_edit.rb +80 -80
- data/lib/chef/knife/user_key_list.rb +70 -70
- data/lib/chef/knife/user_key_show.rb +77 -77
- data/lib/chef/knife/user_list.rb +44 -44
- data/lib/chef/knife/user_reregister.rb +90 -90
- data/lib/chef/knife/user_show.rb +79 -79
- data/lib/chef/knife/xargs.rb +282 -282
- data/lib/chef/local_mode.rb +129 -129
- data/lib/chef/log.rb +70 -70
- data/lib/chef/log/syslog.rb +45 -45
- data/lib/chef/log/winevt.rb +99 -99
- data/lib/chef/mash.rb +232 -232
- data/lib/chef/mixin/.DS_Store +0 -0
- data/lib/chef/mixin/api_version_request_handling.rb +64 -64
- data/lib/chef/mixin/checksum.rb +37 -37
- data/lib/chef/mixin/convert_to_class_name.rb +126 -126
- data/lib/chef/mixin/create_path.rb +71 -71
- data/lib/chef/mixin/deep_merge.rb +140 -140
- data/lib/chef/mixin/deprecation.rb +117 -117
- data/lib/chef/mixin/descendants_tracker.rb +81 -81
- data/lib/chef/mixin/enforce_ownership_and_permissions.rb +39 -39
- data/lib/chef/mixin/file_class.rb +35 -35
- data/lib/chef/mixin/from_file.rb +55 -55
- data/lib/chef/mixin/get_source_from_package.rb +47 -47
- data/lib/chef/mixin/homebrew_user.rb +79 -79
- data/lib/chef/mixin/lazy_module_include.rb +77 -77
- data/lib/chef/mixin/notifying_block.rb +51 -51
- data/lib/chef/mixin/openssl_helper.rb +402 -402
- data/lib/chef/mixin/params_validate.rb +498 -498
- data/lib/chef/mixin/path_sanity.rb +66 -66
- data/lib/chef/mixin/powershell_exec.rb +105 -105
- data/lib/chef/mixin/powershell_out.rb +98 -98
- data/lib/chef/mixin/powershell_type_coercions.rb +84 -84
- data/lib/chef/mixin/properties.rb +323 -323
- data/lib/chef/mixin/provides.rb +29 -29
- data/lib/chef/mixin/proxified_socket.rb +42 -42
- data/lib/chef/mixin/securable.rb +192 -192
- data/lib/chef/mixin/shell_out.rb +258 -258
- data/lib/chef/mixin/subclass_directive.rb +37 -37
- data/lib/chef/mixin/template.rb +265 -265
- data/lib/chef/mixin/unformatter.rb +32 -32
- data/lib/chef/mixin/uris.rb +42 -42
- data/lib/chef/mixin/user_context.rb +55 -55
- data/lib/chef/mixin/versioned_api.rb +84 -84
- data/lib/chef/mixin/which.rb +52 -52
- data/lib/chef/mixin/why_run.rb +326 -326
- data/lib/chef/mixin/wide_string.rb +54 -54
- data/lib/chef/mixin/windows_architecture_helper.rb +113 -113
- data/lib/chef/mixin/windows_env_helper.rb +67 -67
- data/lib/chef/mixin/xml_escape.rb +138 -138
- data/lib/chef/mixins.rb +12 -12
- data/lib/chef/monkey_patches/net_http.rb +64 -64
- data/lib/chef/monkey_patches/webrick-utils.rb +51 -51
- data/lib/chef/monkey_patches/win32/registry.rb +86 -86
- data/lib/chef/monologger.rb +4 -4
- data/lib/chef/nil_argument.rb +3 -3
- data/lib/chef/node.rb +688 -688
- data/lib/chef/node/attribute.rb +649 -649
- data/lib/chef/node/attribute_collections.rb +213 -213
- data/lib/chef/node/common_api.rb +121 -121
- data/lib/chef/node/immutable_collections.rb +182 -182
- data/lib/chef/node/mixin/deep_merge_cache.rb +61 -61
- data/lib/chef/node/mixin/immutablize_array.rb +180 -180
- data/lib/chef/node/mixin/immutablize_hash.rb +165 -165
- data/lib/chef/node/mixin/state_tracking.rb +96 -96
- data/lib/chef/node_map.rb +315 -315
- data/lib/chef/null_logger.rb +79 -79
- data/lib/chef/org.rb +144 -144
- data/lib/chef/platform.rb +30 -30
- data/lib/chef/platform/priority_map.rb +41 -41
- data/lib/chef/platform/provider_handler_map.rb +29 -29
- data/lib/chef/platform/provider_mapping.rb +55 -55
- data/lib/chef/platform/provider_priority_map.rb +11 -11
- data/lib/chef/platform/query_helpers.rb +100 -100
- data/lib/chef/platform/rebooter.rb +71 -71
- data/lib/chef/platform/resource_handler_map.rb +29 -29
- data/lib/chef/platform/resource_priority_map.rb +11 -11
- data/lib/chef/platform/service_helpers.rb +122 -122
- data/lib/chef/policy_builder.rb +42 -42
- data/lib/chef/policy_builder/dynamic.rb +185 -185
- data/lib/chef/policy_builder/expand_node_object.rb +252 -252
- data/lib/chef/policy_builder/policyfile.rb +569 -569
- data/lib/chef/powershell.rb +57 -57
- data/lib/chef/property.rb +731 -731
- data/lib/chef/provider.rb +410 -408
- data/lib/chef/provider/.DS_Store +0 -0
- data/lib/chef/provider/apt_preference.rb +94 -94
- data/lib/chef/provider/apt_repository.rb +360 -360
- data/lib/chef/provider/apt_update.rb +80 -80
- data/lib/chef/provider/batch.rb +45 -45
- data/lib/chef/provider/cookbook_file.rb +47 -47
- data/lib/chef/provider/cookbook_file/content.rb +49 -49
- data/lib/chef/provider/cron.rb +256 -256
- data/lib/chef/provider/cron/aix.rb +50 -50
- data/lib/chef/provider/cron/solaris.rb +22 -22
- data/lib/chef/provider/cron/unix.rb +83 -83
- data/lib/chef/provider/directory.rb +164 -164
- data/lib/chef/provider/dsc_resource.rb +209 -209
- data/lib/chef/provider/dsc_script.rb +185 -185
- data/lib/chef/provider/execute.rb +130 -130
- data/lib/chef/provider/file.rb +478 -478
- data/lib/chef/provider/file/content.rb +39 -39
- data/lib/chef/provider/git.rb +357 -357
- data/lib/chef/provider/group.rb +179 -179
- data/lib/chef/provider/group/aix.rb +79 -79
- data/lib/chef/provider/group/dscl.rb +177 -177
- data/lib/chef/provider/group/gpasswd.rb +58 -58
- data/lib/chef/provider/group/groupadd.rb +133 -133
- data/lib/chef/provider/group/groupmod.rb +123 -123
- data/lib/chef/provider/group/pw.rb +137 -137
- data/lib/chef/provider/group/suse.rb +83 -83
- data/lib/chef/provider/group/usermod.rb +90 -90
- data/lib/chef/provider/group/windows.rb +110 -110
- data/lib/chef/provider/http_request.rb +132 -132
- data/lib/chef/provider/ifconfig.rb +271 -271
- data/lib/chef/provider/ifconfig/aix.rb +94 -94
- data/lib/chef/provider/ifconfig/debian.rb +88 -88
- data/lib/chef/provider/ifconfig/redhat.rb +54 -54
- data/lib/chef/provider/launchd.rb +231 -231
- data/lib/chef/provider/link.rb +168 -168
- data/lib/chef/provider/log.rb +43 -43
- data/lib/chef/provider/lwrp_base.rb +89 -89
- data/lib/chef/provider/mdadm.rb +85 -85
- data/lib/chef/provider/mount.rb +175 -175
- data/lib/chef/provider/mount/aix.rb +221 -221
- data/lib/chef/provider/mount/mount.rb +283 -283
- data/lib/chef/provider/mount/solaris.rb +275 -275
- data/lib/chef/provider/mount/windows.rb +92 -92
- data/lib/chef/provider/noop.rb +37 -37
- data/lib/chef/provider/ohai.rb +45 -45
- data/lib/chef/provider/osx_profile.rb +251 -251
- data/lib/chef/provider/package.rb +687 -687
- data/lib/chef/provider/package/.DS_Store +0 -0
- data/lib/chef/provider/package/apt.rb +249 -249
- data/lib/chef/provider/package/bff.rb +142 -142
- data/lib/chef/provider/package/cab.rb +187 -187
- data/lib/chef/provider/package/chocolatey.rb +285 -285
- data/lib/chef/provider/package/dnf.rb +196 -196
- data/lib/chef/provider/package/dnf/dnf_helper.py +114 -100
- data/lib/chef/provider/package/dnf/python_helper.rb +173 -173
- data/lib/chef/provider/package/dnf/version.rb +56 -56
- data/lib/chef/provider/package/dpkg.rb +241 -241
- data/lib/chef/provider/package/freebsd/.DS_Store +0 -0
- data/lib/chef/provider/package/freebsd/base.rb +89 -89
- data/lib/chef/provider/package/freebsd/pkg.rb +114 -114
- data/lib/chef/provider/package/freebsd/pkgng.rb +76 -76
- data/lib/chef/provider/package/freebsd/port.rb +60 -60
- data/lib/chef/provider/package/homebrew.rb +138 -138
- data/lib/chef/provider/package/ips.rb +85 -85
- data/lib/chef/provider/package/macports.rb +101 -101
- data/lib/chef/provider/package/msu.rb +161 -161
- data/lib/chef/provider/package/openbsd.rb +139 -139
- data/lib/chef/provider/package/pacman.rb +103 -103
- data/lib/chef/provider/package/paludis.rb +85 -85
- data/lib/chef/provider/package/portage.rb +133 -133
- data/lib/chef/provider/package/powershell.rb +133 -133
- data/lib/chef/provider/package/rpm.rb +126 -126
- data/lib/chef/provider/package/rubygems.rb +617 -617
- data/lib/chef/provider/package/smartos.rb +92 -92
- data/lib/chef/provider/package/solaris.rb +137 -137
- data/lib/chef/provider/package/windows.rb +317 -317
- data/lib/chef/provider/package/windows/exe.rb +117 -117
- data/lib/chef/provider/package/windows/msi.rb +96 -96
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +99 -99
- data/lib/chef/provider/package/yum.rb +289 -289
- data/lib/chef/provider/package/yum/python_helper.rb +222 -222
- data/lib/chef/provider/package/yum/rpm_utils.rb +651 -651
- data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +79 -79
- data/lib/chef/provider/package/yum/simplejson/__init__.py +318 -318
- data/lib/chef/provider/package/yum/simplejson/decoder.py +354 -354
- data/lib/chef/provider/package/yum/simplejson/encoder.py +440 -440
- data/lib/chef/provider/package/yum/simplejson/scanner.py +65 -65
- data/lib/chef/provider/package/yum/simplejson/tool.py +37 -37
- data/lib/chef/provider/package/yum/version.rb +56 -56
- data/lib/chef/provider/package/yum/yum_cache.rb +93 -93
- data/lib/chef/provider/package/yum/yum_helper.py +211 -211
- data/lib/chef/provider/package/zypper.rb +167 -167
- data/lib/chef/provider/powershell_script.rb +223 -223
- data/lib/chef/provider/reboot.rb +78 -78
- data/lib/chef/provider/registry_key.rb +199 -199
- data/lib/chef/provider/remote_directory.rb +269 -269
- data/lib/chef/provider/remote_file.rb +66 -66
- data/lib/chef/provider/remote_file/cache_control_data.rb +195 -195
- data/lib/chef/provider/remote_file/content.rb +81 -81
- data/lib/chef/provider/remote_file/fetcher.rb +60 -60
- data/lib/chef/provider/remote_file/ftp.rb +172 -172
- data/lib/chef/provider/remote_file/http.rb +143 -143
- data/lib/chef/provider/remote_file/local_file.rb +60 -60
- data/lib/chef/provider/remote_file/network_file.rb +61 -61
- data/lib/chef/provider/remote_file/sftp.rb +105 -105
- data/lib/chef/provider/resource_update.rb +52 -52
- data/lib/chef/provider/route.rb +248 -248
- data/lib/chef/provider/ruby_block.rb +40 -40
- data/lib/chef/provider/script.rb +121 -121
- data/lib/chef/provider/service.rb +252 -252
- data/lib/chef/provider/service/aix.rb +125 -125
- data/lib/chef/provider/service/aixinit.rb +117 -117
- data/lib/chef/provider/service/arch.rb +118 -118
- data/lib/chef/provider/service/debian.rb +193 -193
- data/lib/chef/provider/service/freebsd.rb +194 -194
- data/lib/chef/provider/service/gentoo.rb +70 -70
- data/lib/chef/provider/service/init.rb +93 -93
- data/lib/chef/provider/service/insserv.rb +61 -61
- data/lib/chef/provider/service/invokercd.rb +41 -41
- data/lib/chef/provider/service/macosx.rb +252 -252
- data/lib/chef/provider/service/openbsd.rb +216 -216
- data/lib/chef/provider/service/redhat.rb +126 -126
- data/lib/chef/provider/service/simple.rb +172 -172
- data/lib/chef/provider/service/solaris.rb +127 -127
- data/lib/chef/provider/service/systemd.rb +189 -189
- data/lib/chef/provider/service/upstart.rb +260 -260
- data/lib/chef/provider/service/windows.rb +488 -488
- data/lib/chef/provider/subversion.rb +227 -227
- data/lib/chef/provider/support/yum_repo.erb +138 -138
- data/lib/chef/provider/support/zypper_repo.erb +17 -17
- data/lib/chef/provider/systemd_unit.rb +261 -261
- data/lib/chef/provider/template.rb +59 -59
- data/lib/chef/provider/template/content.rb +93 -93
- data/lib/chef/provider/template_finder.rb +62 -62
- data/lib/chef/provider/user.rb +221 -221
- data/lib/chef/provider/user/aix.rb +131 -131
- data/lib/chef/provider/user/dscl.rb +712 -712
- data/lib/chef/provider/user/linux.rb +116 -116
- data/lib/chef/provider/user/pw.rb +105 -105
- data/lib/chef/provider/user/solaris.rb +160 -160
- data/lib/chef/provider/user/useradd.rb +161 -161
- data/lib/chef/provider/user/windows.rb +126 -126
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +32 -32
- data/lib/chef/provider/windows_env.rb +207 -207
- data/lib/chef/provider/windows_path.rb +61 -61
- data/lib/chef/provider/windows_script.rb +75 -75
- data/lib/chef/provider/windows_task.rb +631 -631
- data/lib/chef/provider/yum_repository.rb +130 -130
- data/lib/chef/provider/zypper_repository.rb +169 -169
- data/lib/chef/provider_resolver.rb +146 -146
- data/lib/chef/providers.rb +146 -146
- data/lib/chef/recipe.rb +110 -110
- data/lib/chef/request_id.rb +37 -37
- data/lib/chef/reserved_names.rb +9 -9
- data/lib/chef/resource.rb +1593 -1584
- data/lib/chef/resource/.DS_Store +0 -0
- data/lib/chef/resource/action_class.rb +90 -90
- data/lib/chef/resource/apt_package.rb +40 -40
- data/lib/chef/resource/apt_preference.rb +52 -52
- data/lib/chef/resource/apt_repository.rb +86 -86
- data/lib/chef/resource/apt_update.rb +41 -41
- data/lib/chef/resource/bash.rb +34 -34
- data/lib/chef/resource/batch.rb +34 -34
- data/lib/chef/resource/bff_package.rb +31 -31
- data/lib/chef/resource/breakpoint.rb +47 -47
- data/lib/chef/resource/build_essential.rb +142 -142
- data/lib/chef/resource/cab_package.rb +45 -45
- data/lib/chef/resource/chef_gem.rb +59 -59
- data/lib/chef/resource/chef_handler.rb +132 -132
- data/lib/chef/resource/chocolatey_config.rb +83 -83
- data/lib/chef/resource/chocolatey_package.rb +50 -50
- data/lib/chef/resource/chocolatey_source.rb +95 -95
- data/lib/chef/resource/conditional.rb +135 -135
- data/lib/chef/resource/conditional_action_not_nothing.rb +48 -48
- data/lib/chef/resource/cookbook_file.rb +45 -45
- data/lib/chef/resource/cron.rb +174 -174
- data/lib/chef/resource/cron_access.rb +70 -70
- data/lib/chef/resource/cron_d.rb +238 -238
- data/lib/chef/resource/csh.rb +39 -39
- data/lib/chef/resource/directory.rb +51 -51
- data/lib/chef/resource/dmg_package.rb +171 -171
- data/lib/chef/resource/dnf_package.rb +79 -79
- data/lib/chef/resource/dpkg_package.rb +33 -33
- data/lib/chef/resource/dsc_resource.rb +120 -120
- data/lib/chef/resource/dsc_script.rb +124 -124
- data/lib/chef/resource/execute.rb +201 -201
- data/lib/chef/resource/file.rb +105 -105
- data/lib/chef/resource/file/.DS_Store +0 -0
- data/lib/chef/resource/file/verification.rb +139 -139
- data/lib/chef/resource/file/verification/systemd_unit.rb +67 -67
- data/lib/chef/resource/freebsd_package.rb +73 -73
- data/lib/chef/resource/gem_package.rb +58 -58
- data/lib/chef/resource/git.rb +35 -35
- data/lib/chef/resource/group.rb +61 -61
- data/lib/chef/resource/homebrew_cask.rb +100 -100
- data/lib/chef/resource/homebrew_package.rb +38 -38
- data/lib/chef/resource/homebrew_tap.rb +87 -87
- data/lib/chef/resource/hostname.rb +265 -265
- data/lib/chef/resource/http_request.rb +55 -55
- data/lib/chef/resource/ifconfig.rb +105 -105
- data/lib/chef/resource/ips_package.rb +38 -38
- data/lib/chef/resource/kernel_module.rb +135 -135
- data/lib/chef/resource/ksh.rb +39 -39
- data/lib/chef/resource/launchd.rb +252 -252
- data/lib/chef/resource/link.rb +93 -93
- data/lib/chef/resource/locale.rb +94 -94
- data/lib/chef/resource/log.rb +52 -52
- data/lib/chef/resource/lwrp_base.rb +123 -123
- data/lib/chef/resource/macos_userdefaults.rb +132 -132
- data/lib/chef/resource/macosx_service.rb +41 -41
- data/lib/chef/resource/macports_package.rb +29 -29
- data/lib/chef/resource/mdadm.rb +67 -67
- data/lib/chef/resource/mount.rb +96 -96
- data/lib/chef/resource/msu_package.rb +49 -49
- data/lib/chef/resource/ohai.rb +41 -41
- data/lib/chef/resource/ohai_hint.rb +95 -95
- data/lib/chef/resource/openbsd_package.rb +38 -38
- data/lib/chef/resource/openssl_dhparam.rb +77 -77
- data/lib/chef/resource/openssl_ec_private_key.rb +93 -93
- data/lib/chef/resource/openssl_ec_public_key.rb +75 -75
- data/lib/chef/resource/openssl_rsa_private_key.rb +91 -91
- data/lib/chef/resource/openssl_rsa_public_key.rb +74 -74
- data/lib/chef/resource/openssl_x509_certificate.rb +221 -221
- data/lib/chef/resource/openssl_x509_crl.rb +132 -132
- data/lib/chef/resource/openssl_x509_request.rb +151 -151
- data/lib/chef/resource/osx_profile.rb +48 -48
- data/lib/chef/resource/package.rb +73 -73
- data/lib/chef/resource/pacman_package.rb +30 -30
- data/lib/chef/resource/paludis_package.rb +38 -38
- data/lib/chef/resource/perl.rb +38 -38
- data/lib/chef/resource/portage_package.rb +33 -33
- data/lib/chef/resource/powershell_package.rb +52 -52
- data/lib/chef/resource/powershell_package_source.rb +169 -169
- data/lib/chef/resource/powershell_script.rb +59 -59
- data/lib/chef/resource/python.rb +36 -36
- data/lib/chef/resource/reboot.rb +46 -46
- data/lib/chef/resource/registry_key.rb +130 -130
- data/lib/chef/resource/remote_directory.rb +87 -87
- data/lib/chef/resource/remote_file.rb +181 -181
- data/lib/chef/resource/resource_notification.rb +143 -139
- data/lib/chef/resource/rhsm_errata.rb +46 -46
- data/lib/chef/resource/rhsm_errata_level.rb +51 -51
- data/lib/chef/resource/rhsm_register.rb +168 -168
- data/lib/chef/resource/rhsm_repo.rb +65 -65
- data/lib/chef/resource/rhsm_subscription.rb +98 -98
- data/lib/chef/resource/route.rb +46 -46
- data/lib/chef/resource/rpm_package.rb +33 -33
- data/lib/chef/resource/ruby.rb +37 -37
- data/lib/chef/resource/ruby_block.rb +45 -45
- data/lib/chef/resource/scm.rb +75 -75
- data/lib/chef/resource/script.rb +54 -54
- data/lib/chef/resource/service.rb +221 -221
- data/lib/chef/resource/smartos_package.rb +31 -31
- data/lib/chef/resource/solaris_package.rb +33 -33
- data/lib/chef/resource/ssh_known_hosts_entry.rb +146 -146
- data/lib/chef/resource/subversion.rb +55 -55
- data/lib/chef/resource/sudo.rb +230 -230
- data/lib/chef/resource/support/cron.d.erb +28 -28
- data/lib/chef/resource/support/cron_access.erb +4 -4
- data/lib/chef/resource/support/ssh_known_hosts.erb +3 -3
- data/lib/chef/resource/support/sudoer.erb +18 -18
- data/lib/chef/resource/swap_file.rb +209 -209
- data/lib/chef/resource/sysctl.rb +151 -151
- data/lib/chef/resource/systemd_unit.rb +86 -86
- data/lib/chef/resource/template.rb +211 -211
- data/lib/chef/resource/timezone.rb +135 -135
- data/lib/chef/resource/user.rb +159 -159
- data/lib/chef/resource/user/aix_user.rb +31 -31
- data/lib/chef/resource/user/dscl_user.rb +31 -31
- data/lib/chef/resource/user/linux_user.rb +32 -32
- data/lib/chef/resource/user/pw_user.rb +31 -31
- data/lib/chef/resource/user/solaris_user.rb +31 -31
- data/lib/chef/resource/user/windows_user.rb +35 -35
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +24 -24
- data/lib/chef/resource/windows_ad_join.rb +120 -120
- data/lib/chef/resource/windows_auto_run.rb +87 -87
- data/lib/chef/resource/windows_certificate.rb +332 -332
- data/lib/chef/resource/windows_env.rb +49 -49
- data/lib/chef/resource/windows_feature.rb +90 -90
- data/lib/chef/resource/windows_feature_dism.rb +222 -222
- data/lib/chef/resource/windows_feature_powershell.rb +262 -262
- data/lib/chef/resource/windows_firewall_rule.rb +205 -205
- data/lib/chef/resource/windows_font.rb +125 -125
- data/lib/chef/resource/windows_package.rb +61 -61
- data/lib/chef/resource/windows_pagefile.rb +206 -206
- data/lib/chef/resource/windows_path.rb +38 -38
- data/lib/chef/resource/windows_printer.rb +146 -146
- data/lib/chef/resource/windows_printer_port.rb +136 -136
- data/lib/chef/resource/windows_script.rb +65 -65
- data/lib/chef/resource/windows_service.rb +121 -121
- data/lib/chef/resource/windows_share.rb +324 -324
- data/lib/chef/resource/windows_shortcut.rb +79 -79
- data/lib/chef/resource/windows_task.rb +349 -349
- data/lib/chef/resource/windows_workgroup.rb +112 -112
- data/lib/chef/resource/yum_package.rb +77 -77
- data/lib/chef/resource/yum_repository.rb +187 -187
- data/lib/chef/resource/zypper_package.rb +44 -44
- data/lib/chef/resource/zypper_repository.rb +103 -103
- data/lib/chef/resource_builder.rb +92 -92
- data/lib/chef/resource_collection.rb +153 -147
- data/lib/chef/resource_collection/resource_collection_serialization.rb +68 -68
- data/lib/chef/resource_collection/resource_list.rb +106 -106
- data/lib/chef/resource_collection/resource_set.rb +200 -200
- data/lib/chef/resource_collection/stepable_iterator.rb +122 -122
- data/lib/chef/resource_definition.rb +68 -68
- data/lib/chef/resource_definition_list.rb +38 -38
- data/lib/chef/resource_inspector.rb +108 -108
- data/lib/chef/resource_reporter.rb +337 -337
- data/lib/chef/resource_resolver.rb +160 -160
- data/lib/chef/resources.rb +147 -147
- data/lib/chef/role.rb +274 -274
- data/lib/chef/run_context.rb +708 -682
- data/lib/chef/run_context/cookbook_compiler.rb +344 -344
- data/lib/chef/run_list.rb +168 -168
- data/lib/chef/run_list/run_list_expansion.rb +236 -236
- data/lib/chef/run_list/run_list_item.rb +98 -98
- data/lib/chef/run_list/versioned_recipe_list.rb +104 -104
- data/lib/chef/run_lock.rb +197 -197
- data/lib/chef/run_status.rb +127 -127
- data/lib/chef/runner.rb +184 -144
- data/lib/chef/sandbox.rb +20 -20
- data/lib/chef/scan_access_control.rb +138 -138
- data/lib/chef/search/query.rb +182 -182
- data/lib/chef/server_api.rb +83 -83
- data/lib/chef/server_api_versions.rb +59 -59
- data/lib/chef/shell.rb +353 -353
- data/lib/chef/shell/ext.rb +593 -593
- data/lib/chef/shell/model_wrapper.rb +120 -120
- data/lib/chef/shell/shell_session.rb +310 -310
- data/lib/chef/user.rb +194 -194
- data/lib/chef/user_v1.rb +325 -325
- data/lib/chef/util/backup.rb +94 -94
- data/lib/chef/util/diff.rb +184 -184
- data/lib/chef/util/dsc/configuration_generator.rb +139 -139
- data/lib/chef/util/dsc/lcm_output_parser.rb +192 -192
- data/lib/chef/util/dsc/local_configuration_manager.rb +151 -151
- data/lib/chef/util/dsc/resource_info.rb +26 -26
- data/lib/chef/util/dsc/resource_store.rb +109 -109
- data/lib/chef/util/editor.rb +91 -91
- data/lib/chef/util/file_edit.rb +100 -100
- data/lib/chef/util/path_helper.rb +25 -25
- data/lib/chef/util/powershell/cmdlet.rb +173 -173
- data/lib/chef/util/powershell/cmdlet_result.rb +61 -61
- data/lib/chef/util/powershell/ps_credential.rb +41 -41
- data/lib/chef/util/selinux.rb +93 -93
- data/lib/chef/util/threaded_job_queue.rb +61 -61
- data/lib/chef/util/windows.rb +24 -24
- data/lib/chef/util/windows/logon_session.rb +129 -129
- data/lib/chef/util/windows/net_group.rb +78 -78
- data/lib/chef/util/windows/net_use.rb +81 -81
- data/lib/chef/util/windows/net_user.rb +172 -172
- data/lib/chef/util/windows/volume.rb +49 -49
- data/lib/chef/version.rb +36 -36
- data/lib/chef/version/platform.rb +62 -62
- data/lib/chef/version_class.rb +75 -75
- data/lib/chef/version_constraint.rb +118 -118
- data/lib/chef/version_constraint/platform.rb +28 -28
- data/lib/chef/version_string.rb +143 -143
- data/lib/chef/whitelist.rb +86 -86
- data/lib/chef/win32/api.rb +372 -372
- data/lib/chef/win32/api/crypto.rb +63 -63
- data/lib/chef/win32/api/error.rb +953 -953
- data/lib/chef/win32/api/file.rb +620 -620
- data/lib/chef/win32/api/installer.rb +165 -165
- data/lib/chef/win32/api/memory.rb +105 -105
- data/lib/chef/win32/api/net.rb +328 -328
- data/lib/chef/win32/api/process.rb +42 -42
- data/lib/chef/win32/api/psapi.rb +51 -51
- data/lib/chef/win32/api/registry.rb +51 -51
- data/lib/chef/win32/api/security.rb +476 -476
- data/lib/chef/win32/api/synchronization.rb +89 -89
- data/lib/chef/win32/api/system.rb +238 -238
- data/lib/chef/win32/api/unicode.rb +135 -135
- data/lib/chef/win32/crypto.rb +50 -50
- data/lib/chef/win32/error.rb +86 -86
- data/lib/chef/win32/eventlog.rb +31 -31
- data/lib/chef/win32/file.rb +226 -226
- data/lib/chef/win32/file/info.rb +99 -99
- data/lib/chef/win32/file/version_info.rb +93 -93
- data/lib/chef/win32/handle.rb +55 -55
- data/lib/chef/win32/memory.rb +101 -101
- data/lib/chef/win32/mutex.rb +116 -116
- data/lib/chef/win32/net.rb +326 -326
- data/lib/chef/win32/process.rb +97 -97
- data/lib/chef/win32/registry.rb +374 -374
- data/lib/chef/win32/security.rb +698 -698
- data/lib/chef/win32/security/ace.rb +123 -123
- data/lib/chef/win32/security/acl.rb +103 -103
- data/lib/chef/win32/security/securable_object.rb +109 -109
- data/lib/chef/win32/security/security_descriptor.rb +93 -93
- data/lib/chef/win32/security/sid.rb +347 -347
- data/lib/chef/win32/security/token.rb +72 -72
- data/lib/chef/win32/system.rb +62 -62
- data/lib/chef/win32/unicode.rb +66 -66
- data/lib/chef/win32/version.rb +151 -151
- data/lib/chef/win32_service_constants.rb +143 -143
- data/lib/chef/workstation_config_loader.rb +23 -23
- data/spec/.DS_Store +0 -0
- data/spec/data/.DS_Store +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -5
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -13
- data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -34
- data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -1
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -11
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -13
- data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -34
- data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/changelog +5 -5
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.debhelper.log +45 -45
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.substvars +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/conffiles +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/control +10 -10
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/md5sums +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/conffiles +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/control +13 -13
- data/spec/data/apt/chef-integration-test2-1.0/debian/copyright +34 -34
- data/spec/data/apt/chef-integration-test2-1.0/debian/files +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test2-1.0/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test2_1.0-1.dsc +18 -18
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.build +91 -91
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.changes +31 -31
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -22
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -22
- data/spec/data/apt/var/www/apt/conf/distributions +7 -7
- data/spec/data/apt/var/www/apt/conf/incoming +4 -4
- data/spec/data/apt/var/www/apt/conf/pulls +3 -3
- data/spec/data/apt/var/www/apt/db/version +4 -4
- data/spec/data/apt/var/www/apt/dists/sid/Release +19 -19
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -16
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -5
- data/spec/data/bootstrap/encrypted_data_bag_secret +1 -1
- data/spec/data/bootstrap/no_proxy.erb +2 -2
- data/spec/data/bootstrap/secret.erb +9 -9
- data/spec/data/bootstrap/test-hints.erb +12 -12
- data/spec/data/bootstrap/test.erb +1 -1
- data/spec/data/cb_version_cookbooks/tatft/README.rdoc +2 -2
- data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -1
- data/spec/data/client.d_00/00-foo.rb +2 -2
- data/spec/data/client.d_00/01-bar.rb +1 -1
- data/spec/data/client.d_00/02-strings.rb +2 -2
- data/spec/data/client.d_00/bar +1 -1
- data/spec/data/client.d_01/foo/bar.rb +1 -1
- data/spec/data/client.d_02/foo.rb/foo.txt +1 -1
- data/spec/data/config.rb +6 -6
- data/spec/data/cookbooks/.DS_Store +0 -0
- data/spec/data/cookbooks/angrybash/metadata.rb +2 -2
- data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -8
- data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -2
- data/spec/data/cookbooks/apache2/metadata.rb +2 -2
- data/spec/data/cookbooks/apache2/recipes/default.rb +2 -2
- data/spec/data/cookbooks/borken/metadata.rb +2 -2
- data/spec/data/cookbooks/borken/recipes/default.rb +1 -1
- data/spec/data/cookbooks/borken/templates/default/borken.erb +1 -1
- data/spec/data/cookbooks/chefignore +8 -8
- data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -2
- data/spec/data/cookbooks/ignorken/metadata.rb +2 -2
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +1 -1
- data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -2
- data/spec/data/cookbooks/java/.DS_Store +0 -0
- data/spec/data/cookbooks/java/files/.DS_Store +0 -0
- data/spec/data/cookbooks/java/files/default/java.response +1 -1
- data/spec/data/cookbooks/java/metadata.rb +2 -2
- data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +4 -4
- data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +8 -8
- data/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb +8 -8
- data/spec/data/cookbooks/openldap/attributes/default.rb +16 -16
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/cookbooks/openldap/definitions/client.rb +5 -5
- data/spec/data/cookbooks/openldap/definitions/server.rb +5 -5
- data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -3
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -4
- data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -3
- data/spec/data/cookbooks/openldap/metadata.rb +8 -8
- data/spec/data/cookbooks/openldap/recipes/default.rb +4 -4
- data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -3
- data/spec/data/cookbooks/openldap/recipes/one.rb +15 -15
- data/spec/data/cookbooks/openldap/recipes/return.rb +2 -2
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/helpers.erb +14 -14
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/nested_openldap_partials.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/nested_partial.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -4
- data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -1
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -1
- data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -4
- data/spec/data/cookbooks/preseed/metadata.rb +2 -2
- data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +1 -1
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -1
- data/spec/data/cookbooks/supports-platform-constraints/metadata.rb +5 -5
- data/spec/data/definitions/test.rb +4 -4
- data/spec/data/environment-config.rb +4 -4
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -127
- data/spec/data/fileedit/hosts +4 -4
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +4 -4
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +13 -13
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/recipes/default.rb +8 -8
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -4
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/metadata.rb +9 -9
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/recipes/default.rb +8 -8
- data/spec/data/kitchen/chefignore +6 -6
- data/spec/data/kitchen/openldap/attributes/default.rb +3 -3
- data/spec/data/kitchen/openldap/attributes/robinson.rb +2 -2
- data/spec/data/kitchen/openldap/definitions/client.rb +3 -3
- data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/gigantor.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/ignoreme.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/woot.rb +3 -3
- data/spec/data/knife_subcommand/test_explicit_category.rb +6 -6
- data/spec/data/knife_subcommand/test_name_mapping.rb +4 -4
- data/spec/data/knife_subcommand/test_yourself.rb +21 -21
- data/spec/data/lwrp/providers/buck_passer.rb +28 -28
- data/spec/data/lwrp/providers/buck_passer_2.rb +26 -26
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +28 -28
- data/spec/data/lwrp/providers/inline_compiler.rb +24 -24
- data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -5
- data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -7
- data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -7
- data/spec/data/lwrp/resources/bar.rb +2 -2
- data/spec/data/lwrp/resources/buck_passer.rb +5 -5
- data/spec/data/lwrp/resources/buck_passer_2.rb +3 -3
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -3
- data/spec/data/lwrp/resources/foo.rb +4 -4
- data/spec/data/lwrp/resources/inline_compiler.rb +3 -3
- data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -5
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -3
- data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -3
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -1
- data/spec/data/lwrp_override/providers/buck_passer.rb +5 -5
- data/spec/data/lwrp_override/resources/foo.rb +10 -10
- data/spec/data/mac_users/.DS_Store +0 -0
- data/spec/data/mac_users/10.7-8.plist.xml +559 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +11 -11
- data/spec/data/mac_users/10.7.plist.xml +559 -559
- data/spec/data/mac_users/10.7.shadow.xml +11 -11
- data/spec/data/mac_users/10.8.plist.xml +559 -559
- data/spec/data/mac_users/10.8.shadow.xml +21 -21
- data/spec/data/mac_users/10.9.plist.xml +560 -560
- data/spec/data/mac_users/10.9.shadow.xml +21 -21
- data/spec/data/metadata/quick_start/metadata.rb +19 -19
- data/spec/data/mixin/invalid_data.rb +3 -3
- data/spec/data/mixin/real_data.rb +2 -2
- data/spec/data/nested.json +2 -2
- data/spec/data/nodes/Tim.local.json +3 -0
- data/spec/data/nodes/Tims-MBP.local.json +3 -0
- data/spec/data/nodes/default.rb +15 -15
- data/spec/data/nodes/test.example.com.rb +17 -17
- data/spec/data/nodes/test.rb +15 -15
- data/spec/data/null_config.rb +1 -1
- data/spec/data/object_loader/environments/test.json +7 -7
- data/spec/data/object_loader/environments/test.rb +2 -2
- data/spec/data/object_loader/environments/test_json_class.json +8 -8
- data/spec/data/object_loader/nodes/test.json +7 -7
- data/spec/data/object_loader/nodes/test.rb +2 -2
- data/spec/data/object_loader/nodes/test_json_class.json +8 -8
- data/spec/data/object_loader/roles/test.json +7 -7
- data/spec/data/object_loader/roles/test.rb +2 -2
- data/spec/data/object_loader/roles/test_json_class.json +8 -8
- data/spec/data/partial_one.erb +1 -1
- data/spec/data/prefer_metadata_json/metadata.json +51 -51
- data/spec/data/prefer_metadata_json/metadata.rb +6 -6
- data/spec/data/recipes/test.rb +7 -7
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -1
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -1
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -2
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -3
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -1
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -2
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -3
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -3
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -1
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -2
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -3
- data/spec/data/run_context/.DS_Store +0 -0
- data/spec/data/run_context/cookbooks/.DS_Store +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/include/recipes/default.rb +24 -24
- data/spec/data/run_context/cookbooks/include/recipes/includee.rb +3 -3
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +2 -2
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -1
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -3
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -9
- data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -5
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -5
- data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -7
- data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -7
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -1
- data/spec/data/run_context/nodes/run_context.rb +5 -5
- data/spec/data/sample_msu1.xml +10 -10
- data/spec/data/sample_msu2.xml +14 -14
- data/spec/data/sample_msu3.xml +16 -16
- data/spec/data/search_queries_to_transform.txt +98 -98
- data/spec/data/shef-config.rb +11 -11
- data/spec/data/ssl/5e707473.0 +18 -18
- data/spec/data/ssl/chef-rspec.cert +27 -27
- data/spec/data/ssl/chef-rspec.key +27 -27
- data/spec/data/ssl/key.pem +15 -15
- data/spec/data/ssl/private_key.pem +27 -27
- data/spec/data/ssl/private_key_with_whitespace.pem +32 -32
- data/spec/data/standalone_cookbook/chefignore +9 -9
- data/spec/data/standalone_cookbook/recipes/default.rb +2 -2
- data/spec/data/templates/failed.erb +5 -5
- data/spec/data/trusted_certs/example.crt +22 -22
- data/spec/data/trusted_certs/example_no_cn.crt +36 -36
- data/spec/data/trusted_certs/intermediate.pem +27 -27
- data/spec/data/trusted_certs/opscode.pem +57 -57
- data/spec/data/trusted_certs/root.pem +22 -22
- data/spec/data/windows_certificates/base64_test.cer +22 -22
- data/spec/data/windows_certificates/test.pem +21 -21
- data/spec/functional/.DS_Store +0 -0
- data/spec/functional/application_spec.rb +58 -58
- data/spec/functional/assets/chefinittest +36 -36
- data/spec/functional/assets/inittest +36 -36
- data/spec/functional/assets/testchefsubsys +10 -10
- data/spec/functional/assets/yumrepo/repodata/repomd.xml +21 -21
- data/spec/functional/audit/rspec_formatter_spec.rb +54 -54
- data/spec/functional/audit/runner_spec.rb +121 -121
- data/spec/functional/dsl/reboot_pending_spec.rb +106 -106
- data/spec/functional/dsl/registry_helper_spec.rb +61 -61
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +104 -104
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +229 -229
- data/spec/functional/http/simple_spec.rb +146 -146
- data/spec/functional/knife/configure_spec.rb +33 -33
- data/spec/functional/knife/cookbook_delete_spec.rb +156 -156
- data/spec/functional/knife/exec_spec.rb +55 -55
- data/spec/functional/knife/rehash_spec.rb +39 -39
- data/spec/functional/knife/smoke_test.rb +42 -42
- data/spec/functional/knife/ssh_spec.rb +359 -359
- data/spec/functional/mixin/from_file_spec.rb +82 -82
- data/spec/functional/mixin/powershell_out_spec.rb +43 -43
- data/spec/functional/mixin/shell_out_spec.rb +78 -78
- data/spec/functional/mixin/user_context_spec.rb +117 -117
- data/spec/functional/notifications_spec.rb +238 -238
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +100 -100
- data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +51 -51
- data/spec/functional/rebooter_spec.rb +117 -117
- data/spec/functional/resource/.DS_Store +0 -0
- data/spec/functional/resource/aix_service_spec.rb +138 -138
- data/spec/functional/resource/aixinit_service_spec.rb +211 -211
- data/spec/functional/resource/apt_package_spec.rb +386 -386
- data/spec/functional/resource/base.rb +28 -28
- data/spec/functional/resource/bash_spec.rb +54 -54
- data/spec/functional/resource/batch_spec.rb +34 -34
- data/spec/functional/resource/bff_spec.rb +120 -120
- data/spec/functional/resource/chocolatey_package_spec.rb +118 -118
- data/spec/functional/resource/cookbook_file_spec.rb +81 -81
- data/spec/functional/resource/cron_spec.rb +179 -179
- data/spec/functional/resource/directory_spec.rb +43 -43
- data/spec/functional/resource/dnf_package_spec.rb +686 -686
- data/spec/functional/resource/dpkg_package_spec.rb +339 -339
- data/spec/functional/resource/dsc_resource_spec.rb +90 -90
- data/spec/functional/resource/dsc_script_spec.rb +484 -484
- data/spec/functional/resource/execute_spec.rb +171 -171
- data/spec/functional/resource/file_spec.rb +167 -167
- data/spec/functional/resource/git_spec.rb +257 -257
- data/spec/functional/resource/group_spec.rb +497 -497
- data/spec/functional/resource/ifconfig_spec.rb +172 -172
- data/spec/functional/resource/insserv_spec.rb +206 -205
- data/spec/functional/resource/link_spec.rb +699 -699
- data/spec/functional/resource/mount_spec.rb +207 -207
- data/spec/functional/resource/msu_package_spec.rb +98 -98
- data/spec/functional/resource/ohai_spec.rb +62 -62
- data/spec/functional/resource/powershell_script_spec.rb +599 -599
- data/spec/functional/resource/reboot_spec.rb +103 -103
- data/spec/functional/resource/registry_spec.rb +676 -676
- data/spec/functional/resource/remote_directory_spec.rb +220 -220
- data/spec/functional/resource/remote_file_spec.rb +424 -424
- data/spec/functional/resource/rpm_spec.rb +120 -120
- data/spec/functional/resource/template_spec.rb +245 -245
- data/spec/functional/resource/timezone_spec.rb +39 -39
- data/spec/functional/resource/user/dscl_spec.rb +195 -195
- data/spec/functional/resource/user/windows_spec.rb +245 -245
- data/spec/functional/resource/windows_certificate_spec.rb +492 -492
- data/spec/functional/resource/windows_env_spec.rb +285 -285
- data/spec/functional/resource/windows_package_spec.rb +168 -168
- data/spec/functional/resource/windows_path_spec.rb +64 -64
- data/spec/functional/resource/windows_service_spec.rb +102 -102
- data/spec/functional/resource/windows_task_spec.rb +1917 -1917
- data/spec/functional/resource/yum_package_spec.rb +959 -959
- data/spec/functional/resource/zypper_package_spec.rb +233 -233
- data/spec/functional/root_alias_spec.rb +78 -78
- data/spec/functional/run_lock_spec.rb +473 -473
- data/spec/functional/shell_spec.rb +146 -146
- data/spec/functional/tiny_server_spec.rb +79 -79
- data/spec/functional/util/.DS_Store +0 -0
- data/spec/functional/util/path_helper_spec.rb +37 -37
- data/spec/functional/util/powershell/cmdlet_spec.rb +111 -111
- data/spec/functional/version_spec.rb +35 -35
- data/spec/functional/win32/crypto_spec.rb +54 -54
- data/spec/functional/win32/registry_spec.rb +624 -624
- data/spec/functional/win32/security_spec.rb +206 -206
- data/spec/functional/win32/service_manager_spec.rb +220 -220
- data/spec/functional/win32/sid_spec.rb +55 -55
- data/spec/functional/win32/version_info_spec.rb +50 -50
- data/spec/functional/win32/versions_spec.rb +115 -115
- data/spec/integration/.DS_Store +0 -0
- data/spec/integration/client/client_spec.rb +732 -732
- data/spec/integration/client/exit_code_spec.rb +142 -142
- data/spec/integration/client/ipv6_spec.rb +134 -134
- data/spec/integration/knife/chef_fs_data_store_spec.rb +556 -556
- data/spec/integration/knife/chef_repo_path_spec.rb +961 -959
- data/spec/integration/knife/chef_repository_file_system_spec.rb +199 -199
- data/spec/integration/knife/chefignore_spec.rb +300 -300
- data/spec/integration/knife/client_bulk_delete_spec.rb +130 -130
- data/spec/integration/knife/client_create_spec.rb +69 -69
- data/spec/integration/knife/client_delete_spec.rb +63 -63
- data/spec/integration/knife/client_key_create_spec.rb +65 -65
- data/spec/integration/knife/client_key_delete_spec.rb +42 -42
- data/spec/integration/knife/client_key_list_spec.rb +60 -60
- data/spec/integration/knife/client_key_show_spec.rb +44 -44
- data/spec/integration/knife/client_list_spec.rb +48 -48
- data/spec/integration/knife/client_show_spec.rb +36 -36
- data/spec/integration/knife/common_options_spec.rb +173 -173
- data/spec/integration/knife/config_get_profile_spec.rb +112 -112
- data/spec/integration/knife/config_get_spec.rb +183 -183
- data/spec/integration/knife/config_list_profiles_spec.rb +188 -188
- data/spec/integration/knife/config_use_profile_spec.rb +100 -100
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +112 -112
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +64 -64
- data/spec/integration/knife/cookbook_download_spec.rb +71 -71
- data/spec/integration/knife/cookbook_list_spec.rb +54 -54
- data/spec/integration/knife/cookbook_show_spec.rb +148 -148
- data/spec/integration/knife/cookbook_upload_spec.rb +90 -90
- data/spec/integration/knife/data_bag_create_spec.rb +124 -124
- data/spec/integration/knife/data_bag_delete_spec.rb +58 -58
- data/spec/integration/knife/data_bag_edit_spec.rb +104 -104
- data/spec/integration/knife/data_bag_from_file_spec.rb +115 -115
- data/spec/integration/knife/data_bag_list_spec.rb +43 -43
- data/spec/integration/knife/data_bag_show_spec.rb +94 -94
- data/spec/integration/knife/delete_spec.rb +1017 -1017
- data/spec/integration/knife/deps_spec.rb +702 -702
- data/spec/integration/knife/diff_spec.rb +602 -602
- data/spec/integration/knife/download_spec.rb +1333 -1333
- data/spec/integration/knife/environment_compare_spec.rb +74 -74
- data/spec/integration/knife/environment_create_spec.rb +40 -40
- data/spec/integration/knife/environment_delete_spec.rb +36 -36
- data/spec/integration/knife/environment_from_file_spec.rb +115 -115
- data/spec/integration/knife/environment_list_spec.rb +41 -41
- data/spec/integration/knife/environment_show_spec.rb +76 -76
- data/spec/integration/knife/list_spec.rb +1059 -1059
- data/spec/integration/knife/node_bulk_delete_spec.rb +51 -51
- data/spec/integration/knife/node_create_spec.rb +46 -46
- data/spec/integration/knife/node_delete_spec.rb +47 -47
- data/spec/integration/knife/node_environment_set_spec.rb +45 -45
- data/spec/integration/knife/node_from_file_spec.rb +58 -58
- data/spec/integration/knife/node_list_spec.rb +44 -44
- data/spec/integration/knife/node_run_list_add_spec.rb +53 -53
- data/spec/integration/knife/node_run_list_remove_spec.rb +35 -35
- data/spec/integration/knife/node_run_list_set_spec.rb +40 -40
- data/spec/integration/knife/node_show_spec.rb +35 -35
- data/spec/integration/knife/raw_spec.rb +248 -248
- data/spec/integration/knife/redirection_spec.rb +54 -54
- data/spec/integration/knife/role_bulk_delete_spec.rb +51 -51
- data/spec/integration/knife/role_create_spec.rb +40 -40
- data/spec/integration/knife/role_delete_spec.rb +47 -47
- data/spec/integration/knife/role_from_file_spec.rb +95 -95
- data/spec/integration/knife/role_list_spec.rb +44 -44
- data/spec/integration/knife/role_show_spec.rb +50 -50
- data/spec/integration/knife/search_node_spec.rb +39 -39
- data/spec/integration/knife/serve_spec.rb +93 -93
- data/spec/integration/knife/show_spec.rb +167 -167
- data/spec/integration/knife/upload_spec.rb +1540 -1540
- data/spec/integration/recipes/accumulator_spec.rb +232 -232
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +171 -171
- data/spec/integration/recipes/lwrp_spec.rb +53 -53
- data/spec/integration/recipes/noop_resource_spec.rb +24 -24
- data/spec/integration/recipes/notifies_spec.rb +394 -394
- data/spec/integration/recipes/notifying_block_spec.rb +111 -111
- data/spec/integration/recipes/provider_choice.rb +37 -37
- data/spec/integration/recipes/recipe_dsl_spec.rb +1373 -1373
- data/spec/integration/recipes/remote_directory.rb +74 -74
- data/spec/integration/recipes/resource_action_spec.rb +504 -504
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +552 -552
- data/spec/integration/recipes/resource_load_spec.rb +192 -192
- data/spec/integration/recipes/unified_mode_spec.rb +876 -0
- data/spec/integration/solo/solo_spec.rb +217 -217
- data/spec/rcov.opts +2 -2
- data/spec/scripts/ssl-serve.rb +47 -47
- data/spec/spec_helper.rb +332 -328
- data/spec/stress/.DS_Store +0 -0
- data/spec/stress/win32/file_spec.rb +37 -37
- data/spec/stress/win32/memory_spec.rb +22 -22
- data/spec/stress/win32/security_spec.rb +69 -69
- data/spec/support/.DS_Store +0 -0
- data/spec/support/chef_helpers.rb +115 -115
- data/spec/support/key_helpers.rb +104 -104
- data/spec/support/lib/chef/provider/easy.rb +35 -35
- data/spec/support/lib/chef/provider/openldap_includer.rb +29 -29
- data/spec/support/lib/chef/provider/snakeoil.rb +42 -42
- data/spec/support/lib/chef/resource/cat.rb +39 -39
- data/spec/support/lib/chef/resource/one_two_three_four.rb +36 -36
- data/spec/support/lib/chef/resource/openldap_includer.rb +28 -28
- data/spec/support/lib/chef/resource/with_state.rb +30 -30
- data/spec/support/lib/chef/resource/zen_follower.rb +35 -35
- data/spec/support/lib/chef/resource/zen_master.rb +40 -40
- data/spec/support/lib/library_load_order.rb +20 -20
- data/spec/support/matchers/leak.rb +98 -98
- data/spec/support/mock/constant.rb +52 -52
- data/spec/support/mock/platform.rb +25 -25
- data/spec/support/platform_helpers.rb +276 -268
- data/spec/support/platforms/prof/gc.rb +51 -51
- data/spec/support/platforms/prof/win32.rb +45 -45
- data/spec/support/platforms/win32/spec_service.rb +59 -59
- data/spec/support/shared/context/client.rb +305 -305
- data/spec/support/shared/context/config.rb +21 -21
- data/spec/support/shared/context/win32.rb +34 -34
- data/spec/support/shared/examples/client.rb +104 -104
- data/spec/support/shared/functional/diff_disabled.rb +10 -10
- data/spec/support/shared/functional/directory_resource.rb +178 -178
- data/spec/support/shared/functional/execute_resource.rb +150 -150
- data/spec/support/shared/functional/file_resource.rb +1050 -1050
- data/spec/support/shared/functional/http.rb +248 -248
- data/spec/support/shared/functional/knife.rb +37 -37
- data/spec/support/shared/functional/securable_resource.rb +578 -578
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +394 -394
- data/spec/support/shared/functional/win32_service.rb +57 -57
- data/spec/support/shared/functional/windows_script.rb +272 -272
- data/spec/support/shared/integration/app_server_support.rb +40 -40
- data/spec/support/shared/integration/integration_helper.rb +154 -154
- data/spec/support/shared/integration/knife_support.rb +196 -196
- data/spec/support/shared/matchers/exit_with_code.rb +32 -32
- data/spec/support/shared/matchers/match_environment_variable.rb +17 -17
- data/spec/support/shared/shared_examples.rb +14 -14
- data/spec/support/shared/unit/api_error_inspector.rb +190 -190
- data/spec/support/shared/unit/api_versioning.rb +77 -77
- data/spec/support/shared/unit/application_dot_d.rb +75 -75
- data/spec/support/shared/unit/execute_resource.rb +168 -168
- data/spec/support/shared/unit/file_system_support.rb +69 -69
- data/spec/support/shared/unit/knife_shared.rb +39 -39
- data/spec/support/shared/unit/mock_shellout.rb +49 -49
- data/spec/support/shared/unit/platform_introspector.rb +189 -189
- data/spec/support/shared/unit/provider/file.rb +854 -854
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +402 -402
- data/spec/support/shared/unit/resource/static_provider_resolution.rb +63 -63
- data/spec/support/shared/unit/script_resource.rb +90 -90
- data/spec/support/shared/unit/user_and_client_shared.rb +114 -114
- data/spec/support/shared/unit/windows_script_resource.rb +80 -80
- data/spec/tiny_server.rb +191 -191
- data/spec/unit/.DS_Store +0 -0
- data/spec/unit/api_client/registration_spec.rb +278 -278
- data/spec/unit/api_client_spec.rb +341 -341
- data/spec/unit/api_client_v1_spec.rb +455 -455
- data/spec/unit/application/apply_spec.rb +113 -113
- data/spec/unit/application/client_spec.rb +559 -559
- data/spec/unit/application/exit_code_spec.rb +144 -144
- data/spec/unit/application/knife_spec.rb +229 -229
- data/spec/unit/application/solo_spec.rb +225 -225
- data/spec/unit/application_spec.rb +486 -486
- data/spec/unit/audit/audit_event_proxy_spec.rb +318 -318
- data/spec/unit/audit/audit_reporter_spec.rb +435 -435
- data/spec/unit/audit/control_group_data_spec.rb +482 -482
- data/spec/unit/audit/logger_spec.rb +42 -42
- data/spec/unit/audit/rspec_formatter_spec.rb +29 -29
- data/spec/unit/audit/runner_spec.rb +144 -144
- data/spec/unit/chef_class_spec.rb +240 -240
- data/spec/unit/chef_fs/config_spec.rb +235 -235
- data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +82 -82
- data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +65 -65
- data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +63 -63
- data/spec/unit/chef_fs/diff_spec.rb +328 -328
- data/spec/unit/chef_fs/file_pattern_spec.rb +512 -512
- data/spec/unit/chef_fs/file_system/cookbook_subdir_spec.rb +34 -34
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +47 -47
- data/spec/unit/chef_fs/file_system/repository/base_file_spec.rb +126 -126
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +175 -175
- data/spec/unit/chef_fs/file_system_spec.rb +148 -148
- data/spec/unit/chef_fs/parallelizer.rb +477 -477
- data/spec/unit/chef_fs/path_util_spec.rb +108 -108
- data/spec/unit/chef_spec.rb +25 -25
- data/spec/unit/client_spec.rb +595 -595
- data/spec/unit/config_fetcher_spec.rb +125 -125
- data/spec/unit/config_spec.rb +31 -31
- data/spec/unit/cookbook/chefignore_spec.rb +49 -49
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +210 -210
- data/spec/unit/cookbook/file_vendor_spec.rb +123 -123
- data/spec/unit/cookbook/gem_installer_spec.rb +113 -92
- data/spec/unit/cookbook/manifest_v0_spec.rb +133 -133
- data/spec/unit/cookbook/manifest_v2_spec.rb +70 -70
- data/spec/unit/cookbook/metadata_spec.rb +892 -892
- data/spec/unit/cookbook/synchronizer_spec.rb +557 -557
- data/spec/unit/cookbook/syntax_check_spec.rb +226 -226
- data/spec/unit/cookbook_loader_spec.rb +302 -302
- data/spec/unit/cookbook_manifest_spec.rb +228 -228
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +199 -199
- data/spec/unit/cookbook_spec.rb +62 -62
- data/spec/unit/cookbook_uploader_spec.rb +199 -199
- data/spec/unit/cookbook_version_file_specificity_spec.rb +623 -623
- data/spec/unit/cookbook_version_spec.rb +250 -250
- data/spec/unit/daemon_spec.rb +183 -183
- data/spec/unit/data_bag_item_spec.rb +392 -392
- data/spec/unit/data_bag_spec.rb +260 -260
- data/spec/unit/data_collector/messages/helpers_spec.rb +202 -202
- data/spec/unit/data_collector/messages_spec.rb +329 -329
- data/spec/unit/data_collector/resource_report_spec.rb +145 -145
- data/spec/unit/data_collector_spec.rb +876 -876
- data/spec/unit/decorator/lazy_array_spec.rb +58 -58
- data/spec/unit/decorator/lazy_spec.rb +39 -39
- data/spec/unit/decorator_spec.rb +142 -142
- data/spec/unit/deprecated_spec.rb +65 -65
- data/spec/unit/deprecation_spec.rb +129 -129
- data/spec/unit/digester_spec.rb +49 -49
- data/spec/unit/dsl/audit_spec.rb +43 -43
- data/spec/unit/dsl/data_query_spec.rb +107 -107
- data/spec/unit/dsl/declare_resource_spec.rb +374 -374
- data/spec/unit/dsl/platform_introspection_spec.rb +129 -129
- data/spec/unit/dsl/reboot_pending_spec.rb +87 -87
- data/spec/unit/dsl/recipe_spec.rb +76 -76
- data/spec/unit/dsl/registry_helper_spec.rb +52 -52
- data/spec/unit/dsl/resources_spec.rb +85 -85
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +96 -96
- data/spec/unit/encrypted_data_bag_item_spec.rb +438 -438
- data/spec/unit/environment_spec.rb +470 -470
- data/spec/unit/event_dispatch/dispatcher_spec.rb +122 -122
- data/spec/unit/event_dispatch/dsl_spec.rb +83 -83
- data/spec/unit/exceptions_spec.rb +132 -132
- data/spec/unit/file_access_control_spec.rb +308 -308
- data/spec/unit/file_cache_spec.rb +114 -114
- data/spec/unit/file_content_management/deploy/cp_spec.rb +44 -44
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +113 -113
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +232 -232
- data/spec/unit/file_content_management/tempfile_spec.rb +115 -115
- data/spec/unit/formatters/base_spec.rb +100 -100
- data/spec/unit/formatters/doc_spec.rb +110 -92
- data/spec/unit/formatters/error_description_spec.rb +141 -141
- data/spec/unit/formatters/error_inspectors/api_error_formatting_spec.rb +76 -76
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +265 -265
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +126 -126
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +43 -43
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +26 -26
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +26 -26
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +191 -191
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +91 -91
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +155 -155
- data/spec/unit/guard_interpreter_spec.rb +41 -41
- data/spec/unit/handler/json_file_spec.rb +63 -63
- data/spec/unit/handler_spec.rb +302 -302
- data/spec/unit/http/api_versions_spec.rb +82 -82
- data/spec/unit/http/authenticator_spec.rb +125 -125
- data/spec/unit/http/basic_client_spec.rb +72 -72
- data/spec/unit/http/http_request_spec.rb +97 -97
- data/spec/unit/http/json_input_spec.rb +128 -128
- data/spec/unit/http/simple_spec.rb +32 -32
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +174 -174
- data/spec/unit/http/ssl_policies_spec.rb +169 -169
- data/spec/unit/http/validate_content_length_spec.rb +207 -207
- data/spec/unit/http_spec.rb +229 -229
- data/spec/unit/json_compat_spec.rb +73 -73
- data/spec/unit/key_spec.rb +631 -631
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +152 -152
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +207 -207
- data/spec/unit/knife/bootstrap_spec.rb +972 -886
- data/spec/unit/knife/client_bulk_delete_spec.rb +166 -166
- data/spec/unit/knife/client_create_spec.rb +186 -186
- data/spec/unit/knife/client_delete_spec.rb +99 -99
- data/spec/unit/knife/client_edit_spec.rb +53 -53
- data/spec/unit/knife/client_list_spec.rb +34 -34
- data/spec/unit/knife/client_reregister_spec.rb +62 -62
- data/spec/unit/knife/client_show_spec.rb +52 -52
- data/spec/unit/knife/configure_client_spec.rb +81 -81
- data/spec/unit/knife/configure_spec.rb +190 -190
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +87 -87
- data/spec/unit/knife/cookbook_create_spec.rb +42 -42
- data/spec/unit/knife/cookbook_delete_spec.rb +239 -239
- data/spec/unit/knife/cookbook_download_spec.rb +255 -255
- data/spec/unit/knife/cookbook_list_spec.rb +88 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +65 -65
- data/spec/unit/knife/cookbook_metadata_spec.rb +182 -182
- data/spec/unit/knife/cookbook_show_spec.rb +254 -254
- data/spec/unit/knife/cookbook_test_spec.rb +84 -84
- data/spec/unit/knife/cookbook_upload_spec.rb +331 -331
- data/spec/unit/knife/core/bootstrap_context_spec.rb +324 -324
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +187 -187
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +209 -209
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +110 -110
- data/spec/unit/knife/core/node_editor_spec.rb +211 -211
- data/spec/unit/knife/core/object_loader_spec.rb +81 -81
- data/spec/unit/knife/core/subcommand_loader_spec.rb +64 -64
- data/spec/unit/knife/core/ui_spec.rb +639 -639
- data/spec/unit/knife/data_bag_create_spec.rb +175 -175
- data/spec/unit/knife/data_bag_edit_spec.rb +126 -126
- data/spec/unit/knife/data_bag_from_file_spec.rb +173 -173
- data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -165
- data/spec/unit/knife/data_bag_show_spec.rb +138 -138
- data/spec/unit/knife/environment_compare_spec.rb +112 -112
- data/spec/unit/knife/environment_create_spec.rb +91 -91
- data/spec/unit/knife/environment_delete_spec.rb +71 -71
- data/spec/unit/knife/environment_edit_spec.rb +79 -79
- data/spec/unit/knife/environment_from_file_spec.rb +90 -90
- data/spec/unit/knife/environment_list_spec.rb +54 -54
- data/spec/unit/knife/environment_show_spec.rb +52 -52
- data/spec/unit/knife/key_create_spec.rb +223 -223
- data/spec/unit/knife/key_delete_spec.rb +133 -133
- data/spec/unit/knife/key_edit_spec.rb +264 -264
- data/spec/unit/knife/key_helper.rb +74 -74
- data/spec/unit/knife/key_list_spec.rb +216 -216
- data/spec/unit/knife/key_show_spec.rb +126 -126
- data/spec/unit/knife/node_bulk_delete_spec.rb +94 -94
- data/spec/unit/knife/node_delete_spec.rb +77 -77
- data/spec/unit/knife/node_edit_spec.rb +116 -116
- data/spec/unit/knife/node_environment_set_spec.rb +56 -56
- data/spec/unit/knife/node_from_file_spec.rb +59 -59
- data/spec/unit/knife/node_list_spec.rb +62 -62
- data/spec/unit/knife/node_policy_set_spec.rb +122 -122
- data/spec/unit/knife/node_run_list_add_spec.rb +145 -145
- data/spec/unit/knife/node_run_list_remove_spec.rb +106 -106
- data/spec/unit/knife/node_run_list_set_spec.rb +115 -115
- data/spec/unit/knife/node_show_spec.rb +65 -65
- data/spec/unit/knife/osc_user_create_spec.rb +93 -93
- data/spec/unit/knife/osc_user_delete_spec.rb +44 -44
- data/spec/unit/knife/osc_user_edit_spec.rb +52 -52
- data/spec/unit/knife/osc_user_list_spec.rb +37 -37
- data/spec/unit/knife/osc_user_reregister_spec.rb +58 -58
- data/spec/unit/knife/osc_user_show_spec.rb +46 -46
- data/spec/unit/knife/raw_spec.rb +43 -43
- data/spec/unit/knife/role_bulk_delete_spec.rb +80 -80
- data/spec/unit/knife/role_create_spec.rb +80 -80
- data/spec/unit/knife/role_delete_spec.rb +67 -67
- data/spec/unit/knife/role_edit_spec.rb +77 -77
- data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -217
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +94 -94
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +102 -102
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +105 -105
- data/spec/unit/knife/role_env_run_list_set_spec.rb +99 -99
- data/spec/unit/knife/role_from_file_spec.rb +69 -69
- data/spec/unit/knife/role_list_spec.rb +54 -54
- data/spec/unit/knife/role_run_list_add_spec.rb +179 -179
- data/spec/unit/knife/role_run_list_clear_spec.rb +84 -84
- data/spec/unit/knife/role_run_list_remove_spec.rb +92 -92
- data/spec/unit/knife/role_run_list_replace_spec.rb +98 -98
- data/spec/unit/knife/role_run_list_set_spec.rb +89 -89
- data/spec/unit/knife/role_show_spec.rb +59 -59
- data/spec/unit/knife/ssh_spec.rb +496 -496
- data/spec/unit/knife/ssl_check_spec.rb +256 -256
- data/spec/unit/knife/ssl_fetch_spec.rb +222 -222
- data/spec/unit/knife/status_spec.rb +111 -111
- data/spec/unit/knife/supermarket_download_spec.rb +152 -152
- data/spec/unit/knife/supermarket_install_spec.rb +201 -201
- data/spec/unit/knife/supermarket_share_spec.rb +209 -209
- data/spec/unit/knife/supermarket_unshare_spec.rb +78 -78
- data/spec/unit/knife/tag_create_spec.rb +23 -23
- data/spec/unit/knife/tag_delete_spec.rb +25 -25
- data/spec/unit/knife/tag_list_spec.rb +23 -23
- data/spec/unit/knife/user_create_spec.rb +214 -214
- data/spec/unit/knife/user_delete_spec.rb +65 -65
- data/spec/unit/knife/user_edit_spec.rb +66 -66
- data/spec/unit/knife/user_list_spec.rb +36 -36
- data/spec/unit/knife/user_reregister_spec.rb +74 -74
- data/spec/unit/knife/user_show_spec.rb +65 -65
- data/spec/unit/knife_spec.rb +588 -588
- data/spec/unit/log/syslog_spec.rb +51 -51
- data/spec/unit/log/winevt_spec.rb +54 -54
- data/spec/unit/log_spec.rb +24 -24
- data/spec/unit/lwrp_spec.rb +690 -690
- data/spec/unit/mash_spec.rb +51 -51
- data/spec/unit/mixin/api_version_request_handling_spec.rb +126 -126
- data/spec/unit/mixin/checksum_spec.rb +54 -54
- data/spec/unit/mixin/convert_to_class_name_spec.rb +54 -54
- data/spec/unit/mixin/deep_merge_spec.rb +342 -342
- data/spec/unit/mixin/deprecation_spec.rb +57 -57
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +96 -96
- data/spec/unit/mixin/homebrew_user_spec.rb +96 -96
- data/spec/unit/mixin/lazy_module_include.rb +71 -71
- data/spec/unit/mixin/openssl_helper_spec.rb +857 -857
- data/spec/unit/mixin/params_validate_spec.rb +421 -421
- data/spec/unit/mixin/path_sanity_spec.rb +92 -92
- data/spec/unit/mixin/powershell_exec_spec.rb +43 -43
- data/spec/unit/mixin/powershell_out_spec.rb +94 -94
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +84 -84
- data/spec/unit/mixin/properties_spec.rb +107 -107
- data/spec/unit/mixin/proxified_socket_spec.rb +97 -97
- data/spec/unit/mixin/securable_spec.rb +314 -314
- data/spec/unit/mixin/shell_out_spec.rb +450 -450
- data/spec/unit/mixin/subclass_directive_spec.rb +45 -45
- data/spec/unit/mixin/template_spec.rb +321 -321
- data/spec/unit/mixin/unformatter_spec.rb +61 -61
- data/spec/unit/mixin/uris_spec.rb +57 -57
- data/spec/unit/mixin/user_context_spec.rb +108 -108
- data/spec/unit/mixin/versioned_api_spec.rb +128 -128
- data/spec/unit/mixin/which.rb +160 -160
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +85 -85
- data/spec/unit/mixin/xml_escape_spec.rb +54 -54
- data/spec/unit/monkey_patches/uri_spec.rb +34 -34
- data/spec/unit/monologger_spec.rb +45 -45
- data/spec/unit/node/attribute_spec.rb +1276 -1276
- data/spec/unit/node/immutable_collections_spec.rb +327 -327
- data/spec/unit/node/vivid_mash_spec.rb +353 -353
- data/spec/unit/node_map_spec.rb +242 -242
- data/spec/unit/node_spec.rb +1851 -1851
- data/spec/unit/org_spec.rb +196 -196
- data/spec/unit/platform/query_helpers_spec.rb +207 -207
- data/spec/unit/policy_builder/dynamic_spec.rb +273 -273
- data/spec/unit/policy_builder/expand_node_object_spec.rb +311 -311
- data/spec/unit/policy_builder/policyfile_spec.rb +872 -872
- data/spec/unit/policy_builder_spec.rb +26 -26
- data/spec/unit/property/state_spec.rb +508 -508
- data/spec/unit/property/validation_spec.rb +758 -758
- data/spec/unit/property_spec.rb +1231 -1231
- data/spec/unit/provider/apt_preference_spec.rb +87 -87
- data/spec/unit/provider/apt_repository_spec.rb +254 -254
- data/spec/unit/provider/apt_update_spec.rb +116 -116
- data/spec/unit/provider/cookbook_file/content_spec.rb +39 -39
- data/spec/unit/provider/cookbook_file_spec.rb +59 -59
- data/spec/unit/provider/cron/unix_spec.rb +144 -144
- data/spec/unit/provider/cron_spec.rb +1084 -1084
- data/spec/unit/provider/directory_spec.rb +300 -300
- data/spec/unit/provider/dsc_resource_spec.rb +343 -343
- data/spec/unit/provider/dsc_script_spec.rb +173 -173
- data/spec/unit/provider/execute_spec.rb +251 -251
- data/spec/unit/provider/file/content_spec.rb +114 -114
- data/spec/unit/provider/file_spec.rb +57 -57
- data/spec/unit/provider/git_spec.rb +782 -782
- data/spec/unit/provider/group/dscl_spec.rb +339 -339
- data/spec/unit/provider/group/gpasswd_spec.rb +119 -119
- data/spec/unit/provider/group/groupadd_spec.rb +194 -194
- data/spec/unit/provider/group/groupmod_spec.rb +136 -136
- data/spec/unit/provider/group/pw_spec.rb +141 -141
- data/spec/unit/provider/group/suse_spec.rb +90 -90
- data/spec/unit/provider/group/usermod_spec.rb +115 -115
- data/spec/unit/provider/group/windows_spec.rb +124 -124
- data/spec/unit/provider/group_spec.rb +286 -286
- data/spec/unit/provider/http_request_spec.rb +159 -159
- data/spec/unit/provider/ifconfig/aix_spec.rb +180 -180
- data/spec/unit/provider/ifconfig/debian_spec.rb +332 -332
- data/spec/unit/provider/ifconfig/redhat_spec.rb +83 -83
- data/spec/unit/provider/ifconfig_spec.rb +206 -206
- data/spec/unit/provider/launchd_spec.rb +268 -268
- data/spec/unit/provider/link_spec.rb +409 -409
- data/spec/unit/provider/log_spec.rb +94 -94
- data/spec/unit/provider/mdadm_spec.rb +140 -140
- data/spec/unit/provider/mount/aix_spec.rb +277 -277
- data/spec/unit/provider/mount/mount_spec.rb +527 -527
- data/spec/unit/provider/mount/solaris_spec.rb +822 -822
- data/spec/unit/provider/mount/windows_spec.rb +149 -149
- data/spec/unit/provider/mount_spec.rb +191 -191
- data/spec/unit/provider/ohai_spec.rb +84 -84
- data/spec/unit/provider/osx_profile_spec.rb +257 -257
- data/spec/unit/provider/package/apt_spec.rb +610 -610
- data/spec/unit/provider/package/bff_spec.rb +187 -187
- data/spec/unit/provider/package/cab_spec.rb +272 -272
- data/spec/unit/provider/package/chocolatey_spec.rb +507 -507
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +29 -29
- data/spec/unit/provider/package/dpkg_spec.rb +287 -287
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +274 -274
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +148 -148
- data/spec/unit/provider/package/freebsd/port_spec.rb +163 -163
- data/spec/unit/provider/package/homebrew_spec.rb +293 -293
- data/spec/unit/provider/package/ips_spec.rb +233 -233
- data/spec/unit/provider/package/macports_spec.rb +203 -203
- data/spec/unit/provider/package/msu_spec.rb +283 -283
- data/spec/unit/provider/package/openbsd_spec.rb +132 -132
- data/spec/unit/provider/package/pacman_spec.rb +194 -194
- data/spec/unit/provider/package/paludis_spec.rb +134 -134
- data/spec/unit/provider/package/portage_spec.rb +179 -179
- data/spec/unit/provider/package/powershell_spec.rb +501 -501
- data/spec/unit/provider/package/rpm_spec.rb +429 -429
- data/spec/unit/provider/package/rubygems_spec.rb +981 -981
- data/spec/unit/provider/package/smartos_spec.rb +110 -110
- data/spec/unit/provider/package/solaris_spec.rb +167 -167
- data/spec/unit/provider/package/windows/exe_spec.rb +201 -201
- data/spec/unit/provider/package/windows/msi_spec.rb +168 -168
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +78 -78
- data/spec/unit/provider/package/windows_spec.rb +463 -463
- data/spec/unit/provider/package/yum/python_helper_spec.rb +29 -29
- data/spec/unit/provider/package/yum/yum_cache_spec.rb +109 -109
- data/spec/unit/provider/package/zypper_spec.rb +487 -478
- data/spec/unit/provider/package_spec.rb +1013 -1013
- data/spec/unit/provider/powershell_script_spec.rb +116 -116
- data/spec/unit/provider/registry_key_spec.rb +487 -487
- data/spec/unit/provider/remote_directory_spec.rb +236 -236
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +245 -245
- data/spec/unit/provider/remote_file/content_spec.rb +253 -253
- data/spec/unit/provider/remote_file/fetcher_spec.rb +95 -95
- data/spec/unit/provider/remote_file/ftp_spec.rb +217 -217
- data/spec/unit/provider/remote_file/http_spec.rb +324 -324
- data/spec/unit/provider/remote_file/local_file_spec.rb +105 -105
- data/spec/unit/provider/remote_file/network_file_spec.rb +50 -50
- data/spec/unit/provider/remote_file/sftp_spec.rb +150 -150
- data/spec/unit/provider/remote_file_spec.rb +62 -62
- data/spec/unit/provider/route_spec.rb +270 -270
- data/spec/unit/provider/ruby_block_spec.rb +45 -45
- data/spec/unit/provider/script_spec.rb +157 -157
- data/spec/unit/provider/service/aix_service_spec.rb +195 -195
- data/spec/unit/provider/service/aixinit_service_spec.rb +272 -272
- data/spec/unit/provider/service/arch_service_spec.rb +324 -324
- data/spec/unit/provider/service/debian_service_spec.rb +249 -249
- data/spec/unit/provider/service/freebsd_service_spec.rb +617 -617
- data/spec/unit/provider/service/gentoo_service_spec.rb +144 -144
- data/spec/unit/provider/service/init_service_spec.rb +235 -235
- data/spec/unit/provider/service/insserv_service_spec.rb +75 -75
- data/spec/unit/provider/service/invokercd_service_spec.rb +211 -211
- data/spec/unit/provider/service/macosx_spec.rb +340 -340
- data/spec/unit/provider/service/openbsd_service_spec.rb +549 -549
- data/spec/unit/provider/service/redhat_spec.rb +250 -250
- data/spec/unit/provider/service/simple_service_spec.rb +169 -169
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +292 -292
- data/spec/unit/provider/service/systemd_service_spec.rb +364 -364
- data/spec/unit/provider/service/upstart_service_spec.rb +351 -351
- data/spec/unit/provider/service/windows_spec.rb +910 -910
- data/spec/unit/provider/service_spec.rb +168 -168
- data/spec/unit/provider/subversion_spec.rb +361 -361
- data/spec/unit/provider/systemd_unit_spec.rb +967 -967
- data/spec/unit/provider/template/content_spec.rb +169 -169
- data/spec/unit/provider/template_spec.rb +87 -87
- data/spec/unit/provider/user/aix_spec.rb +96 -96
- data/spec/unit/provider/user/dscl_spec.rb +920 -920
- data/spec/unit/provider/user/linux_spec.rb +74 -74
- data/spec/unit/provider/user/pw_spec.rb +235 -235
- data/spec/unit/provider/user/solaris_spec.rb +177 -177
- data/spec/unit/provider/user/windows_spec.rb +197 -197
- data/spec/unit/provider/user_spec.rb +478 -478
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +46 -46
- data/spec/unit/provider/windows_env_spec.rb +400 -400
- data/spec/unit/provider/windows_path_spec.rb +65 -65
- data/spec/unit/provider/windows_task_spec.rb +430 -430
- data/spec/unit/provider/yum_repository_spec.rb +35 -35
- data/spec/unit/provider/zypper_repository_spec.rb +126 -126
- data/spec/unit/provider_resolver_spec.rb +923 -923
- data/spec/unit/provider_spec.rb +201 -201
- data/spec/unit/pure_application_spec.rb +32 -32
- data/spec/unit/recipe_spec.rb +589 -589
- data/spec/unit/resource/apt_package_spec.rb +56 -56
- data/spec/unit/resource/apt_preference_spec.rb +57 -57
- data/spec/unit/resource/apt_repository_spec.rb +92 -92
- data/spec/unit/resource/apt_update_spec.rb +62 -62
- data/spec/unit/resource/bash_spec.rb +45 -45
- data/spec/unit/resource/batch_spec.rb +46 -46
- data/spec/unit/resource/bff_package_spec.rb +51 -51
- data/spec/unit/resource/breakpoint_spec.rb +64 -64
- data/spec/unit/resource/build_essential_spec.rb +43 -43
- data/spec/unit/resource/cab_package_spec.rb +64 -64
- data/spec/unit/resource/chef_gem_spec.rb +125 -125
- data/spec/unit/resource/chef_handler_spec.rb +40 -40
- data/spec/unit/resource/chocolatey_config_spec.rb +98 -98
- data/spec/unit/resource/chocolatey_package_spec.rb +91 -91
- data/spec/unit/resource/chocolatey_source_spec.rb +102 -102
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -45
- data/spec/unit/resource/conditional_spec.rb +254 -254
- data/spec/unit/resource/cookbook_file_spec.rb +93 -93
- data/spec/unit/resource/cron_access_spec.rb +36 -36
- data/spec/unit/resource/cron_d_spec.rb +90 -90
- data/spec/unit/resource/cron_spec.rb +173 -173
- data/spec/unit/resource/csh_spec.rb +45 -45
- data/spec/unit/resource/directory_spec.rb +69 -69
- data/spec/unit/resource/dmg_package_spec.rb +39 -39
- data/spec/unit/resource/dnf_package_spec.rb +108 -108
- data/spec/unit/resource/dpkg_package_spec.rb +50 -50
- data/spec/unit/resource/dsc_resource_spec.rb +102 -102
- data/spec/unit/resource/dsc_script_spec.rb +134 -134
- data/spec/unit/resource/execute_spec.rb +277 -277
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -103
- data/spec/unit/resource/file/verification_spec.rb +147 -147
- data/spec/unit/resource/file_spec.rb +127 -127
- data/spec/unit/resource/freebsd_package_spec.rb +103 -103
- data/spec/unit/resource/gem_package_spec.rb +67 -67
- data/spec/unit/resource/git_spec.rb +62 -62
- data/spec/unit/resource/group_spec.rb +165 -165
- data/spec/unit/resource/homebrew_cask_spec.rb +40 -40
- data/spec/unit/resource/homebrew_package_spec.rb +68 -68
- data/spec/unit/resource/homebrew_tap_spec.rb +44 -44
- data/spec/unit/resource/hostname_spec.rb +47 -47
- data/spec/unit/resource/http_request_spec.rb +65 -65
- data/spec/unit/resource/ifconfig_spec.rb +109 -109
- data/spec/unit/resource/ips_package_spec.rb +54 -54
- data/spec/unit/resource/kernel_module_spec.rb +48 -48
- data/spec/unit/resource/ksh_spec.rb +45 -45
- data/spec/unit/resource/launchd_spec.rb +40 -40
- data/spec/unit/resource/link_spec.rb +124 -124
- data/spec/unit/resource/locale_spec.rb +60 -60
- data/spec/unit/resource/log_spec.rb +64 -64
- data/spec/unit/resource/macos_user_defaults_spec.rb +35 -35
- data/spec/unit/resource/macports_package_spec.rb +51 -51
- data/spec/unit/resource/mdadm_spec.rb +104 -104
- data/spec/unit/resource/mount_spec.rb +178 -178
- data/spec/unit/resource/msu_package_spec.rb +63 -63
- data/spec/unit/resource/ohai_hint_spec.rb +44 -44
- data/spec/unit/resource/ohai_spec.rb +62 -62
- data/spec/unit/resource/openbsd_package_spec.rb +58 -58
- data/spec/unit/resource/openssl_dhparam.rb +61 -61
- data/spec/unit/resource/openssl_ec_private_key_spec.rb +64 -64
- data/spec/unit/resource/openssl_ec_public_key_spec.rb +43 -43
- data/spec/unit/resource/openssl_rsa_private_key_spec.rb +64 -64
- data/spec/unit/resource/openssl_rsa_public_key_spec.rb +43 -43
- data/spec/unit/resource/openssl_x509_certificate_spec.rb +72 -72
- data/spec/unit/resource/openssl_x509_crl_spec.rb +61 -61
- data/spec/unit/resource/openssl_x509_request.rb +68 -68
- data/spec/unit/resource/osx_profile_spec.rb +60 -60
- data/spec/unit/resource/package_spec.rb +108 -108
- data/spec/unit/resource/pacman_package_spec.rb +46 -46
- data/spec/unit/resource/paludis_package_spec.rb +36 -36
- data/spec/unit/resource/perl_spec.rb +44 -44
- data/spec/unit/resource/portage_package_spec.rb +46 -46
- data/spec/unit/resource/powershell_package_source_spec.rb +219 -219
- data/spec/unit/resource/powershell_package_spec.rb +98 -98
- data/spec/unit/resource/powershell_script_spec.rb +136 -136
- data/spec/unit/resource/python_spec.rb +40 -40
- data/spec/unit/resource/reboot_spec.rb +47 -47
- data/spec/unit/resource/registry_key_spec.rb +215 -215
- data/spec/unit/resource/remote_directory_spec.rb +105 -105
- data/spec/unit/resource/remote_file_spec.rb +220 -220
- data/spec/unit/resource/resource_notification_spec.rb +169 -169
- data/spec/unit/resource/rhsm_errata_level_spec.rb +50 -50
- data/spec/unit/resource/rhsm_errata_spec.rb +39 -39
- data/spec/unit/resource/rhsm_register_spec.rb +204 -204
- data/spec/unit/resource/rhsm_repo_spec.rb +64 -64
- data/spec/unit/resource/rhsm_subscription_spec.rb +98 -98
- data/spec/unit/resource/route_spec.rb +95 -95
- data/spec/unit/resource/rpm_package_spec.rb +62 -62
- data/spec/unit/resource/ruby_block_spec.rb +58 -58
- data/spec/unit/resource/ruby_spec.rb +39 -39
- data/spec/unit/resource/scm_spec.rb +173 -173
- data/spec/unit/resource/script_spec.rb +52 -52
- data/spec/unit/resource/service_spec.rb +206 -206
- data/spec/unit/resource/smartos_package_spec.rb +52 -52
- data/spec/unit/resource/solaris_package_spec.rb +54 -54
- data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +55 -55
- data/spec/unit/resource/subversion_spec.rb +91 -91
- data/spec/unit/resource/sudo_spec.rb +99 -99
- data/spec/unit/resource/swap_file_spec.rb +39 -39
- data/spec/unit/resource/sysctl_spec.rb +54 -54
- data/spec/unit/resource/systemd_unit_spec.rb +130 -130
- data/spec/unit/resource/template_spec.rb +222 -222
- data/spec/unit/resource/timezone.rb +39 -39
- data/spec/unit/resource/user_spec.rb +122 -122
- data/spec/unit/resource/windows_ad_join_spec.rb +51 -51
- data/spec/unit/resource/windows_auto_run_spec.rb +50 -50
- data/spec/unit/resource/windows_certificate.rb +83 -83
- data/spec/unit/resource/windows_env_spec.rb +75 -75
- data/spec/unit/resource/windows_feature.rb +64 -64
- data/spec/unit/resource/windows_feature_dism.rb +72 -72
- data/spec/unit/resource/windows_feature_powershell.rb +72 -72
- data/spec/unit/resource/windows_firewall_rule_spec.rb +401 -401
- data/spec/unit/resource/windows_font_spec.rb +43 -43
- data/spec/unit/resource/windows_package_spec.rb +105 -105
- data/spec/unit/resource/windows_pagefile_spec.rb +49 -49
- data/spec/unit/resource/windows_path_spec.rb +40 -40
- data/spec/unit/resource/windows_printer_port_spec.rb +62 -62
- data/spec/unit/resource/windows_printer_spec.rb +52 -52
- data/spec/unit/resource/windows_service_spec.rb +93 -93
- data/spec/unit/resource/windows_share.rb +39 -39
- data/spec/unit/resource/windows_shortcut_spec.rb +38 -38
- data/spec/unit/resource/windows_task_spec.rb +399 -399
- data/spec/unit/resource/windows_workgroup_spec.rb +74 -74
- data/spec/unit/resource/yum_package_spec.rb +150 -150
- data/spec/unit/resource/yum_repository_spec.rb +152 -152
- data/spec/unit/resource/zypper_package_spec.rb +51 -51
- data/spec/unit/resource/zypper_repository_spec.rb +115 -115
- data/spec/unit/resource_builder_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_list_spec.rb +137 -137
- data/spec/unit/resource_collection/resource_set_spec.rb +244 -244
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +144 -144
- data/spec/unit/resource_collection_spec.rb +408 -408
- data/spec/unit/resource_definition_spec.rb +117 -117
- data/spec/unit/resource_inspector_spec.rb +60 -60
- data/spec/unit/resource_reporter_spec.rb +782 -782
- data/spec/unit/resource_resolver_spec.rb +52 -52
- data/spec/unit/resource_spec.rb +1195 -1195
- data/spec/unit/role_spec.rb +358 -358
- data/spec/unit/run_context/child_run_context_spec.rb +133 -133
- data/spec/unit/run_context/cookbook_compiler_spec.rb +224 -224
- data/spec/unit/run_context_spec.rb +241 -241
- data/spec/unit/run_list/run_list_expansion_spec.rb +144 -144
- data/spec/unit/run_list/run_list_item_spec.rb +117 -117
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +197 -197
- data/spec/unit/run_list_spec.rb +312 -312
- data/spec/unit/run_lock_spec.rb +140 -140
- data/spec/unit/run_status_spec.rb +144 -144
- data/spec/unit/runner_spec.rb +398 -398
- data/spec/unit/scan_access_control_spec.rb +183 -183
- data/spec/unit/search/query_spec.rb +283 -283
- data/spec/unit/server_api_spec.rb +124 -124
- data/spec/unit/server_api_versions_spec.rb +66 -66
- data/spec/unit/shell/model_wrapper_spec.rb +96 -96
- data/spec/unit/shell/shell_ext_spec.rb +153 -153
- data/spec/unit/shell/shell_session_spec.rb +250 -250
- data/spec/unit/shell_spec.rb +162 -162
- data/spec/unit/user_spec.rb +275 -275
- data/spec/unit/user_v1_spec.rb +583 -583
- data/spec/unit/util/backup_spec.rb +141 -141
- data/spec/unit/util/diff_spec.rb +576 -576
- data/spec/unit/util/dsc/configuration_generator_spec.rb +193 -193
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +248 -248
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +200 -200
- data/spec/unit/util/dsc/resource_store.rb +78 -78
- data/spec/unit/util/editor_spec.rb +152 -152
- data/spec/unit/util/file_edit_spec.rb +224 -224
- data/spec/unit/util/powershell/cmdlet_spec.rb +106 -106
- data/spec/unit/util/powershell/ps_credential_spec.rb +44 -44
- data/spec/unit/util/selinux_spec.rb +157 -157
- data/spec/unit/util/threaded_job_queue_spec.rb +51 -51
- data/spec/unit/util/windows/logon_session_spec.rb +285 -285
- data/spec/unit/version/platform_spec.rb +60 -60
- data/spec/unit/version_class_spec.rb +171 -171
- data/spec/unit/version_constraint/platform_spec.rb +45 -45
- data/spec/unit/version_constraint_spec.rb +179 -179
- data/spec/unit/version_string_spec.rb +79 -79
- data/spec/unit/win32/error_spec.rb +77 -77
- data/spec/unit/win32/link_spec.rb +73 -73
- data/spec/unit/win32/registry_spec.rb +394 -394
- data/spec/unit/win32/security_spec.rb +134 -134
- data/spec/unit/windows_service_spec.rb +118 -118
- data/tasks/.DS_Store +0 -0
- data/tasks/announce.rb +58 -58
- data/tasks/bin/run_external_test +29 -29
- data/tasks/dependencies.rb +58 -58
- data/tasks/maintainers.rb +211 -211
- data/tasks/rspec.rb +90 -90
- data/tasks/templates/prerelease.md.erb +35 -35
- data/tasks/templates/release.md.erb +34 -34
- metadata +34 -6
@@ -1,1013 +1,1013 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
-
# Copyright:: Copyright 2008-2018, Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require "spec_helper"
|
20
|
-
|
21
|
-
describe Chef::Provider::Package do
|
22
|
-
let(:node) do
|
23
|
-
node = Chef::Node.new
|
24
|
-
node.automatic_attrs[:platform] = :just_testing
|
25
|
-
node.automatic_attrs[:platform_version] = :just_testing
|
26
|
-
node
|
27
|
-
end
|
28
|
-
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
29
|
-
let(:logger) { double("Mixlib::Log::Child").as_null_object }
|
30
|
-
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
31
|
-
let(:new_resource) { Chef::Resource::Package.new("install emacs") }
|
32
|
-
let(:current_resource) { Chef::Resource::Package.new("install emacs") }
|
33
|
-
let(:candidate_version) { "1.0" }
|
34
|
-
let(:provider) do
|
35
|
-
new_resource.package_name = "emacs"
|
36
|
-
current_resource.package_name = "emacs"
|
37
|
-
provider = Chef::Provider::Package.new(new_resource, run_context)
|
38
|
-
provider.current_resource = current_resource
|
39
|
-
provider.candidate_version = candidate_version
|
40
|
-
provider
|
41
|
-
end
|
42
|
-
|
43
|
-
before do
|
44
|
-
allow(run_context).to receive(:logger).and_return(logger)
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "when installing a package" do
|
48
|
-
before(:each) do
|
49
|
-
provider.current_resource = current_resource
|
50
|
-
allow(provider).to receive(:install_package).and_return(true)
|
51
|
-
end
|
52
|
-
|
53
|
-
it "raises a Chef::Exceptions::InvalidResourceSpecification if both multipackage and source are provided" do
|
54
|
-
new_resource.package_name(%w{a b})
|
55
|
-
new_resource.source("foo")
|
56
|
-
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::InvalidResourceSpecification)
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should raise a Chef::Exceptions::Package if no version is specified, and no candidate is available" do
|
60
|
-
provider.candidate_version = nil
|
61
|
-
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
62
|
-
end
|
63
|
-
|
64
|
-
it "should call preseed_package if a response_file is given" do
|
65
|
-
new_resource.response_file("foo")
|
66
|
-
expect(provider).to receive(:get_preseed_file).with(
|
67
|
-
new_resource.package_name,
|
68
|
-
provider.candidate_version
|
69
|
-
).and_return("/var/cache/preseed-test")
|
70
|
-
|
71
|
-
expect(provider).to receive(:preseed_package).with(
|
72
|
-
"/var/cache/preseed-test"
|
73
|
-
).and_return(true)
|
74
|
-
provider.run_action(:install)
|
75
|
-
end
|
76
|
-
|
77
|
-
it "should not call preseed_package if a response_file is not given" do
|
78
|
-
expect(provider).not_to receive(:preseed_package)
|
79
|
-
provider.run_action(:install)
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should install the package at the candidate_version if it is not already installed" do
|
83
|
-
expect(provider).to receive(:install_package).with(
|
84
|
-
new_resource.package_name,
|
85
|
-
provider.candidate_version
|
86
|
-
).and_return(true)
|
87
|
-
provider.run_action(:install)
|
88
|
-
expect(new_resource).to be_updated_by_last_action
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should install the package at the version specified if it is not already installed" do
|
92
|
-
new_resource.version("1.0")
|
93
|
-
expect(provider).to receive(:install_package).with(
|
94
|
-
new_resource.package_name,
|
95
|
-
new_resource.version
|
96
|
-
).and_return(true)
|
97
|
-
provider.run_action(:install)
|
98
|
-
expect(new_resource).to be_updated_by_last_action
|
99
|
-
end
|
100
|
-
|
101
|
-
it "should install the package at the version specified if a different version is installed" do
|
102
|
-
new_resource.version("1.0")
|
103
|
-
allow(current_resource).to receive(:version).and_return("0.99")
|
104
|
-
expect(provider).to receive(:install_package).with(
|
105
|
-
new_resource.package_name,
|
106
|
-
new_resource.version
|
107
|
-
).and_return(true)
|
108
|
-
provider.run_action(:install)
|
109
|
-
expect(new_resource).to be_updated_by_last_action
|
110
|
-
end
|
111
|
-
|
112
|
-
it "should not install the package if it is already installed and no version is specified" do
|
113
|
-
current_resource.version("1.0")
|
114
|
-
expect(provider).not_to receive(:install_package)
|
115
|
-
provider.run_action(:install)
|
116
|
-
expect(new_resource).not_to be_updated_by_last_action
|
117
|
-
end
|
118
|
-
|
119
|
-
it "should not install the package if it is already installed at the version specified" do
|
120
|
-
current_resource.version("1.0")
|
121
|
-
new_resource.version("1.0")
|
122
|
-
expect(provider).not_to receive(:install_package)
|
123
|
-
provider.run_action(:install)
|
124
|
-
expect(new_resource).not_to be_updated_by_last_action
|
125
|
-
end
|
126
|
-
|
127
|
-
it "should call the candidate_version accessor only once if the package is already installed and no version is specified" do
|
128
|
-
current_resource.version("1.0")
|
129
|
-
allow(provider).to receive(:candidate_version).and_return("1.0")
|
130
|
-
provider.run_action(:install)
|
131
|
-
end
|
132
|
-
|
133
|
-
it "should call the candidate_version accessor only once if the package is already installed at the version specified" do
|
134
|
-
current_resource.version("1.0")
|
135
|
-
new_resource.version("1.0")
|
136
|
-
provider.run_action(:install)
|
137
|
-
end
|
138
|
-
|
139
|
-
it "should set the resource to updated if it installs the package" do
|
140
|
-
provider.run_action(:install)
|
141
|
-
expect(new_resource).to be_updated
|
142
|
-
end
|
143
|
-
|
144
|
-
end
|
145
|
-
|
146
|
-
describe "when upgrading the package" do
|
147
|
-
before(:each) do
|
148
|
-
allow(provider).to receive(:upgrade_package).and_return(true)
|
149
|
-
end
|
150
|
-
|
151
|
-
it "should upgrade the package if the current version is not the candidate version" do
|
152
|
-
expect(provider).to receive(:upgrade_package).with(
|
153
|
-
new_resource.package_name,
|
154
|
-
provider.candidate_version
|
155
|
-
).and_return(true)
|
156
|
-
provider.run_action(:upgrade)
|
157
|
-
expect(new_resource).to be_updated_by_last_action
|
158
|
-
end
|
159
|
-
|
160
|
-
it "should set the resource to updated if it installs the package" do
|
161
|
-
provider.run_action(:upgrade)
|
162
|
-
expect(new_resource).to be_updated
|
163
|
-
end
|
164
|
-
|
165
|
-
it "should not install the package if the current version is the candidate version" do
|
166
|
-
current_resource.version "1.0"
|
167
|
-
expect(provider).not_to receive(:upgrade_package)
|
168
|
-
provider.run_action(:upgrade)
|
169
|
-
expect(new_resource).not_to be_updated_by_last_action
|
170
|
-
end
|
171
|
-
|
172
|
-
it "should print the word 'uninstalled' if there was no original version" do
|
173
|
-
allow(current_resource).to receive(:version).and_return(nil)
|
174
|
-
expect(logger).to receive(:info).with("package[install emacs] upgraded(allow_downgrade) emacs to 1.0")
|
175
|
-
provider.run_action(:upgrade)
|
176
|
-
expect(new_resource).to be_updated_by_last_action
|
177
|
-
end
|
178
|
-
|
179
|
-
it "should raise a Chef::Exceptions::Package if current version and candidate are nil" do
|
180
|
-
allow(current_resource).to receive(:version).and_return(nil)
|
181
|
-
provider.candidate_version = nil
|
182
|
-
expect { provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
|
183
|
-
end
|
184
|
-
|
185
|
-
it "should not install the package if candidate version is nil" do
|
186
|
-
current_resource.version "1.0"
|
187
|
-
provider.candidate_version = nil
|
188
|
-
expect(provider).not_to receive(:upgrade_package)
|
189
|
-
provider.run_action(:upgrade)
|
190
|
-
expect(new_resource).not_to be_updated_by_last_action
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
|
-
describe "When removing the package" do
|
195
|
-
before(:each) do
|
196
|
-
allow(provider).to receive(:remove_package).and_return(true)
|
197
|
-
current_resource.version "1.4.2"
|
198
|
-
end
|
199
|
-
|
200
|
-
it "should remove the package if it is installed" do
|
201
|
-
expect(provider).to be_removing_package
|
202
|
-
expect(provider).to receive(:remove_package).with("emacs", nil)
|
203
|
-
provider.run_action(:remove)
|
204
|
-
expect(new_resource).to be_updated
|
205
|
-
expect(new_resource).to be_updated_by_last_action
|
206
|
-
end
|
207
|
-
|
208
|
-
it "should remove the package at a specific version if it is installed at that version" do
|
209
|
-
new_resource.version "1.4.2"
|
210
|
-
expect(provider).to be_removing_package
|
211
|
-
expect(provider).to receive(:remove_package).with("emacs", "1.4.2")
|
212
|
-
provider.run_action(:remove)
|
213
|
-
expect(new_resource).to be_updated_by_last_action
|
214
|
-
end
|
215
|
-
|
216
|
-
it "should not remove the package at a specific version if it is not installed at that version" do
|
217
|
-
new_resource.version "1.0"
|
218
|
-
expect(provider).not_to be_removing_package
|
219
|
-
expect(provider).not_to receive(:remove_package)
|
220
|
-
provider.run_action(:remove)
|
221
|
-
expect(new_resource).not_to be_updated_by_last_action
|
222
|
-
end
|
223
|
-
|
224
|
-
it "should not remove the package if it is not installed" do
|
225
|
-
expect(provider).not_to receive(:remove_package)
|
226
|
-
allow(current_resource).to receive(:version).and_return(nil)
|
227
|
-
provider.run_action(:remove)
|
228
|
-
expect(new_resource).not_to be_updated_by_last_action
|
229
|
-
end
|
230
|
-
|
231
|
-
it "should set the resource to updated if it removes the package" do
|
232
|
-
provider.run_action(:remove)
|
233
|
-
expect(new_resource).to be_updated
|
234
|
-
end
|
235
|
-
|
236
|
-
end
|
237
|
-
|
238
|
-
describe "When purging the package" do
|
239
|
-
before(:each) do
|
240
|
-
allow(provider).to receive(:purge_package).and_return(true)
|
241
|
-
current_resource.version "1.4.2"
|
242
|
-
end
|
243
|
-
|
244
|
-
it "should purge the package if it is installed" do
|
245
|
-
expect(provider).to be_removing_package
|
246
|
-
expect(provider).to receive(:purge_package).with("emacs", nil)
|
247
|
-
provider.run_action(:purge)
|
248
|
-
expect(new_resource).to be_updated
|
249
|
-
expect(new_resource).to be_updated_by_last_action
|
250
|
-
end
|
251
|
-
|
252
|
-
it "should purge the package at a specific version if it is installed at that version" do
|
253
|
-
new_resource.version "1.4.2"
|
254
|
-
expect(provider).to be_removing_package
|
255
|
-
expect(provider).to receive(:purge_package).with("emacs", "1.4.2")
|
256
|
-
provider.run_action(:purge)
|
257
|
-
expect(new_resource).to be_updated_by_last_action
|
258
|
-
end
|
259
|
-
|
260
|
-
it "should not purge the package at a specific version if it is not installed at that version" do
|
261
|
-
new_resource.version "1.0"
|
262
|
-
expect(provider).not_to be_removing_package
|
263
|
-
expect(provider).not_to receive(:purge_package)
|
264
|
-
provider.run_action(:purge)
|
265
|
-
expect(new_resource).not_to be_updated_by_last_action
|
266
|
-
end
|
267
|
-
|
268
|
-
it "should not purge the package if it is not installed" do
|
269
|
-
current_resource.instance_variable_set(:@version, nil)
|
270
|
-
expect(provider).not_to be_removing_package
|
271
|
-
|
272
|
-
expect(provider).not_to receive(:purge_package)
|
273
|
-
provider.run_action(:purge)
|
274
|
-
expect(new_resource).not_to be_updated_by_last_action
|
275
|
-
end
|
276
|
-
|
277
|
-
it "should set the resource to updated if it purges the package" do
|
278
|
-
provider.run_action(:purge)
|
279
|
-
expect(new_resource).to be_updated
|
280
|
-
end
|
281
|
-
|
282
|
-
end
|
283
|
-
|
284
|
-
describe "when reconfiguring the package" do
|
285
|
-
before(:each) do
|
286
|
-
allow(provider).to receive(:reconfig_package).and_return(true)
|
287
|
-
end
|
288
|
-
|
289
|
-
it "should info log, reconfigure the package and update the resource" do
|
290
|
-
allow(current_resource).to receive(:version).and_return("1.0")
|
291
|
-
allow(new_resource).to receive(:response_file).and_return(true)
|
292
|
-
expect(provider).to receive(:get_preseed_file).and_return("/var/cache/preseed-test")
|
293
|
-
allow(provider).to receive(:preseed_package).and_return(true)
|
294
|
-
allow(provider).to receive(:reconfig_package).and_return(true)
|
295
|
-
expect(logger).to receive(:info).with("package[install emacs] reconfigured")
|
296
|
-
expect(provider).to receive(:reconfig_package)
|
297
|
-
provider.run_action(:reconfig)
|
298
|
-
expect(new_resource).to be_updated
|
299
|
-
expect(new_resource).to be_updated_by_last_action
|
300
|
-
end
|
301
|
-
|
302
|
-
it "should debug log and not reconfigure the package if the package is not installed" do
|
303
|
-
allow(current_resource).to receive(:version).and_return(nil)
|
304
|
-
expect(logger).to receive(:trace).with("package[install emacs] is NOT installed - nothing to do")
|
305
|
-
expect(provider).not_to receive(:reconfig_package)
|
306
|
-
provider.run_action(:reconfig)
|
307
|
-
expect(new_resource).not_to be_updated_by_last_action
|
308
|
-
end
|
309
|
-
|
310
|
-
it "should debug log and not reconfigure the package if no response_file is given" do
|
311
|
-
allow(current_resource).to receive(:version).and_return("1.0")
|
312
|
-
allow(new_resource).to receive(:response_file).and_return(nil)
|
313
|
-
expect(logger).to receive(:trace).with("package[install emacs] no response_file provided - nothing to do")
|
314
|
-
expect(provider).not_to receive(:reconfig_package)
|
315
|
-
provider.run_action(:reconfig)
|
316
|
-
expect(new_resource).not_to be_updated_by_last_action
|
317
|
-
end
|
318
|
-
|
319
|
-
it "should debug log and not reconfigure the package if the response_file has not changed" do
|
320
|
-
allow(current_resource).to receive(:version).and_return("1.0")
|
321
|
-
allow(new_resource).to receive(:response_file).and_return(true)
|
322
|
-
expect(provider).to receive(:get_preseed_file).and_return(false)
|
323
|
-
allow(provider).to receive(:preseed_package).and_return(false)
|
324
|
-
expect(logger).to receive(:trace).with("package[install emacs] preseeding has not changed - nothing to do")
|
325
|
-
expect(provider).not_to receive(:reconfig_package)
|
326
|
-
provider.run_action(:reconfig)
|
327
|
-
expect(new_resource).not_to be_updated_by_last_action
|
328
|
-
end
|
329
|
-
end
|
330
|
-
|
331
|
-
describe "When locking the package" do
|
332
|
-
before(:each) do
|
333
|
-
allow(provider).to receive(:lock_package).with(
|
334
|
-
new_resource.package_name,
|
335
|
-
nil
|
336
|
-
).and_return(true)
|
337
|
-
end
|
338
|
-
|
339
|
-
it "should lock the package if it is unlocked" do
|
340
|
-
allow(provider).to receive(:package_locked).with(
|
341
|
-
new_resource.package_name,
|
342
|
-
nil
|
343
|
-
).and_return(false)
|
344
|
-
provider.run_action(:lock)
|
345
|
-
end
|
346
|
-
|
347
|
-
it "should not lock the package if it is already locked" do
|
348
|
-
allow(provider).to receive(:package_locked).with(
|
349
|
-
new_resource.package_name,
|
350
|
-
nil
|
351
|
-
).and_return(true)
|
352
|
-
expect(provider).not_to receive(:lock_package)
|
353
|
-
provider.run_action(:lock)
|
354
|
-
expect(new_resource).not_to be_updated_by_last_action
|
355
|
-
end
|
356
|
-
|
357
|
-
it "should set the resource to updated if it locks the package" do
|
358
|
-
allow(provider).to receive(:package_locked).with(
|
359
|
-
new_resource.package_name,
|
360
|
-
nil
|
361
|
-
).and_return(false)
|
362
|
-
provider.run_action(:lock)
|
363
|
-
expect(new_resource).to be_updated
|
364
|
-
end
|
365
|
-
end
|
366
|
-
|
367
|
-
describe "When unlocking the package" do
|
368
|
-
before(:each) do
|
369
|
-
allow(provider).to receive(:unlock_package).and_return(true)
|
370
|
-
end
|
371
|
-
|
372
|
-
it "should unlock the package if it is locked" do
|
373
|
-
allow(provider).to receive(:package_locked).with(
|
374
|
-
new_resource.package_name,
|
375
|
-
nil
|
376
|
-
).and_return(true)
|
377
|
-
expect(provider).to receive(:unlock_package)
|
378
|
-
provider.run_action(:unlock)
|
379
|
-
end
|
380
|
-
|
381
|
-
it "should not unlock the package if it is already unlocked" do
|
382
|
-
allow(provider).to receive(:package_locked).with(
|
383
|
-
new_resource.package_name,
|
384
|
-
nil
|
385
|
-
).and_return(false)
|
386
|
-
expect(provider).not_to receive(:unlock_package)
|
387
|
-
provider.run_action(:unlock)
|
388
|
-
expect(new_resource).not_to be_updated_by_last_action
|
389
|
-
end
|
390
|
-
|
391
|
-
it "should set the resource to updated if it unlocks the package" do
|
392
|
-
allow(provider).to receive(:package_locked).with(
|
393
|
-
new_resource.package_name,
|
394
|
-
nil
|
395
|
-
).and_return(true)
|
396
|
-
provider.run_action(:unlock)
|
397
|
-
expect(new_resource).to be_updated
|
398
|
-
end
|
399
|
-
end
|
400
|
-
|
401
|
-
describe "when running commands to be implemented by subclasses" do
|
402
|
-
it "should raises UnsupportedAction for install" do
|
403
|
-
expect { provider.install_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
404
|
-
end
|
405
|
-
|
406
|
-
it "should raises UnsupportedAction for upgrade" do
|
407
|
-
expect { provider.upgrade_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
408
|
-
end
|
409
|
-
|
410
|
-
it "should raises UnsupportedAction for remove" do
|
411
|
-
expect { provider.remove_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
412
|
-
end
|
413
|
-
|
414
|
-
it "should raises UnsupportedAction for purge" do
|
415
|
-
expect { provider.purge_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
416
|
-
end
|
417
|
-
|
418
|
-
it "should raise UnsupportedAction for preseed_package" do
|
419
|
-
preseed_file = "/tmp/sun-jdk-package-preseed-file.seed"
|
420
|
-
expect { provider.preseed_package(preseed_file) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
421
|
-
end
|
422
|
-
|
423
|
-
it "should raise UnsupportedAction for reconfig" do
|
424
|
-
expect { provider.reconfig_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
425
|
-
end
|
426
|
-
|
427
|
-
it "should raise UnsupportedAction for lock" do
|
428
|
-
expect { provider.lock_package("emacs", nil) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
429
|
-
end
|
430
|
-
|
431
|
-
it "should raise UnsupportedAction for unlock" do
|
432
|
-
expect { provider.unlock_package("emacs", nil) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
433
|
-
end
|
434
|
-
end
|
435
|
-
|
436
|
-
describe "when given a response file" do
|
437
|
-
let(:cookbook_repo) { File.expand_path(File.join(CHEF_SPEC_DATA, "cookbooks")) }
|
438
|
-
let(:cookbook_loader) do
|
439
|
-
Chef::Cookbook::FileVendor.fetch_from_disk(cookbook_repo)
|
440
|
-
Chef::CookbookLoader.new(cookbook_repo)
|
441
|
-
end
|
442
|
-
let(:cookbook_collection) do
|
443
|
-
cookbook_loader.load_cookbooks
|
444
|
-
Chef::CookbookCollection.new(cookbook_loader)
|
445
|
-
end
|
446
|
-
let(:run_context) { Chef::RunContext.new(node, cookbook_collection, events) }
|
447
|
-
let(:new_resource) do
|
448
|
-
new_resource = Chef::Resource::Package.new("emacs")
|
449
|
-
new_resource.response_file("java.response")
|
450
|
-
new_resource.cookbook_name = "java"
|
451
|
-
new_resource
|
452
|
-
end
|
453
|
-
|
454
|
-
describe "creating the cookbook file resource to fetch the response file" do
|
455
|
-
before do
|
456
|
-
expect(Chef::FileCache).to receive(:create_cache_path).with("preseed/java").and_return("/tmp/preseed/java")
|
457
|
-
end
|
458
|
-
|
459
|
-
it "sets the preseed resource's runcontext to its own run context" do
|
460
|
-
allow(Chef::FileCache).to receive(:create_cache_path).and_return("/tmp/preseed/java")
|
461
|
-
expect(provider.preseed_resource("java", "6").run_context).not_to be_nil
|
462
|
-
expect(provider.preseed_resource("java", "6").run_context).to equal(provider.run_context)
|
463
|
-
end
|
464
|
-
|
465
|
-
it "should set the cookbook name of the remote file to the new resources cookbook name" do
|
466
|
-
expect(provider.preseed_resource("java", "6").cookbook_name).to eq("java")
|
467
|
-
end
|
468
|
-
|
469
|
-
it "should set remote files source to the new resources response file" do
|
470
|
-
expect(provider.preseed_resource("java", "6").source).to eq("java.response")
|
471
|
-
end
|
472
|
-
|
473
|
-
it "should never back up the cached response file" do
|
474
|
-
expect(provider.preseed_resource("java", "6").backup).to be_falsey
|
475
|
-
end
|
476
|
-
|
477
|
-
it "sets the install path of the resource to $file_cache/$cookbook/$pkg_name-$pkg_version.seed" do
|
478
|
-
expect(provider.preseed_resource("java", "6").path).to eq("/tmp/preseed/java/java-6.seed")
|
479
|
-
end
|
480
|
-
end
|
481
|
-
|
482
|
-
describe "when installing the preseed file to the cache location" do
|
483
|
-
let(:response_file_destination) { Dir.tmpdir + "/preseed--java--java-6.seed" }
|
484
|
-
let(:response_file_resource) do
|
485
|
-
response_file_resource = Chef::Resource::CookbookFile.new(response_file_destination, run_context)
|
486
|
-
response_file_resource.cookbook_name = "java"
|
487
|
-
response_file_resource.backup(false)
|
488
|
-
response_file_resource.source("java.response")
|
489
|
-
response_file_resource
|
490
|
-
end
|
491
|
-
|
492
|
-
before do
|
493
|
-
expect(provider).to receive(:preseed_resource).with("java", "6").and_return(response_file_resource)
|
494
|
-
end
|
495
|
-
|
496
|
-
after do
|
497
|
-
FileUtils.rm(response_file_destination) if ::File.exist?(response_file_destination)
|
498
|
-
end
|
499
|
-
|
500
|
-
it "creates the preseed file in the cache" do
|
501
|
-
expect(response_file_resource).to receive(:run_action).with(:create)
|
502
|
-
provider.get_preseed_file("java", "6")
|
503
|
-
end
|
504
|
-
|
505
|
-
it "returns the path to the response file if the response file was updated" do
|
506
|
-
expect(provider.get_preseed_file("java", "6")).to eq(response_file_destination)
|
507
|
-
end
|
508
|
-
|
509
|
-
it "should return false if the response file has not been updated" do
|
510
|
-
response_file_resource.updated_by_last_action(false)
|
511
|
-
expect(response_file_resource).not_to be_updated_by_last_action
|
512
|
-
# don't let the response_file_resource set updated to true
|
513
|
-
expect(response_file_resource).to receive(:run_action).with(:create)
|
514
|
-
expect(provider.get_preseed_file("java", "6")).to be(false)
|
515
|
-
end
|
516
|
-
|
517
|
-
end
|
518
|
-
|
519
|
-
end
|
520
|
-
end
|
521
|
-
|
522
|
-
describe "Subclass with use_multipackage_api" do
|
523
|
-
class MyPackageResource < Chef::Resource::Package
|
524
|
-
end
|
525
|
-
|
526
|
-
class MyPackageProvider < Chef::Provider::Package
|
527
|
-
use_multipackage_api
|
528
|
-
end
|
529
|
-
|
530
|
-
let(:node) { Chef::Node.new }
|
531
|
-
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
532
|
-
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
533
|
-
let(:new_resource) { MyPackageResource.new("installs the packages") }
|
534
|
-
let(:current_resource) { MyPackageResource.new("installs the packages") }
|
535
|
-
let(:provider) do
|
536
|
-
provider = MyPackageProvider.new(new_resource, run_context)
|
537
|
-
provider.current_resource = current_resource
|
538
|
-
provider
|
539
|
-
end
|
540
|
-
|
541
|
-
it "has use_multipackage_api? methods on the class and instance" do
|
542
|
-
expect(MyPackageProvider.use_multipackage_api?).to be true
|
543
|
-
expect(provider.use_multipackage_api?).to be true
|
544
|
-
end
|
545
|
-
|
546
|
-
context "#a_to_s utility for subclasses" do
|
547
|
-
before(:each) do
|
548
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
549
|
-
end
|
550
|
-
|
551
|
-
it "converts varargs of strings to a single string" do
|
552
|
-
expect(provider.send(:a_to_s, "a", nil, "b", "", "c", " ", "d e", "f-g")).to eq("a b c d e f-g")
|
553
|
-
end
|
554
|
-
|
555
|
-
it "converts an array of strings to a single string" do
|
556
|
-
expect(provider.send(:a_to_s, ["a", nil, "b", "", "c", " ", "d e", "f-g"])).to eq("a b c d e f-g")
|
557
|
-
end
|
558
|
-
|
559
|
-
it "converts a mishmash of array args to a single string" do
|
560
|
-
expect(provider.send(:a_to_s, "a", [ nil, "b", "", [ "c" ] ], " ", [ "d e", "f-g" ])).to eq("a b c d e f-g")
|
561
|
-
end
|
562
|
-
end
|
563
|
-
|
564
|
-
it "when user passes string to package_name, passes arrays to install_package" do
|
565
|
-
new_resource.package_name "vim"
|
566
|
-
new_resource.version nil
|
567
|
-
provider.candidate_version = [ "1.0" ]
|
568
|
-
expect(provider).to receive(:install_package).with(
|
569
|
-
[ "vim" ],
|
570
|
-
[ "1.0" ]
|
571
|
-
).and_return(true)
|
572
|
-
provider.run_action(:install)
|
573
|
-
expect(new_resource).to be_updated_by_last_action
|
574
|
-
expect(new_resource.version).to eql(nil)
|
575
|
-
end
|
576
|
-
|
577
|
-
it "when user pases string to package_name and version, passes arrays to install_package" do
|
578
|
-
new_resource.package_name "vim"
|
579
|
-
new_resource.version "1.0"
|
580
|
-
provider.candidate_version = [ "1.0" ]
|
581
|
-
expect(provider).to receive(:install_package).with(
|
582
|
-
[ "vim" ],
|
583
|
-
[ "1.0" ]
|
584
|
-
).and_return(true)
|
585
|
-
provider.run_action(:install)
|
586
|
-
expect(new_resource).to be_updated_by_last_action
|
587
|
-
expect(new_resource.version).to eql("1.0")
|
588
|
-
end
|
589
|
-
|
590
|
-
it "when user passes string to package_name, passes arrays to upgrade_package" do
|
591
|
-
new_resource.package_name "vim"
|
592
|
-
new_resource.version nil
|
593
|
-
provider.candidate_version = [ "1.0" ]
|
594
|
-
expect(provider).to receive(:upgrade_package).with(
|
595
|
-
[ "vim" ],
|
596
|
-
[ "1.0" ]
|
597
|
-
).and_return(true)
|
598
|
-
provider.run_action(:upgrade)
|
599
|
-
expect(new_resource).to be_updated_by_last_action
|
600
|
-
expect(new_resource.version).to eql(nil)
|
601
|
-
end
|
602
|
-
|
603
|
-
it "when user pases string to package_name and version, passes arrays to upgrade_package" do
|
604
|
-
new_resource.package_name "vim"
|
605
|
-
new_resource.version "1.0"
|
606
|
-
provider.candidate_version = [ "1.0" ]
|
607
|
-
expect(provider).to receive(:upgrade_package).with(
|
608
|
-
[ "vim" ],
|
609
|
-
[ "1.0" ]
|
610
|
-
).and_return(true)
|
611
|
-
provider.run_action(:upgrade)
|
612
|
-
expect(new_resource).to be_updated_by_last_action
|
613
|
-
expect(new_resource.version).to eql("1.0")
|
614
|
-
end
|
615
|
-
|
616
|
-
it "when user passes string to package_name, passes arrays to remove_package" do
|
617
|
-
new_resource.package_name "vim"
|
618
|
-
current_resource.package_name "vim"
|
619
|
-
current_resource.version [ "1.0" ]
|
620
|
-
provider.candidate_version = [ "1.0" ]
|
621
|
-
expect(provider).to receive(:remove_package).with(
|
622
|
-
[ "vim" ],
|
623
|
-
[ nil ]
|
624
|
-
).and_return(true)
|
625
|
-
provider.run_action(:remove)
|
626
|
-
expect(new_resource).to be_updated_by_last_action
|
627
|
-
expect(new_resource.version).to eql(nil)
|
628
|
-
end
|
629
|
-
|
630
|
-
it "when user passes string to package_name, passes arrays to purge_package" do
|
631
|
-
new_resource.package_name "vim"
|
632
|
-
current_resource.package_name "vim"
|
633
|
-
current_resource.version [ "1.0" ]
|
634
|
-
provider.candidate_version = [ "1.0" ]
|
635
|
-
expect(provider).to receive(:purge_package).with(
|
636
|
-
[ "vim" ],
|
637
|
-
[ nil ]
|
638
|
-
).and_return(true)
|
639
|
-
provider.run_action(:purge)
|
640
|
-
expect(new_resource).to be_updated_by_last_action
|
641
|
-
expect(new_resource.version).to eql(nil)
|
642
|
-
end
|
643
|
-
|
644
|
-
it "when user passes string to package_name, passes arrays to reconfig_package" do
|
645
|
-
new_resource.package_name "vim"
|
646
|
-
current_resource.package_name "vim"
|
647
|
-
current_resource.version [ "1.0" ]
|
648
|
-
allow(new_resource).to receive(:response_file).and_return(true)
|
649
|
-
expect(provider).to receive(:get_preseed_file).and_return("/var/cache/preseed-test")
|
650
|
-
allow(provider).to receive(:preseed_package).and_return(true)
|
651
|
-
allow(provider).to receive(:reconfig_package).and_return(true)
|
652
|
-
expect(provider).to receive(:reconfig_package).with(
|
653
|
-
[ "vim" ],
|
654
|
-
[ "1.0" ]
|
655
|
-
).and_return(true)
|
656
|
-
provider.run_action(:reconfig)
|
657
|
-
expect(new_resource).to be_updated_by_last_action
|
658
|
-
end
|
659
|
-
end
|
660
|
-
|
661
|
-
describe "Chef::Provider::Package - Multi" do
|
662
|
-
let(:node) { Chef::Node.new }
|
663
|
-
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
664
|
-
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
665
|
-
let(:new_resource) { Chef::Resource::Package.new(%w{emacs vi}) }
|
666
|
-
let(:current_resource) { Chef::Resource::Package.new(%w{emacs vi}) }
|
667
|
-
let(:candidate_version) { [ "1.0", "6.2" ] }
|
668
|
-
class MyPackageProvider < Chef::Provider::Package
|
669
|
-
use_multipackage_api
|
670
|
-
end
|
671
|
-
let(:provider) do
|
672
|
-
provider = MyPackageProvider.new(new_resource, run_context)
|
673
|
-
provider.current_resource = current_resource
|
674
|
-
provider.candidate_version = candidate_version
|
675
|
-
provider
|
676
|
-
end
|
677
|
-
|
678
|
-
describe "when installing multiple packages" do
|
679
|
-
before(:each) do
|
680
|
-
provider.current_resource = current_resource
|
681
|
-
allow(provider).to receive(:install_package).and_return(true)
|
682
|
-
end
|
683
|
-
|
684
|
-
it "installs the candidate versions when none are installed" do
|
685
|
-
expect(provider).to receive(:install_package).with(
|
686
|
-
%w{emacs vi},
|
687
|
-
["1.0", "6.2"]
|
688
|
-
).and_return(true)
|
689
|
-
provider.run_action(:install)
|
690
|
-
expect(new_resource).to be_updated
|
691
|
-
end
|
692
|
-
|
693
|
-
it "installs the candidate versions when some are installed" do
|
694
|
-
expect(provider).to receive(:install_package).with(
|
695
|
-
[ "vi" ],
|
696
|
-
[ "6.2" ]
|
697
|
-
).and_return(true)
|
698
|
-
current_resource.version(["1.0", nil])
|
699
|
-
provider.run_action(:install)
|
700
|
-
expect(new_resource).to be_updated
|
701
|
-
end
|
702
|
-
|
703
|
-
it "installs the specified version when some are out of date" do
|
704
|
-
current_resource.version(["1.0", "6.2"])
|
705
|
-
new_resource.version(["1.0", "6.3"])
|
706
|
-
provider.run_action(:install)
|
707
|
-
expect(new_resource).to be_updated
|
708
|
-
end
|
709
|
-
|
710
|
-
it "does not install any version if all are installed at the right version" do
|
711
|
-
current_resource.version(["1.0", "6.2"])
|
712
|
-
new_resource.version(["1.0", "6.2"])
|
713
|
-
provider.run_action(:install)
|
714
|
-
expect(new_resource).not_to be_updated_by_last_action
|
715
|
-
end
|
716
|
-
|
717
|
-
it "does install an older version by default" do
|
718
|
-
current_resource.version(["1.1", "6.2"])
|
719
|
-
new_resource.version(["1.0", "6.1"])
|
720
|
-
provider.run_action(:install)
|
721
|
-
expect(new_resource).to be_updated_by_last_action
|
722
|
-
end
|
723
|
-
|
724
|
-
it "does not install an older version if the resource subclass has allow_downgrade set to false" do
|
725
|
-
allow(new_resource).to receive(:allow_downgrade).and_return(false)
|
726
|
-
current_resource.version(["1.1", "6.2"])
|
727
|
-
new_resource.version(["1.0", "6.1"])
|
728
|
-
provider.run_action(:install)
|
729
|
-
expect(new_resource).not_to be_updated_by_last_action
|
730
|
-
end
|
731
|
-
|
732
|
-
it "does not install any version if all are installed, and no version was specified" do
|
733
|
-
current_resource.version(["1.0", "6.2"])
|
734
|
-
provider.run_action(:install)
|
735
|
-
expect(new_resource).not_to be_updated_by_last_action
|
736
|
-
end
|
737
|
-
|
738
|
-
it "raises an exception if both are not installed and no caondidates are available" do
|
739
|
-
current_resource.version([nil, nil])
|
740
|
-
provider.candidate_version = [nil, nil]
|
741
|
-
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
742
|
-
end
|
743
|
-
|
744
|
-
it "raises an exception if one is not installed and no candidates are available" do
|
745
|
-
current_resource.version(["1.0", nil])
|
746
|
-
provider.candidate_version = ["1.0", nil]
|
747
|
-
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
748
|
-
end
|
749
|
-
|
750
|
-
it "does not raise an exception if the packages are installed or have a candidate" do
|
751
|
-
current_resource.version(["1.0", nil])
|
752
|
-
provider.candidate_version = [nil, "6.2"]
|
753
|
-
expect { provider.run_action(:install) }.not_to raise_error
|
754
|
-
end
|
755
|
-
|
756
|
-
it "raises an exception if an explicit version is asked for, an old version is installed, but no candidate" do
|
757
|
-
new_resource.version ["1.0", "6.2"]
|
758
|
-
current_resource.version(["1.0", "6.1"])
|
759
|
-
provider.candidate_version = ["1.0", nil]
|
760
|
-
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
761
|
-
end
|
762
|
-
|
763
|
-
it "does not raise an exception if an explicit version is asked for, and is installed, but no candidate" do
|
764
|
-
new_resource.version ["1.0", "6.2"]
|
765
|
-
current_resource.version(["1.0", "6.2"])
|
766
|
-
provider.candidate_version = ["1.0", nil]
|
767
|
-
expect { provider.run_action(:install) }.not_to raise_error
|
768
|
-
end
|
769
|
-
|
770
|
-
it "raise an exception if an explicit version is asked for, and is not installed, and no candidate" do
|
771
|
-
new_resource.version ["1.0", "6.2"]
|
772
|
-
current_resource.version(["1.0", nil])
|
773
|
-
provider.candidate_version = ["1.0", nil]
|
774
|
-
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
775
|
-
end
|
776
|
-
|
777
|
-
it "does not raise an exception if an explicit version is asked for, and is not installed, and there is a candidate" do
|
778
|
-
new_resource.version ["1.0", "6.2"]
|
779
|
-
current_resource.version(["1.0", nil])
|
780
|
-
provider.candidate_version = ["1.0", "6.2"]
|
781
|
-
expect { provider.run_action(:install) }.not_to raise_error
|
782
|
-
end
|
783
|
-
end
|
784
|
-
|
785
|
-
describe "when upgrading multiple packages" do
|
786
|
-
before(:each) do
|
787
|
-
provider.current_resource = current_resource
|
788
|
-
allow(provider).to receive(:upgrade_package).and_return(true)
|
789
|
-
end
|
790
|
-
|
791
|
-
it "should upgrade the package if the current versions are not the candidate version" do
|
792
|
-
current_resource.version ["0.9", "6.1"]
|
793
|
-
expect(provider).to receive(:upgrade_package).with(
|
794
|
-
new_resource.package_name,
|
795
|
-
provider.candidate_version
|
796
|
-
).and_return(true)
|
797
|
-
provider.run_action(:upgrade)
|
798
|
-
expect(new_resource).to be_updated_by_last_action
|
799
|
-
end
|
800
|
-
|
801
|
-
it "should upgrade the package if some of current versions are not the candidate versions" do
|
802
|
-
current_resource.version ["1.0", "6.1"]
|
803
|
-
expect(provider).to receive(:upgrade_package).with(
|
804
|
-
["vi"],
|
805
|
-
["6.2"]
|
806
|
-
).and_return(true)
|
807
|
-
provider.run_action(:upgrade)
|
808
|
-
expect(new_resource).to be_updated_by_last_action
|
809
|
-
end
|
810
|
-
|
811
|
-
it "should not install the package if the current versions are the candidate version" do
|
812
|
-
current_resource.version ["1.0", "6.2"]
|
813
|
-
expect(provider).not_to receive(:upgrade_package)
|
814
|
-
provider.run_action(:upgrade)
|
815
|
-
expect(new_resource).not_to be_updated_by_last_action
|
816
|
-
end
|
817
|
-
|
818
|
-
it "should raise an exception if both are not installed and no caondidates are available" do
|
819
|
-
current_resource.version([nil, nil])
|
820
|
-
provider.candidate_version = [nil, nil]
|
821
|
-
expect { provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
|
822
|
-
end
|
823
|
-
|
824
|
-
it "should raise an exception if one is not installed and no candidates are available" do
|
825
|
-
current_resource.version(["1.0", nil])
|
826
|
-
provider.candidate_version = ["1.0", nil]
|
827
|
-
expect { provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
|
828
|
-
end
|
829
|
-
|
830
|
-
it "should not raise an exception if the packages are installed or have a candidate" do
|
831
|
-
current_resource.version(["1.0", nil])
|
832
|
-
provider.candidate_version = [nil, "6.2"]
|
833
|
-
expect { provider.run_action(:upgrade) }.not_to raise_error
|
834
|
-
end
|
835
|
-
|
836
|
-
it "should not raise an exception if the packages are installed or have a candidate" do
|
837
|
-
current_resource.version(["1.0", nil])
|
838
|
-
provider.candidate_version = [nil, "6.2"]
|
839
|
-
expect { provider.run_action(:upgrade) }.not_to raise_error
|
840
|
-
end
|
841
|
-
end
|
842
|
-
|
843
|
-
describe "When removing multiple packages " do
|
844
|
-
before(:each) do
|
845
|
-
allow(provider).to receive(:remove_package).and_return(true)
|
846
|
-
current_resource.version ["1.0", "6.2"]
|
847
|
-
end
|
848
|
-
|
849
|
-
it "should remove the packages if all are installed" do
|
850
|
-
expect(provider).to be_removing_package
|
851
|
-
expect(provider).to receive(:remove_package).with(%w{emacs vi}, [nil])
|
852
|
-
provider.run_action(:remove)
|
853
|
-
expect(new_resource).to be_updated
|
854
|
-
expect(new_resource).to be_updated_by_last_action
|
855
|
-
end
|
856
|
-
|
857
|
-
it "should remove the packages if some are installed" do
|
858
|
-
current_resource.version ["1.0", nil]
|
859
|
-
expect(provider).to be_removing_package
|
860
|
-
expect(provider).to receive(:remove_package).with(%w{emacs vi}, [nil])
|
861
|
-
provider.run_action(:remove)
|
862
|
-
expect(new_resource).to be_updated
|
863
|
-
expect(new_resource).to be_updated_by_last_action
|
864
|
-
end
|
865
|
-
|
866
|
-
it "should remove the packages at a specific version if they are installed at that version" do
|
867
|
-
new_resource.version ["1.0", "6.2"]
|
868
|
-
expect(provider).to be_removing_package
|
869
|
-
expect(provider).to receive(:remove_package).with(%w{emacs vi}, ["1.0", "6.2"])
|
870
|
-
provider.run_action(:remove)
|
871
|
-
expect(new_resource).to be_updated_by_last_action
|
872
|
-
end
|
873
|
-
|
874
|
-
it "should remove the packages at a specific version any are is installed at that version" do
|
875
|
-
new_resource.version ["0.5", "6.2"]
|
876
|
-
expect(provider).to be_removing_package
|
877
|
-
expect(provider).to receive(:remove_package).with(%w{emacs vi}, ["0.5", "6.2"])
|
878
|
-
provider.run_action(:remove)
|
879
|
-
expect(new_resource).to be_updated_by_last_action
|
880
|
-
end
|
881
|
-
|
882
|
-
it "should not remove the packages at a specific version if they are not installed at that version" do
|
883
|
-
new_resource.version ["0.5", "6.0"]
|
884
|
-
expect(provider).not_to be_removing_package
|
885
|
-
expect(provider).not_to receive(:remove_package)
|
886
|
-
provider.run_action(:remove)
|
887
|
-
expect(new_resource).not_to be_updated_by_last_action
|
888
|
-
end
|
889
|
-
|
890
|
-
it "should not remove the packages if they are not installed" do
|
891
|
-
expect(provider).not_to receive(:remove_package)
|
892
|
-
allow(current_resource).to receive(:version).and_return(nil)
|
893
|
-
provider.run_action(:remove)
|
894
|
-
expect(new_resource).not_to be_updated_by_last_action
|
895
|
-
end
|
896
|
-
|
897
|
-
end
|
898
|
-
|
899
|
-
describe "When purging multiple packages " do
|
900
|
-
before(:each) do
|
901
|
-
allow(provider).to receive(:purge_package).and_return(true)
|
902
|
-
current_resource.version ["1.0", "6.2"]
|
903
|
-
end
|
904
|
-
|
905
|
-
it "should purge the packages if all are installed" do
|
906
|
-
expect(provider).to be_removing_package
|
907
|
-
expect(provider).to receive(:purge_package).with(%w{emacs vi}, [nil])
|
908
|
-
provider.run_action(:purge)
|
909
|
-
expect(new_resource).to be_updated
|
910
|
-
expect(new_resource).to be_updated_by_last_action
|
911
|
-
end
|
912
|
-
|
913
|
-
it "should purge the packages if some are installed" do
|
914
|
-
current_resource.version ["1.0", nil]
|
915
|
-
expect(provider).to be_removing_package
|
916
|
-
expect(provider).to receive(:purge_package).with(%w{emacs vi}, [nil])
|
917
|
-
provider.run_action(:purge)
|
918
|
-
expect(new_resource).to be_updated
|
919
|
-
expect(new_resource).to be_updated_by_last_action
|
920
|
-
end
|
921
|
-
|
922
|
-
it "should purge the packages at a specific version if they are installed at that version" do
|
923
|
-
new_resource.version ["1.0", "6.2"]
|
924
|
-
expect(provider).to be_removing_package
|
925
|
-
expect(provider).to receive(:purge_package).with(%w{emacs vi}, ["1.0", "6.2"])
|
926
|
-
provider.run_action(:purge)
|
927
|
-
expect(new_resource).to be_updated_by_last_action
|
928
|
-
end
|
929
|
-
|
930
|
-
it "should purge the packages at a specific version any are is installed at that version" do
|
931
|
-
new_resource.version ["0.5", "6.2"]
|
932
|
-
expect(provider).to be_removing_package
|
933
|
-
expect(provider).to receive(:purge_package).with(%w{emacs vi}, ["0.5", "6.2"])
|
934
|
-
provider.run_action(:purge)
|
935
|
-
expect(new_resource).to be_updated_by_last_action
|
936
|
-
end
|
937
|
-
|
938
|
-
it "should not purge the packages at a specific version if they are not installed at that version" do
|
939
|
-
new_resource.version ["0.5", "6.0"]
|
940
|
-
expect(provider).not_to be_removing_package
|
941
|
-
expect(provider).not_to receive(:purge_package)
|
942
|
-
provider.run_action(:purge)
|
943
|
-
expect(new_resource).not_to be_updated_by_last_action
|
944
|
-
end
|
945
|
-
|
946
|
-
it "should not purge the packages if they are not installed" do
|
947
|
-
expect(provider).not_to receive(:purge_package)
|
948
|
-
allow(current_resource).to receive(:version).and_return(nil)
|
949
|
-
provider.run_action(:purge)
|
950
|
-
expect(new_resource).not_to be_updated_by_last_action
|
951
|
-
end
|
952
|
-
end
|
953
|
-
|
954
|
-
describe "shell_out helpers" do
|
955
|
-
before(:each) do
|
956
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
957
|
-
end
|
958
|
-
|
959
|
-
[ :shell_out_with_timeout, :shell_out_with_timeout! ].each do |method|
|
960
|
-
stubbed_method = method == :shell_out_with_timeout! ? :shell_out_compacted! : :shell_out_compacted
|
961
|
-
[ %w{command arg1 arg2}, "command arg1 arg2" ].each do |command|
|
962
|
-
it "#{method} defaults to 900 seconds" do
|
963
|
-
expect(provider).to receive(stubbed_method).with(*command, timeout: 900)
|
964
|
-
provider.send(method, *command)
|
965
|
-
end
|
966
|
-
it "#{method} overrides the default timeout with its options" do
|
967
|
-
expect(provider).to receive(stubbed_method).with(*command, timeout: 1)
|
968
|
-
provider.send(method, *command, timeout: 1)
|
969
|
-
end
|
970
|
-
it "#{method} overrides both timeouts with the new_resource.timeout" do
|
971
|
-
new_resource.timeout(99)
|
972
|
-
expect(provider).to receive(stubbed_method).with(*command, timeout: 99)
|
973
|
-
provider.send(method, *command, timeout: 1)
|
974
|
-
end
|
975
|
-
it "#{method} defaults to 900 seconds and preserves options" do
|
976
|
-
expect(provider).to receive(stubbed_method).with(*command, env: nil, timeout: 900)
|
977
|
-
provider.send(method, *command, env: nil)
|
978
|
-
end
|
979
|
-
it "#{method} overrides the default timeout with its options and preserves options" do
|
980
|
-
expect(provider).to receive(stubbed_method).with(*command, timeout: 1, env: nil)
|
981
|
-
provider.send(method, *command, timeout: 1, env: nil)
|
982
|
-
end
|
983
|
-
it "#{method} overrides both timeouts with the new_resource.timeout and preseves options" do
|
984
|
-
new_resource.timeout(99)
|
985
|
-
expect(provider).to receive(stubbed_method).with(*command, timeout: 99, env: nil)
|
986
|
-
provider.send(method, *command, timeout: 1, env: nil)
|
987
|
-
end
|
988
|
-
end
|
989
|
-
end
|
990
|
-
end
|
991
|
-
|
992
|
-
describe "version_compare" do
|
993
|
-
it "tests equality" do
|
994
|
-
expect(provider.version_compare("1.3", "1.3")).to eql(0)
|
995
|
-
end
|
996
|
-
|
997
|
-
it "tests less than" do
|
998
|
-
expect(provider.version_compare("1.2", "1.3")).to eql(-1)
|
999
|
-
end
|
1000
|
-
|
1001
|
-
it "tests greater than" do
|
1002
|
-
expect(provider.version_compare("1.5", "1.3")).to eql(1)
|
1003
|
-
end
|
1004
|
-
|
1005
|
-
it "x.10 is greater than x.2 (so does not do floating point comparisons)" do
|
1006
|
-
expect(provider.version_compare("1.10", "1.2")).to eql(1)
|
1007
|
-
end
|
1008
|
-
|
1009
|
-
it "sanitizes inputs" do
|
1010
|
-
expect(provider.version_compare("1.3_3", "1.3")).to eql(0)
|
1011
|
-
end
|
1012
|
-
end
|
1013
|
-
end
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
+
# Copyright:: Copyright 2008-2018, Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "spec_helper"
|
20
|
+
|
21
|
+
describe Chef::Provider::Package do
|
22
|
+
let(:node) do
|
23
|
+
node = Chef::Node.new
|
24
|
+
node.automatic_attrs[:platform] = :just_testing
|
25
|
+
node.automatic_attrs[:platform_version] = :just_testing
|
26
|
+
node
|
27
|
+
end
|
28
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
29
|
+
let(:logger) { double("Mixlib::Log::Child").as_null_object }
|
30
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
31
|
+
let(:new_resource) { Chef::Resource::Package.new("install emacs") }
|
32
|
+
let(:current_resource) { Chef::Resource::Package.new("install emacs") }
|
33
|
+
let(:candidate_version) { "1.0" }
|
34
|
+
let(:provider) do
|
35
|
+
new_resource.package_name = "emacs"
|
36
|
+
current_resource.package_name = "emacs"
|
37
|
+
provider = Chef::Provider::Package.new(new_resource, run_context)
|
38
|
+
provider.current_resource = current_resource
|
39
|
+
provider.candidate_version = candidate_version
|
40
|
+
provider
|
41
|
+
end
|
42
|
+
|
43
|
+
before do
|
44
|
+
allow(run_context).to receive(:logger).and_return(logger)
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "when installing a package" do
|
48
|
+
before(:each) do
|
49
|
+
provider.current_resource = current_resource
|
50
|
+
allow(provider).to receive(:install_package).and_return(true)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "raises a Chef::Exceptions::InvalidResourceSpecification if both multipackage and source are provided" do
|
54
|
+
new_resource.package_name(%w{a b})
|
55
|
+
new_resource.source("foo")
|
56
|
+
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::InvalidResourceSpecification)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should raise a Chef::Exceptions::Package if no version is specified, and no candidate is available" do
|
60
|
+
provider.candidate_version = nil
|
61
|
+
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should call preseed_package if a response_file is given" do
|
65
|
+
new_resource.response_file("foo")
|
66
|
+
expect(provider).to receive(:get_preseed_file).with(
|
67
|
+
new_resource.package_name,
|
68
|
+
provider.candidate_version
|
69
|
+
).and_return("/var/cache/preseed-test")
|
70
|
+
|
71
|
+
expect(provider).to receive(:preseed_package).with(
|
72
|
+
"/var/cache/preseed-test"
|
73
|
+
).and_return(true)
|
74
|
+
provider.run_action(:install)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should not call preseed_package if a response_file is not given" do
|
78
|
+
expect(provider).not_to receive(:preseed_package)
|
79
|
+
provider.run_action(:install)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should install the package at the candidate_version if it is not already installed" do
|
83
|
+
expect(provider).to receive(:install_package).with(
|
84
|
+
new_resource.package_name,
|
85
|
+
provider.candidate_version
|
86
|
+
).and_return(true)
|
87
|
+
provider.run_action(:install)
|
88
|
+
expect(new_resource).to be_updated_by_last_action
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should install the package at the version specified if it is not already installed" do
|
92
|
+
new_resource.version("1.0")
|
93
|
+
expect(provider).to receive(:install_package).with(
|
94
|
+
new_resource.package_name,
|
95
|
+
new_resource.version
|
96
|
+
).and_return(true)
|
97
|
+
provider.run_action(:install)
|
98
|
+
expect(new_resource).to be_updated_by_last_action
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should install the package at the version specified if a different version is installed" do
|
102
|
+
new_resource.version("1.0")
|
103
|
+
allow(current_resource).to receive(:version).and_return("0.99")
|
104
|
+
expect(provider).to receive(:install_package).with(
|
105
|
+
new_resource.package_name,
|
106
|
+
new_resource.version
|
107
|
+
).and_return(true)
|
108
|
+
provider.run_action(:install)
|
109
|
+
expect(new_resource).to be_updated_by_last_action
|
110
|
+
end
|
111
|
+
|
112
|
+
it "should not install the package if it is already installed and no version is specified" do
|
113
|
+
current_resource.version("1.0")
|
114
|
+
expect(provider).not_to receive(:install_package)
|
115
|
+
provider.run_action(:install)
|
116
|
+
expect(new_resource).not_to be_updated_by_last_action
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should not install the package if it is already installed at the version specified" do
|
120
|
+
current_resource.version("1.0")
|
121
|
+
new_resource.version("1.0")
|
122
|
+
expect(provider).not_to receive(:install_package)
|
123
|
+
provider.run_action(:install)
|
124
|
+
expect(new_resource).not_to be_updated_by_last_action
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should call the candidate_version accessor only once if the package is already installed and no version is specified" do
|
128
|
+
current_resource.version("1.0")
|
129
|
+
allow(provider).to receive(:candidate_version).and_return("1.0")
|
130
|
+
provider.run_action(:install)
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should call the candidate_version accessor only once if the package is already installed at the version specified" do
|
134
|
+
current_resource.version("1.0")
|
135
|
+
new_resource.version("1.0")
|
136
|
+
provider.run_action(:install)
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should set the resource to updated if it installs the package" do
|
140
|
+
provider.run_action(:install)
|
141
|
+
expect(new_resource).to be_updated
|
142
|
+
end
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "when upgrading the package" do
|
147
|
+
before(:each) do
|
148
|
+
allow(provider).to receive(:upgrade_package).and_return(true)
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should upgrade the package if the current version is not the candidate version" do
|
152
|
+
expect(provider).to receive(:upgrade_package).with(
|
153
|
+
new_resource.package_name,
|
154
|
+
provider.candidate_version
|
155
|
+
).and_return(true)
|
156
|
+
provider.run_action(:upgrade)
|
157
|
+
expect(new_resource).to be_updated_by_last_action
|
158
|
+
end
|
159
|
+
|
160
|
+
it "should set the resource to updated if it installs the package" do
|
161
|
+
provider.run_action(:upgrade)
|
162
|
+
expect(new_resource).to be_updated
|
163
|
+
end
|
164
|
+
|
165
|
+
it "should not install the package if the current version is the candidate version" do
|
166
|
+
current_resource.version "1.0"
|
167
|
+
expect(provider).not_to receive(:upgrade_package)
|
168
|
+
provider.run_action(:upgrade)
|
169
|
+
expect(new_resource).not_to be_updated_by_last_action
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should print the word 'uninstalled' if there was no original version" do
|
173
|
+
allow(current_resource).to receive(:version).and_return(nil)
|
174
|
+
expect(logger).to receive(:info).with("package[install emacs] upgraded(allow_downgrade) emacs to 1.0")
|
175
|
+
provider.run_action(:upgrade)
|
176
|
+
expect(new_resource).to be_updated_by_last_action
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should raise a Chef::Exceptions::Package if current version and candidate are nil" do
|
180
|
+
allow(current_resource).to receive(:version).and_return(nil)
|
181
|
+
provider.candidate_version = nil
|
182
|
+
expect { provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
|
183
|
+
end
|
184
|
+
|
185
|
+
it "should not install the package if candidate version is nil" do
|
186
|
+
current_resource.version "1.0"
|
187
|
+
provider.candidate_version = nil
|
188
|
+
expect(provider).not_to receive(:upgrade_package)
|
189
|
+
provider.run_action(:upgrade)
|
190
|
+
expect(new_resource).not_to be_updated_by_last_action
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
describe "When removing the package" do
|
195
|
+
before(:each) do
|
196
|
+
allow(provider).to receive(:remove_package).and_return(true)
|
197
|
+
current_resource.version "1.4.2"
|
198
|
+
end
|
199
|
+
|
200
|
+
it "should remove the package if it is installed" do
|
201
|
+
expect(provider).to be_removing_package
|
202
|
+
expect(provider).to receive(:remove_package).with("emacs", nil)
|
203
|
+
provider.run_action(:remove)
|
204
|
+
expect(new_resource).to be_updated
|
205
|
+
expect(new_resource).to be_updated_by_last_action
|
206
|
+
end
|
207
|
+
|
208
|
+
it "should remove the package at a specific version if it is installed at that version" do
|
209
|
+
new_resource.version "1.4.2"
|
210
|
+
expect(provider).to be_removing_package
|
211
|
+
expect(provider).to receive(:remove_package).with("emacs", "1.4.2")
|
212
|
+
provider.run_action(:remove)
|
213
|
+
expect(new_resource).to be_updated_by_last_action
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should not remove the package at a specific version if it is not installed at that version" do
|
217
|
+
new_resource.version "1.0"
|
218
|
+
expect(provider).not_to be_removing_package
|
219
|
+
expect(provider).not_to receive(:remove_package)
|
220
|
+
provider.run_action(:remove)
|
221
|
+
expect(new_resource).not_to be_updated_by_last_action
|
222
|
+
end
|
223
|
+
|
224
|
+
it "should not remove the package if it is not installed" do
|
225
|
+
expect(provider).not_to receive(:remove_package)
|
226
|
+
allow(current_resource).to receive(:version).and_return(nil)
|
227
|
+
provider.run_action(:remove)
|
228
|
+
expect(new_resource).not_to be_updated_by_last_action
|
229
|
+
end
|
230
|
+
|
231
|
+
it "should set the resource to updated if it removes the package" do
|
232
|
+
provider.run_action(:remove)
|
233
|
+
expect(new_resource).to be_updated
|
234
|
+
end
|
235
|
+
|
236
|
+
end
|
237
|
+
|
238
|
+
describe "When purging the package" do
|
239
|
+
before(:each) do
|
240
|
+
allow(provider).to receive(:purge_package).and_return(true)
|
241
|
+
current_resource.version "1.4.2"
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should purge the package if it is installed" do
|
245
|
+
expect(provider).to be_removing_package
|
246
|
+
expect(provider).to receive(:purge_package).with("emacs", nil)
|
247
|
+
provider.run_action(:purge)
|
248
|
+
expect(new_resource).to be_updated
|
249
|
+
expect(new_resource).to be_updated_by_last_action
|
250
|
+
end
|
251
|
+
|
252
|
+
it "should purge the package at a specific version if it is installed at that version" do
|
253
|
+
new_resource.version "1.4.2"
|
254
|
+
expect(provider).to be_removing_package
|
255
|
+
expect(provider).to receive(:purge_package).with("emacs", "1.4.2")
|
256
|
+
provider.run_action(:purge)
|
257
|
+
expect(new_resource).to be_updated_by_last_action
|
258
|
+
end
|
259
|
+
|
260
|
+
it "should not purge the package at a specific version if it is not installed at that version" do
|
261
|
+
new_resource.version "1.0"
|
262
|
+
expect(provider).not_to be_removing_package
|
263
|
+
expect(provider).not_to receive(:purge_package)
|
264
|
+
provider.run_action(:purge)
|
265
|
+
expect(new_resource).not_to be_updated_by_last_action
|
266
|
+
end
|
267
|
+
|
268
|
+
it "should not purge the package if it is not installed" do
|
269
|
+
current_resource.instance_variable_set(:@version, nil)
|
270
|
+
expect(provider).not_to be_removing_package
|
271
|
+
|
272
|
+
expect(provider).not_to receive(:purge_package)
|
273
|
+
provider.run_action(:purge)
|
274
|
+
expect(new_resource).not_to be_updated_by_last_action
|
275
|
+
end
|
276
|
+
|
277
|
+
it "should set the resource to updated if it purges the package" do
|
278
|
+
provider.run_action(:purge)
|
279
|
+
expect(new_resource).to be_updated
|
280
|
+
end
|
281
|
+
|
282
|
+
end
|
283
|
+
|
284
|
+
describe "when reconfiguring the package" do
|
285
|
+
before(:each) do
|
286
|
+
allow(provider).to receive(:reconfig_package).and_return(true)
|
287
|
+
end
|
288
|
+
|
289
|
+
it "should info log, reconfigure the package and update the resource" do
|
290
|
+
allow(current_resource).to receive(:version).and_return("1.0")
|
291
|
+
allow(new_resource).to receive(:response_file).and_return(true)
|
292
|
+
expect(provider).to receive(:get_preseed_file).and_return("/var/cache/preseed-test")
|
293
|
+
allow(provider).to receive(:preseed_package).and_return(true)
|
294
|
+
allow(provider).to receive(:reconfig_package).and_return(true)
|
295
|
+
expect(logger).to receive(:info).with("package[install emacs] reconfigured")
|
296
|
+
expect(provider).to receive(:reconfig_package)
|
297
|
+
provider.run_action(:reconfig)
|
298
|
+
expect(new_resource).to be_updated
|
299
|
+
expect(new_resource).to be_updated_by_last_action
|
300
|
+
end
|
301
|
+
|
302
|
+
it "should debug log and not reconfigure the package if the package is not installed" do
|
303
|
+
allow(current_resource).to receive(:version).and_return(nil)
|
304
|
+
expect(logger).to receive(:trace).with("package[install emacs] is NOT installed - nothing to do")
|
305
|
+
expect(provider).not_to receive(:reconfig_package)
|
306
|
+
provider.run_action(:reconfig)
|
307
|
+
expect(new_resource).not_to be_updated_by_last_action
|
308
|
+
end
|
309
|
+
|
310
|
+
it "should debug log and not reconfigure the package if no response_file is given" do
|
311
|
+
allow(current_resource).to receive(:version).and_return("1.0")
|
312
|
+
allow(new_resource).to receive(:response_file).and_return(nil)
|
313
|
+
expect(logger).to receive(:trace).with("package[install emacs] no response_file provided - nothing to do")
|
314
|
+
expect(provider).not_to receive(:reconfig_package)
|
315
|
+
provider.run_action(:reconfig)
|
316
|
+
expect(new_resource).not_to be_updated_by_last_action
|
317
|
+
end
|
318
|
+
|
319
|
+
it "should debug log and not reconfigure the package if the response_file has not changed" do
|
320
|
+
allow(current_resource).to receive(:version).and_return("1.0")
|
321
|
+
allow(new_resource).to receive(:response_file).and_return(true)
|
322
|
+
expect(provider).to receive(:get_preseed_file).and_return(false)
|
323
|
+
allow(provider).to receive(:preseed_package).and_return(false)
|
324
|
+
expect(logger).to receive(:trace).with("package[install emacs] preseeding has not changed - nothing to do")
|
325
|
+
expect(provider).not_to receive(:reconfig_package)
|
326
|
+
provider.run_action(:reconfig)
|
327
|
+
expect(new_resource).not_to be_updated_by_last_action
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
describe "When locking the package" do
|
332
|
+
before(:each) do
|
333
|
+
allow(provider).to receive(:lock_package).with(
|
334
|
+
new_resource.package_name,
|
335
|
+
nil
|
336
|
+
).and_return(true)
|
337
|
+
end
|
338
|
+
|
339
|
+
it "should lock the package if it is unlocked" do
|
340
|
+
allow(provider).to receive(:package_locked).with(
|
341
|
+
new_resource.package_name,
|
342
|
+
nil
|
343
|
+
).and_return(false)
|
344
|
+
provider.run_action(:lock)
|
345
|
+
end
|
346
|
+
|
347
|
+
it "should not lock the package if it is already locked" do
|
348
|
+
allow(provider).to receive(:package_locked).with(
|
349
|
+
new_resource.package_name,
|
350
|
+
nil
|
351
|
+
).and_return(true)
|
352
|
+
expect(provider).not_to receive(:lock_package)
|
353
|
+
provider.run_action(:lock)
|
354
|
+
expect(new_resource).not_to be_updated_by_last_action
|
355
|
+
end
|
356
|
+
|
357
|
+
it "should set the resource to updated if it locks the package" do
|
358
|
+
allow(provider).to receive(:package_locked).with(
|
359
|
+
new_resource.package_name,
|
360
|
+
nil
|
361
|
+
).and_return(false)
|
362
|
+
provider.run_action(:lock)
|
363
|
+
expect(new_resource).to be_updated
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
describe "When unlocking the package" do
|
368
|
+
before(:each) do
|
369
|
+
allow(provider).to receive(:unlock_package).and_return(true)
|
370
|
+
end
|
371
|
+
|
372
|
+
it "should unlock the package if it is locked" do
|
373
|
+
allow(provider).to receive(:package_locked).with(
|
374
|
+
new_resource.package_name,
|
375
|
+
nil
|
376
|
+
).and_return(true)
|
377
|
+
expect(provider).to receive(:unlock_package)
|
378
|
+
provider.run_action(:unlock)
|
379
|
+
end
|
380
|
+
|
381
|
+
it "should not unlock the package if it is already unlocked" do
|
382
|
+
allow(provider).to receive(:package_locked).with(
|
383
|
+
new_resource.package_name,
|
384
|
+
nil
|
385
|
+
).and_return(false)
|
386
|
+
expect(provider).not_to receive(:unlock_package)
|
387
|
+
provider.run_action(:unlock)
|
388
|
+
expect(new_resource).not_to be_updated_by_last_action
|
389
|
+
end
|
390
|
+
|
391
|
+
it "should set the resource to updated if it unlocks the package" do
|
392
|
+
allow(provider).to receive(:package_locked).with(
|
393
|
+
new_resource.package_name,
|
394
|
+
nil
|
395
|
+
).and_return(true)
|
396
|
+
provider.run_action(:unlock)
|
397
|
+
expect(new_resource).to be_updated
|
398
|
+
end
|
399
|
+
end
|
400
|
+
|
401
|
+
describe "when running commands to be implemented by subclasses" do
|
402
|
+
it "should raises UnsupportedAction for install" do
|
403
|
+
expect { provider.install_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
404
|
+
end
|
405
|
+
|
406
|
+
it "should raises UnsupportedAction for upgrade" do
|
407
|
+
expect { provider.upgrade_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
408
|
+
end
|
409
|
+
|
410
|
+
it "should raises UnsupportedAction for remove" do
|
411
|
+
expect { provider.remove_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
412
|
+
end
|
413
|
+
|
414
|
+
it "should raises UnsupportedAction for purge" do
|
415
|
+
expect { provider.purge_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
416
|
+
end
|
417
|
+
|
418
|
+
it "should raise UnsupportedAction for preseed_package" do
|
419
|
+
preseed_file = "/tmp/sun-jdk-package-preseed-file.seed"
|
420
|
+
expect { provider.preseed_package(preseed_file) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
421
|
+
end
|
422
|
+
|
423
|
+
it "should raise UnsupportedAction for reconfig" do
|
424
|
+
expect { provider.reconfig_package("emacs", "1.4.2") }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
425
|
+
end
|
426
|
+
|
427
|
+
it "should raise UnsupportedAction for lock" do
|
428
|
+
expect { provider.lock_package("emacs", nil) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
429
|
+
end
|
430
|
+
|
431
|
+
it "should raise UnsupportedAction for unlock" do
|
432
|
+
expect { provider.unlock_package("emacs", nil) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
436
|
+
describe "when given a response file" do
|
437
|
+
let(:cookbook_repo) { File.expand_path(File.join(CHEF_SPEC_DATA, "cookbooks")) }
|
438
|
+
let(:cookbook_loader) do
|
439
|
+
Chef::Cookbook::FileVendor.fetch_from_disk(cookbook_repo)
|
440
|
+
Chef::CookbookLoader.new(cookbook_repo)
|
441
|
+
end
|
442
|
+
let(:cookbook_collection) do
|
443
|
+
cookbook_loader.load_cookbooks
|
444
|
+
Chef::CookbookCollection.new(cookbook_loader)
|
445
|
+
end
|
446
|
+
let(:run_context) { Chef::RunContext.new(node, cookbook_collection, events) }
|
447
|
+
let(:new_resource) do
|
448
|
+
new_resource = Chef::Resource::Package.new("emacs")
|
449
|
+
new_resource.response_file("java.response")
|
450
|
+
new_resource.cookbook_name = "java"
|
451
|
+
new_resource
|
452
|
+
end
|
453
|
+
|
454
|
+
describe "creating the cookbook file resource to fetch the response file" do
|
455
|
+
before do
|
456
|
+
expect(Chef::FileCache).to receive(:create_cache_path).with("preseed/java").and_return("/tmp/preseed/java")
|
457
|
+
end
|
458
|
+
|
459
|
+
it "sets the preseed resource's runcontext to its own run context" do
|
460
|
+
allow(Chef::FileCache).to receive(:create_cache_path).and_return("/tmp/preseed/java")
|
461
|
+
expect(provider.preseed_resource("java", "6").run_context).not_to be_nil
|
462
|
+
expect(provider.preseed_resource("java", "6").run_context).to equal(provider.run_context)
|
463
|
+
end
|
464
|
+
|
465
|
+
it "should set the cookbook name of the remote file to the new resources cookbook name" do
|
466
|
+
expect(provider.preseed_resource("java", "6").cookbook_name).to eq("java")
|
467
|
+
end
|
468
|
+
|
469
|
+
it "should set remote files source to the new resources response file" do
|
470
|
+
expect(provider.preseed_resource("java", "6").source).to eq("java.response")
|
471
|
+
end
|
472
|
+
|
473
|
+
it "should never back up the cached response file" do
|
474
|
+
expect(provider.preseed_resource("java", "6").backup).to be_falsey
|
475
|
+
end
|
476
|
+
|
477
|
+
it "sets the install path of the resource to $file_cache/$cookbook/$pkg_name-$pkg_version.seed" do
|
478
|
+
expect(provider.preseed_resource("java", "6").path).to eq("/tmp/preseed/java/java-6.seed")
|
479
|
+
end
|
480
|
+
end
|
481
|
+
|
482
|
+
describe "when installing the preseed file to the cache location" do
|
483
|
+
let(:response_file_destination) { Dir.tmpdir + "/preseed--java--java-6.seed" }
|
484
|
+
let(:response_file_resource) do
|
485
|
+
response_file_resource = Chef::Resource::CookbookFile.new(response_file_destination, run_context)
|
486
|
+
response_file_resource.cookbook_name = "java"
|
487
|
+
response_file_resource.backup(false)
|
488
|
+
response_file_resource.source("java.response")
|
489
|
+
response_file_resource
|
490
|
+
end
|
491
|
+
|
492
|
+
before do
|
493
|
+
expect(provider).to receive(:preseed_resource).with("java", "6").and_return(response_file_resource)
|
494
|
+
end
|
495
|
+
|
496
|
+
after do
|
497
|
+
FileUtils.rm(response_file_destination) if ::File.exist?(response_file_destination)
|
498
|
+
end
|
499
|
+
|
500
|
+
it "creates the preseed file in the cache" do
|
501
|
+
expect(response_file_resource).to receive(:run_action).with(:create)
|
502
|
+
provider.get_preseed_file("java", "6")
|
503
|
+
end
|
504
|
+
|
505
|
+
it "returns the path to the response file if the response file was updated" do
|
506
|
+
expect(provider.get_preseed_file("java", "6")).to eq(response_file_destination)
|
507
|
+
end
|
508
|
+
|
509
|
+
it "should return false if the response file has not been updated" do
|
510
|
+
response_file_resource.updated_by_last_action(false)
|
511
|
+
expect(response_file_resource).not_to be_updated_by_last_action
|
512
|
+
# don't let the response_file_resource set updated to true
|
513
|
+
expect(response_file_resource).to receive(:run_action).with(:create)
|
514
|
+
expect(provider.get_preseed_file("java", "6")).to be(false)
|
515
|
+
end
|
516
|
+
|
517
|
+
end
|
518
|
+
|
519
|
+
end
|
520
|
+
end
|
521
|
+
|
522
|
+
describe "Subclass with use_multipackage_api" do
|
523
|
+
class MyPackageResource < Chef::Resource::Package
|
524
|
+
end
|
525
|
+
|
526
|
+
class MyPackageProvider < Chef::Provider::Package
|
527
|
+
use_multipackage_api
|
528
|
+
end
|
529
|
+
|
530
|
+
let(:node) { Chef::Node.new }
|
531
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
532
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
533
|
+
let(:new_resource) { MyPackageResource.new("installs the packages") }
|
534
|
+
let(:current_resource) { MyPackageResource.new("installs the packages") }
|
535
|
+
let(:provider) do
|
536
|
+
provider = MyPackageProvider.new(new_resource, run_context)
|
537
|
+
provider.current_resource = current_resource
|
538
|
+
provider
|
539
|
+
end
|
540
|
+
|
541
|
+
it "has use_multipackage_api? methods on the class and instance" do
|
542
|
+
expect(MyPackageProvider.use_multipackage_api?).to be true
|
543
|
+
expect(provider.use_multipackage_api?).to be true
|
544
|
+
end
|
545
|
+
|
546
|
+
context "#a_to_s utility for subclasses" do
|
547
|
+
before(:each) do
|
548
|
+
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
549
|
+
end
|
550
|
+
|
551
|
+
it "converts varargs of strings to a single string" do
|
552
|
+
expect(provider.send(:a_to_s, "a", nil, "b", "", "c", " ", "d e", "f-g")).to eq("a b c d e f-g")
|
553
|
+
end
|
554
|
+
|
555
|
+
it "converts an array of strings to a single string" do
|
556
|
+
expect(provider.send(:a_to_s, ["a", nil, "b", "", "c", " ", "d e", "f-g"])).to eq("a b c d e f-g")
|
557
|
+
end
|
558
|
+
|
559
|
+
it "converts a mishmash of array args to a single string" do
|
560
|
+
expect(provider.send(:a_to_s, "a", [ nil, "b", "", [ "c" ] ], " ", [ "d e", "f-g" ])).to eq("a b c d e f-g")
|
561
|
+
end
|
562
|
+
end
|
563
|
+
|
564
|
+
it "when user passes string to package_name, passes arrays to install_package" do
|
565
|
+
new_resource.package_name "vim"
|
566
|
+
new_resource.version nil
|
567
|
+
provider.candidate_version = [ "1.0" ]
|
568
|
+
expect(provider).to receive(:install_package).with(
|
569
|
+
[ "vim" ],
|
570
|
+
[ "1.0" ]
|
571
|
+
).and_return(true)
|
572
|
+
provider.run_action(:install)
|
573
|
+
expect(new_resource).to be_updated_by_last_action
|
574
|
+
expect(new_resource.version).to eql(nil)
|
575
|
+
end
|
576
|
+
|
577
|
+
it "when user pases string to package_name and version, passes arrays to install_package" do
|
578
|
+
new_resource.package_name "vim"
|
579
|
+
new_resource.version "1.0"
|
580
|
+
provider.candidate_version = [ "1.0" ]
|
581
|
+
expect(provider).to receive(:install_package).with(
|
582
|
+
[ "vim" ],
|
583
|
+
[ "1.0" ]
|
584
|
+
).and_return(true)
|
585
|
+
provider.run_action(:install)
|
586
|
+
expect(new_resource).to be_updated_by_last_action
|
587
|
+
expect(new_resource.version).to eql("1.0")
|
588
|
+
end
|
589
|
+
|
590
|
+
it "when user passes string to package_name, passes arrays to upgrade_package" do
|
591
|
+
new_resource.package_name "vim"
|
592
|
+
new_resource.version nil
|
593
|
+
provider.candidate_version = [ "1.0" ]
|
594
|
+
expect(provider).to receive(:upgrade_package).with(
|
595
|
+
[ "vim" ],
|
596
|
+
[ "1.0" ]
|
597
|
+
).and_return(true)
|
598
|
+
provider.run_action(:upgrade)
|
599
|
+
expect(new_resource).to be_updated_by_last_action
|
600
|
+
expect(new_resource.version).to eql(nil)
|
601
|
+
end
|
602
|
+
|
603
|
+
it "when user pases string to package_name and version, passes arrays to upgrade_package" do
|
604
|
+
new_resource.package_name "vim"
|
605
|
+
new_resource.version "1.0"
|
606
|
+
provider.candidate_version = [ "1.0" ]
|
607
|
+
expect(provider).to receive(:upgrade_package).with(
|
608
|
+
[ "vim" ],
|
609
|
+
[ "1.0" ]
|
610
|
+
).and_return(true)
|
611
|
+
provider.run_action(:upgrade)
|
612
|
+
expect(new_resource).to be_updated_by_last_action
|
613
|
+
expect(new_resource.version).to eql("1.0")
|
614
|
+
end
|
615
|
+
|
616
|
+
it "when user passes string to package_name, passes arrays to remove_package" do
|
617
|
+
new_resource.package_name "vim"
|
618
|
+
current_resource.package_name "vim"
|
619
|
+
current_resource.version [ "1.0" ]
|
620
|
+
provider.candidate_version = [ "1.0" ]
|
621
|
+
expect(provider).to receive(:remove_package).with(
|
622
|
+
[ "vim" ],
|
623
|
+
[ nil ]
|
624
|
+
).and_return(true)
|
625
|
+
provider.run_action(:remove)
|
626
|
+
expect(new_resource).to be_updated_by_last_action
|
627
|
+
expect(new_resource.version).to eql(nil)
|
628
|
+
end
|
629
|
+
|
630
|
+
it "when user passes string to package_name, passes arrays to purge_package" do
|
631
|
+
new_resource.package_name "vim"
|
632
|
+
current_resource.package_name "vim"
|
633
|
+
current_resource.version [ "1.0" ]
|
634
|
+
provider.candidate_version = [ "1.0" ]
|
635
|
+
expect(provider).to receive(:purge_package).with(
|
636
|
+
[ "vim" ],
|
637
|
+
[ nil ]
|
638
|
+
).and_return(true)
|
639
|
+
provider.run_action(:purge)
|
640
|
+
expect(new_resource).to be_updated_by_last_action
|
641
|
+
expect(new_resource.version).to eql(nil)
|
642
|
+
end
|
643
|
+
|
644
|
+
it "when user passes string to package_name, passes arrays to reconfig_package" do
|
645
|
+
new_resource.package_name "vim"
|
646
|
+
current_resource.package_name "vim"
|
647
|
+
current_resource.version [ "1.0" ]
|
648
|
+
allow(new_resource).to receive(:response_file).and_return(true)
|
649
|
+
expect(provider).to receive(:get_preseed_file).and_return("/var/cache/preseed-test")
|
650
|
+
allow(provider).to receive(:preseed_package).and_return(true)
|
651
|
+
allow(provider).to receive(:reconfig_package).and_return(true)
|
652
|
+
expect(provider).to receive(:reconfig_package).with(
|
653
|
+
[ "vim" ],
|
654
|
+
[ "1.0" ]
|
655
|
+
).and_return(true)
|
656
|
+
provider.run_action(:reconfig)
|
657
|
+
expect(new_resource).to be_updated_by_last_action
|
658
|
+
end
|
659
|
+
end
|
660
|
+
|
661
|
+
describe "Chef::Provider::Package - Multi" do
|
662
|
+
let(:node) { Chef::Node.new }
|
663
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
664
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
665
|
+
let(:new_resource) { Chef::Resource::Package.new(%w{emacs vi}) }
|
666
|
+
let(:current_resource) { Chef::Resource::Package.new(%w{emacs vi}) }
|
667
|
+
let(:candidate_version) { [ "1.0", "6.2" ] }
|
668
|
+
class MyPackageProvider < Chef::Provider::Package
|
669
|
+
use_multipackage_api
|
670
|
+
end
|
671
|
+
let(:provider) do
|
672
|
+
provider = MyPackageProvider.new(new_resource, run_context)
|
673
|
+
provider.current_resource = current_resource
|
674
|
+
provider.candidate_version = candidate_version
|
675
|
+
provider
|
676
|
+
end
|
677
|
+
|
678
|
+
describe "when installing multiple packages" do
|
679
|
+
before(:each) do
|
680
|
+
provider.current_resource = current_resource
|
681
|
+
allow(provider).to receive(:install_package).and_return(true)
|
682
|
+
end
|
683
|
+
|
684
|
+
it "installs the candidate versions when none are installed" do
|
685
|
+
expect(provider).to receive(:install_package).with(
|
686
|
+
%w{emacs vi},
|
687
|
+
["1.0", "6.2"]
|
688
|
+
).and_return(true)
|
689
|
+
provider.run_action(:install)
|
690
|
+
expect(new_resource).to be_updated
|
691
|
+
end
|
692
|
+
|
693
|
+
it "installs the candidate versions when some are installed" do
|
694
|
+
expect(provider).to receive(:install_package).with(
|
695
|
+
[ "vi" ],
|
696
|
+
[ "6.2" ]
|
697
|
+
).and_return(true)
|
698
|
+
current_resource.version(["1.0", nil])
|
699
|
+
provider.run_action(:install)
|
700
|
+
expect(new_resource).to be_updated
|
701
|
+
end
|
702
|
+
|
703
|
+
it "installs the specified version when some are out of date" do
|
704
|
+
current_resource.version(["1.0", "6.2"])
|
705
|
+
new_resource.version(["1.0", "6.3"])
|
706
|
+
provider.run_action(:install)
|
707
|
+
expect(new_resource).to be_updated
|
708
|
+
end
|
709
|
+
|
710
|
+
it "does not install any version if all are installed at the right version" do
|
711
|
+
current_resource.version(["1.0", "6.2"])
|
712
|
+
new_resource.version(["1.0", "6.2"])
|
713
|
+
provider.run_action(:install)
|
714
|
+
expect(new_resource).not_to be_updated_by_last_action
|
715
|
+
end
|
716
|
+
|
717
|
+
it "does install an older version by default" do
|
718
|
+
current_resource.version(["1.1", "6.2"])
|
719
|
+
new_resource.version(["1.0", "6.1"])
|
720
|
+
provider.run_action(:install)
|
721
|
+
expect(new_resource).to be_updated_by_last_action
|
722
|
+
end
|
723
|
+
|
724
|
+
it "does not install an older version if the resource subclass has allow_downgrade set to false" do
|
725
|
+
allow(new_resource).to receive(:allow_downgrade).and_return(false)
|
726
|
+
current_resource.version(["1.1", "6.2"])
|
727
|
+
new_resource.version(["1.0", "6.1"])
|
728
|
+
provider.run_action(:install)
|
729
|
+
expect(new_resource).not_to be_updated_by_last_action
|
730
|
+
end
|
731
|
+
|
732
|
+
it "does not install any version if all are installed, and no version was specified" do
|
733
|
+
current_resource.version(["1.0", "6.2"])
|
734
|
+
provider.run_action(:install)
|
735
|
+
expect(new_resource).not_to be_updated_by_last_action
|
736
|
+
end
|
737
|
+
|
738
|
+
it "raises an exception if both are not installed and no caondidates are available" do
|
739
|
+
current_resource.version([nil, nil])
|
740
|
+
provider.candidate_version = [nil, nil]
|
741
|
+
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
742
|
+
end
|
743
|
+
|
744
|
+
it "raises an exception if one is not installed and no candidates are available" do
|
745
|
+
current_resource.version(["1.0", nil])
|
746
|
+
provider.candidate_version = ["1.0", nil]
|
747
|
+
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
748
|
+
end
|
749
|
+
|
750
|
+
it "does not raise an exception if the packages are installed or have a candidate" do
|
751
|
+
current_resource.version(["1.0", nil])
|
752
|
+
provider.candidate_version = [nil, "6.2"]
|
753
|
+
expect { provider.run_action(:install) }.not_to raise_error
|
754
|
+
end
|
755
|
+
|
756
|
+
it "raises an exception if an explicit version is asked for, an old version is installed, but no candidate" do
|
757
|
+
new_resource.version ["1.0", "6.2"]
|
758
|
+
current_resource.version(["1.0", "6.1"])
|
759
|
+
provider.candidate_version = ["1.0", nil]
|
760
|
+
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
761
|
+
end
|
762
|
+
|
763
|
+
it "does not raise an exception if an explicit version is asked for, and is installed, but no candidate" do
|
764
|
+
new_resource.version ["1.0", "6.2"]
|
765
|
+
current_resource.version(["1.0", "6.2"])
|
766
|
+
provider.candidate_version = ["1.0", nil]
|
767
|
+
expect { provider.run_action(:install) }.not_to raise_error
|
768
|
+
end
|
769
|
+
|
770
|
+
it "raise an exception if an explicit version is asked for, and is not installed, and no candidate" do
|
771
|
+
new_resource.version ["1.0", "6.2"]
|
772
|
+
current_resource.version(["1.0", nil])
|
773
|
+
provider.candidate_version = ["1.0", nil]
|
774
|
+
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
|
775
|
+
end
|
776
|
+
|
777
|
+
it "does not raise an exception if an explicit version is asked for, and is not installed, and there is a candidate" do
|
778
|
+
new_resource.version ["1.0", "6.2"]
|
779
|
+
current_resource.version(["1.0", nil])
|
780
|
+
provider.candidate_version = ["1.0", "6.2"]
|
781
|
+
expect { provider.run_action(:install) }.not_to raise_error
|
782
|
+
end
|
783
|
+
end
|
784
|
+
|
785
|
+
describe "when upgrading multiple packages" do
|
786
|
+
before(:each) do
|
787
|
+
provider.current_resource = current_resource
|
788
|
+
allow(provider).to receive(:upgrade_package).and_return(true)
|
789
|
+
end
|
790
|
+
|
791
|
+
it "should upgrade the package if the current versions are not the candidate version" do
|
792
|
+
current_resource.version ["0.9", "6.1"]
|
793
|
+
expect(provider).to receive(:upgrade_package).with(
|
794
|
+
new_resource.package_name,
|
795
|
+
provider.candidate_version
|
796
|
+
).and_return(true)
|
797
|
+
provider.run_action(:upgrade)
|
798
|
+
expect(new_resource).to be_updated_by_last_action
|
799
|
+
end
|
800
|
+
|
801
|
+
it "should upgrade the package if some of current versions are not the candidate versions" do
|
802
|
+
current_resource.version ["1.0", "6.1"]
|
803
|
+
expect(provider).to receive(:upgrade_package).with(
|
804
|
+
["vi"],
|
805
|
+
["6.2"]
|
806
|
+
).and_return(true)
|
807
|
+
provider.run_action(:upgrade)
|
808
|
+
expect(new_resource).to be_updated_by_last_action
|
809
|
+
end
|
810
|
+
|
811
|
+
it "should not install the package if the current versions are the candidate version" do
|
812
|
+
current_resource.version ["1.0", "6.2"]
|
813
|
+
expect(provider).not_to receive(:upgrade_package)
|
814
|
+
provider.run_action(:upgrade)
|
815
|
+
expect(new_resource).not_to be_updated_by_last_action
|
816
|
+
end
|
817
|
+
|
818
|
+
it "should raise an exception if both are not installed and no caondidates are available" do
|
819
|
+
current_resource.version([nil, nil])
|
820
|
+
provider.candidate_version = [nil, nil]
|
821
|
+
expect { provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
|
822
|
+
end
|
823
|
+
|
824
|
+
it "should raise an exception if one is not installed and no candidates are available" do
|
825
|
+
current_resource.version(["1.0", nil])
|
826
|
+
provider.candidate_version = ["1.0", nil]
|
827
|
+
expect { provider.run_action(:upgrade) }.to raise_error(Chef::Exceptions::Package)
|
828
|
+
end
|
829
|
+
|
830
|
+
it "should not raise an exception if the packages are installed or have a candidate" do
|
831
|
+
current_resource.version(["1.0", nil])
|
832
|
+
provider.candidate_version = [nil, "6.2"]
|
833
|
+
expect { provider.run_action(:upgrade) }.not_to raise_error
|
834
|
+
end
|
835
|
+
|
836
|
+
it "should not raise an exception if the packages are installed or have a candidate" do
|
837
|
+
current_resource.version(["1.0", nil])
|
838
|
+
provider.candidate_version = [nil, "6.2"]
|
839
|
+
expect { provider.run_action(:upgrade) }.not_to raise_error
|
840
|
+
end
|
841
|
+
end
|
842
|
+
|
843
|
+
describe "When removing multiple packages " do
|
844
|
+
before(:each) do
|
845
|
+
allow(provider).to receive(:remove_package).and_return(true)
|
846
|
+
current_resource.version ["1.0", "6.2"]
|
847
|
+
end
|
848
|
+
|
849
|
+
it "should remove the packages if all are installed" do
|
850
|
+
expect(provider).to be_removing_package
|
851
|
+
expect(provider).to receive(:remove_package).with(%w{emacs vi}, [nil])
|
852
|
+
provider.run_action(:remove)
|
853
|
+
expect(new_resource).to be_updated
|
854
|
+
expect(new_resource).to be_updated_by_last_action
|
855
|
+
end
|
856
|
+
|
857
|
+
it "should remove the packages if some are installed" do
|
858
|
+
current_resource.version ["1.0", nil]
|
859
|
+
expect(provider).to be_removing_package
|
860
|
+
expect(provider).to receive(:remove_package).with(%w{emacs vi}, [nil])
|
861
|
+
provider.run_action(:remove)
|
862
|
+
expect(new_resource).to be_updated
|
863
|
+
expect(new_resource).to be_updated_by_last_action
|
864
|
+
end
|
865
|
+
|
866
|
+
it "should remove the packages at a specific version if they are installed at that version" do
|
867
|
+
new_resource.version ["1.0", "6.2"]
|
868
|
+
expect(provider).to be_removing_package
|
869
|
+
expect(provider).to receive(:remove_package).with(%w{emacs vi}, ["1.0", "6.2"])
|
870
|
+
provider.run_action(:remove)
|
871
|
+
expect(new_resource).to be_updated_by_last_action
|
872
|
+
end
|
873
|
+
|
874
|
+
it "should remove the packages at a specific version any are is installed at that version" do
|
875
|
+
new_resource.version ["0.5", "6.2"]
|
876
|
+
expect(provider).to be_removing_package
|
877
|
+
expect(provider).to receive(:remove_package).with(%w{emacs vi}, ["0.5", "6.2"])
|
878
|
+
provider.run_action(:remove)
|
879
|
+
expect(new_resource).to be_updated_by_last_action
|
880
|
+
end
|
881
|
+
|
882
|
+
it "should not remove the packages at a specific version if they are not installed at that version" do
|
883
|
+
new_resource.version ["0.5", "6.0"]
|
884
|
+
expect(provider).not_to be_removing_package
|
885
|
+
expect(provider).not_to receive(:remove_package)
|
886
|
+
provider.run_action(:remove)
|
887
|
+
expect(new_resource).not_to be_updated_by_last_action
|
888
|
+
end
|
889
|
+
|
890
|
+
it "should not remove the packages if they are not installed" do
|
891
|
+
expect(provider).not_to receive(:remove_package)
|
892
|
+
allow(current_resource).to receive(:version).and_return(nil)
|
893
|
+
provider.run_action(:remove)
|
894
|
+
expect(new_resource).not_to be_updated_by_last_action
|
895
|
+
end
|
896
|
+
|
897
|
+
end
|
898
|
+
|
899
|
+
describe "When purging multiple packages " do
|
900
|
+
before(:each) do
|
901
|
+
allow(provider).to receive(:purge_package).and_return(true)
|
902
|
+
current_resource.version ["1.0", "6.2"]
|
903
|
+
end
|
904
|
+
|
905
|
+
it "should purge the packages if all are installed" do
|
906
|
+
expect(provider).to be_removing_package
|
907
|
+
expect(provider).to receive(:purge_package).with(%w{emacs vi}, [nil])
|
908
|
+
provider.run_action(:purge)
|
909
|
+
expect(new_resource).to be_updated
|
910
|
+
expect(new_resource).to be_updated_by_last_action
|
911
|
+
end
|
912
|
+
|
913
|
+
it "should purge the packages if some are installed" do
|
914
|
+
current_resource.version ["1.0", nil]
|
915
|
+
expect(provider).to be_removing_package
|
916
|
+
expect(provider).to receive(:purge_package).with(%w{emacs vi}, [nil])
|
917
|
+
provider.run_action(:purge)
|
918
|
+
expect(new_resource).to be_updated
|
919
|
+
expect(new_resource).to be_updated_by_last_action
|
920
|
+
end
|
921
|
+
|
922
|
+
it "should purge the packages at a specific version if they are installed at that version" do
|
923
|
+
new_resource.version ["1.0", "6.2"]
|
924
|
+
expect(provider).to be_removing_package
|
925
|
+
expect(provider).to receive(:purge_package).with(%w{emacs vi}, ["1.0", "6.2"])
|
926
|
+
provider.run_action(:purge)
|
927
|
+
expect(new_resource).to be_updated_by_last_action
|
928
|
+
end
|
929
|
+
|
930
|
+
it "should purge the packages at a specific version any are is installed at that version" do
|
931
|
+
new_resource.version ["0.5", "6.2"]
|
932
|
+
expect(provider).to be_removing_package
|
933
|
+
expect(provider).to receive(:purge_package).with(%w{emacs vi}, ["0.5", "6.2"])
|
934
|
+
provider.run_action(:purge)
|
935
|
+
expect(new_resource).to be_updated_by_last_action
|
936
|
+
end
|
937
|
+
|
938
|
+
it "should not purge the packages at a specific version if they are not installed at that version" do
|
939
|
+
new_resource.version ["0.5", "6.0"]
|
940
|
+
expect(provider).not_to be_removing_package
|
941
|
+
expect(provider).not_to receive(:purge_package)
|
942
|
+
provider.run_action(:purge)
|
943
|
+
expect(new_resource).not_to be_updated_by_last_action
|
944
|
+
end
|
945
|
+
|
946
|
+
it "should not purge the packages if they are not installed" do
|
947
|
+
expect(provider).not_to receive(:purge_package)
|
948
|
+
allow(current_resource).to receive(:version).and_return(nil)
|
949
|
+
provider.run_action(:purge)
|
950
|
+
expect(new_resource).not_to be_updated_by_last_action
|
951
|
+
end
|
952
|
+
end
|
953
|
+
|
954
|
+
describe "shell_out helpers" do
|
955
|
+
before(:each) do
|
956
|
+
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
957
|
+
end
|
958
|
+
|
959
|
+
[ :shell_out_with_timeout, :shell_out_with_timeout! ].each do |method|
|
960
|
+
stubbed_method = method == :shell_out_with_timeout! ? :shell_out_compacted! : :shell_out_compacted
|
961
|
+
[ %w{command arg1 arg2}, "command arg1 arg2" ].each do |command|
|
962
|
+
it "#{method} defaults to 900 seconds" do
|
963
|
+
expect(provider).to receive(stubbed_method).with(*command, timeout: 900)
|
964
|
+
provider.send(method, *command)
|
965
|
+
end
|
966
|
+
it "#{method} overrides the default timeout with its options" do
|
967
|
+
expect(provider).to receive(stubbed_method).with(*command, timeout: 1)
|
968
|
+
provider.send(method, *command, timeout: 1)
|
969
|
+
end
|
970
|
+
it "#{method} overrides both timeouts with the new_resource.timeout" do
|
971
|
+
new_resource.timeout(99)
|
972
|
+
expect(provider).to receive(stubbed_method).with(*command, timeout: 99)
|
973
|
+
provider.send(method, *command, timeout: 1)
|
974
|
+
end
|
975
|
+
it "#{method} defaults to 900 seconds and preserves options" do
|
976
|
+
expect(provider).to receive(stubbed_method).with(*command, env: nil, timeout: 900)
|
977
|
+
provider.send(method, *command, env: nil)
|
978
|
+
end
|
979
|
+
it "#{method} overrides the default timeout with its options and preserves options" do
|
980
|
+
expect(provider).to receive(stubbed_method).with(*command, timeout: 1, env: nil)
|
981
|
+
provider.send(method, *command, timeout: 1, env: nil)
|
982
|
+
end
|
983
|
+
it "#{method} overrides both timeouts with the new_resource.timeout and preseves options" do
|
984
|
+
new_resource.timeout(99)
|
985
|
+
expect(provider).to receive(stubbed_method).with(*command, timeout: 99, env: nil)
|
986
|
+
provider.send(method, *command, timeout: 1, env: nil)
|
987
|
+
end
|
988
|
+
end
|
989
|
+
end
|
990
|
+
end
|
991
|
+
|
992
|
+
describe "version_compare" do
|
993
|
+
it "tests equality" do
|
994
|
+
expect(provider.version_compare("1.3", "1.3")).to eql(0)
|
995
|
+
end
|
996
|
+
|
997
|
+
it "tests less than" do
|
998
|
+
expect(provider.version_compare("1.2", "1.3")).to eql(-1)
|
999
|
+
end
|
1000
|
+
|
1001
|
+
it "tests greater than" do
|
1002
|
+
expect(provider.version_compare("1.5", "1.3")).to eql(1)
|
1003
|
+
end
|
1004
|
+
|
1005
|
+
it "x.10 is greater than x.2 (so does not do floating point comparisons)" do
|
1006
|
+
expect(provider.version_compare("1.10", "1.2")).to eql(1)
|
1007
|
+
end
|
1008
|
+
|
1009
|
+
it "sanitizes inputs" do
|
1010
|
+
expect(provider.version_compare("1.3_3", "1.3")).to eql(0)
|
1011
|
+
end
|
1012
|
+
end
|
1013
|
+
end
|