chef 16.17.18-universal-mingw32 → 17.0.242-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 +9 -13
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/chef-universal-mingw32.gemspec +1 -1
- data/chef.gemspec +6 -8
- data/lib/chef/action_collection.rb +1 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application.rb +1 -1
- data/lib/chef/applications.rb +0 -1
- data/lib/chef/chef_fs/command_line.rb +5 -2
- data/lib/chef/chef_fs/file_system.rb +9 -10
- data/lib/chef/client.rb +2 -2
- data/lib/chef/compliance/default_attributes.rb +4 -3
- data/lib/chef/compliance/fetcher/automate.rb +0 -7
- data/lib/chef/compliance/reporter/automate.rb +17 -7
- data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
- data/lib/chef/compliance/reporter/cli.rb +77 -0
- data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
- data/lib/chef/compliance/reporter/json_file.rb +8 -1
- data/lib/chef/compliance/runner.rb +65 -27
- data/lib/chef/cookbook/gem_installer.rb +1 -5
- data/lib/chef/cookbook/synchronizer.rb +3 -5
- data/lib/chef/cookbook_loader.rb +2 -4
- data/lib/chef/cookbook_uploader.rb +0 -1
- data/lib/chef/cookbook_version.rb +4 -26
- data/lib/chef/data_bag_item.rb +11 -2
- data/lib/chef/data_collector/run_end_message.rb +2 -2
- data/lib/chef/delayed_evaluator.rb +4 -0
- data/lib/chef/deprecated.rb +6 -12
- data/lib/chef/dsl/chef_vault.rb +6 -6
- data/lib/chef/dsl/reboot_pending.rb +1 -2
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
- data/lib/chef/formatters/error_mapper.rb +2 -2
- data/lib/chef/group.rb +75 -0
- data/lib/chef/http.rb +5 -5
- data/lib/chef/mixin/get_source_from_package.rb +1 -1
- data/lib/chef/node/attribute.rb +6 -4
- data/lib/chef/node/immutable_collections.rb +13 -0
- data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
- data/lib/chef/node.rb +19 -20
- data/lib/chef/org.rb +3 -2
- data/lib/chef/policy_builder/policyfile.rb +0 -5
- data/lib/chef/property.rb +18 -0
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/git.rb +5 -7
- data/lib/chef/provider/group/dscl.rb +1 -1
- data/lib/chef/provider/group/groupadd.rb +3 -3
- data/lib/chef/provider/group/groupmod.rb +3 -3
- data/lib/chef/provider/group/pw.rb +3 -3
- data/lib/chef/provider/ifconfig.rb +2 -2
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount/aix.rb +3 -3
- data/lib/chef/provider/mount/mount.rb +5 -5
- data/lib/chef/provider/mount/windows.rb +1 -1
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/package/apt.rb +27 -1
- data/lib/chef/provider/package/deb.rb +3 -3
- data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +0 -5
- data/lib/chef/provider/package/rubygems.rb +9 -15
- data/lib/chef/provider/package/windows.rb +2 -4
- data/lib/chef/provider/package/yum/yum_helper.py +1 -1
- data/lib/chef/provider/package.rb +17 -21
- data/lib/chef/provider/route.rb +2 -2
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/freebsd.rb +15 -21
- data/lib/chef/provider/service/macosx.rb +4 -4
- data/lib/chef/provider/service/systemd.rb +43 -14
- data/lib/chef/provider/service/upstart.rb +2 -13
- data/lib/chef/provider/service/windows.rb +12 -12
- data/lib/chef/provider/service.rb +6 -6
- data/lib/chef/provider/subversion.rb +10 -12
- data/lib/chef/provider/systemd_unit.rb +36 -10
- data/lib/chef/provider/template/content.rb +3 -7
- data/lib/chef/provider/user/dscl.rb +1 -1
- data/lib/chef/provider/user/mac.rb +17 -20
- data/lib/chef/provider/user/pw.rb +1 -1
- data/lib/chef/provider/user/windows.rb +1 -1
- data/lib/chef/provider/user.rb +2 -2
- data/lib/chef/provider/zypper_repository.rb +2 -2
- data/lib/chef/provider.rb +1 -1
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/resource/alternatives.rb +6 -6
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/apt_preference.rb +2 -2
- data/lib/chef/resource/apt_repository.rb +6 -6
- data/lib/chef/resource/apt_update.rb +3 -2
- data/lib/chef/resource/archive_file.rb +2 -3
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/build_essential.rb +2 -6
- data/lib/chef/resource/chef_client_config.rb +2 -2
- data/lib/chef/resource/chef_client_cron.rb +4 -4
- data/lib/chef/resource/chef_client_launchd.rb +3 -3
- data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
- data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
- data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
- data/lib/chef/resource/chef_handler.rb +3 -7
- data/lib/chef/resource/chef_sleep.rb +1 -1
- data/lib/chef/resource/chef_vault_secret.rb +3 -8
- data/lib/chef/resource/chocolatey_config.rb +2 -6
- data/lib/chef/resource/chocolatey_feature.rb +2 -6
- data/lib/chef/resource/chocolatey_source.rb +4 -10
- data/lib/chef/resource/cron/_cron_shared.rb +2 -2
- data/lib/chef/resource/cron_access.rb +2 -4
- data/lib/chef/resource/dmg_package.rb +6 -10
- data/lib/chef/resource/dpkg_package.rb +1 -1
- data/lib/chef/resource/execute.rb +6 -1
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/group.rb +2 -2
- data/lib/chef/resource/homebrew_cask.rb +5 -15
- data/lib/chef/resource/homebrew_tap.rb +2 -6
- data/lib/chef/resource/hostname.rb +21 -17
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/kernel_module.rb +6 -17
- data/lib/chef/resource/locale.rb +2 -3
- data/lib/chef/resource/lwrp_base.rb +4 -0
- data/lib/chef/resource/macos_userdefaults.rb +10 -14
- data/lib/chef/resource/mdadm.rb +53 -7
- data/lib/chef/resource/mount.rb +3 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
- data/lib/chef/resource/plist.rb +7 -7
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/remote_file.rb +1 -1
- data/lib/chef/resource/rhsm_errata.rb +16 -1
- data/lib/chef/resource/rhsm_errata_level.rb +10 -1
- data/lib/chef/resource/rhsm_register.rb +12 -6
- data/lib/chef/resource/rhsm_repo.rb +2 -6
- data/lib/chef/resource/rhsm_subscription.rb +7 -11
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/sudo.rb +6 -6
- data/lib/chef/resource/support/client.erb +0 -6
- data/lib/chef/resource/sysctl.rb +2 -6
- data/lib/chef/resource/systemd_unit.rb +3 -3
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +1 -3
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user_ulimit.rb +2 -3
- data/lib/chef/resource/windows_ad_join.rb +2 -6
- data/lib/chef/resource/windows_audit_policy.rb +1 -1
- data/lib/chef/resource/windows_auto_run.rb +2 -5
- data/lib/chef/resource/windows_certificate.rb +207 -73
- data/lib/chef/resource/windows_dfs_folder.rb +2 -6
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
- data/lib/chef/resource/windows_dfs_server.rb +1 -3
- data/lib/chef/resource/windows_dns_record.rb +2 -6
- data/lib/chef/resource/windows_dns_zone.rb +2 -6
- data/lib/chef/resource/windows_env.rb +5 -4
- data/lib/chef/resource/windows_feature.rb +3 -9
- data/lib/chef/resource/windows_feature_dism.rb +2 -6
- data/lib/chef/resource/windows_feature_powershell.rb +3 -3
- data/lib/chef/resource/windows_firewall_profile.rb +4 -4
- data/lib/chef/resource/windows_firewall_rule.rb +2 -5
- data/lib/chef/resource/windows_font.rb +2 -4
- data/lib/chef/resource/windows_pagefile.rb +2 -6
- data/lib/chef/resource/windows_path.rb +2 -2
- data/lib/chef/resource/windows_printer.rb +4 -4
- data/lib/chef/resource/windows_printer_port.rb +6 -6
- data/lib/chef/resource/windows_security_policy.rb +9 -12
- data/lib/chef/resource/windows_share.rb +14 -21
- data/lib/chef/resource/windows_shortcut.rb +4 -6
- data/lib/chef/resource/windows_task.rb +17 -5
- data/lib/chef/resource/windows_uac.rb +2 -4
- data/lib/chef/resource/windows_user_privilege.rb +5 -5
- data/lib/chef/resource/windows_workgroup.rb +1 -2
- data/lib/chef/resource.rb +1 -1
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resources.rb +0 -1
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/user.rb +0 -1
- data/lib/chef/user_v1.rb +3 -4
- data/lib/chef/util/dsc/configuration_generator.rb +1 -0
- data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +2 -9
- data/lib/chef/win32/registry.rb +4 -2
- data/lib/chef/win32/version.rb +1 -2
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
- data/spec/data/lwrp/resources/bar.rb +2 -0
- data/spec/data/lwrp/resources/buck_passer.rb +1 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
- data/spec/data/lwrp/resources/foo.rb +2 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
- data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
- data/spec/data/lwrp_override/resources/foo.rb +1 -0
- data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
- data/spec/data/rubygems.org/sexp_processor-info +49 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/functional/dsl/registry_helper_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +7 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
- data/spec/functional/resource/dnf_package_spec.rb +4 -1
- data/spec/functional/resource/group_spec.rb +1 -5
- data/spec/functional/resource/link_spec.rb +0 -8
- data/spec/functional/resource/registry_spec.rb +8 -8
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +92 -35
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +5 -2
- data/spec/integration/client/exit_code_spec.rb +1 -1
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/compliance/compliance_spec.rb +1 -1
- data/spec/integration/ohai/ohai_spec.rb +7 -6
- data/spec/integration/recipes/accumulator_spec.rb +13 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
- data/spec/integration/recipes/lwrp_spec.rb +3 -1
- data/spec/integration/recipes/notifies_spec.rb +15 -1
- data/spec/integration/recipes/notifying_block_spec.rb +2 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +4 -1
- data/spec/spec_helper.rb +10 -13
- data/spec/support/chef_helpers.rb +0 -16
- data/spec/support/lib/chef/resource/with_state.rb +0 -1
- data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
- data/spec/support/lib/chef/resource/zen_master.rb +0 -1
- data/spec/support/matchers/leak.rb +7 -9
- data/spec/support/platform_helpers.rb +1 -8
- data/spec/support/shared/integration/integration_helper.rb +0 -1
- data/spec/support/shared/unit/script_resource.rb +2 -2
- data/spec/unit/application/solo_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system_spec.rb +1 -1
- data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
- data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
- data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
- data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
- data/spec/unit/compliance/runner_spec.rb +30 -4
- data/spec/unit/cookbook_version_spec.rb +0 -52
- data/spec/unit/data_bag_item_spec.rb +1 -6
- data/spec/unit/data_collector_spec.rb +2 -71
- data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
- data/spec/unit/dsl/registry_helper_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -3
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node_spec.rb +78 -0
- data/spec/unit/org_group_spec.rb +45 -0
- data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
- data/spec/unit/property_spec.rb +23 -22
- data/spec/unit/provider/cron_spec.rb +1 -1
- data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
- data/spec/unit/provider/group/groupmod_spec.rb +2 -2
- data/spec/unit/provider/group/pw_spec.rb +2 -2
- data/spec/unit/provider/group_spec.rb +1 -1
- data/spec/unit/provider/package/apt_spec.rb +84 -18
- data/spec/unit/provider/package/deb_spec.rb +3 -3
- data/spec/unit/provider/package/powershell_spec.rb +12 -74
- data/spec/unit/provider/package/rubygems_spec.rb +18 -30
- data/spec/unit/provider/service/arch_service_spec.rb +1 -0
- data/spec/unit/provider/service/debian_service_spec.rb +1 -0
- data/spec/unit/provider/service/macosx_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
- data/spec/unit/provider/service/windows_spec.rb +2 -2
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/systemd_unit_spec.rb +79 -60
- data/spec/unit/provider/zypper_repository_spec.rb +2 -2
- data/spec/unit/provider_spec.rb +0 -8
- data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
- data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
- data/spec/unit/resource/mount_spec.rb +0 -10
- data/spec/unit/resource/powershell_script_spec.rb +2 -2
- data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/user_ulimit_spec.rb +1 -14
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +0 -5
- data/spec/unit/user_spec.rb +1 -1
- data/spec/unit/user_v1_spec.rb +6 -4
- data/tasks/rspec.rb +15 -7
- metadata +19 -382
- data/bin/knife +0 -24
- data/lib/chef/application/knife.rb +0 -234
- data/lib/chef/application/windows_service.rb +0 -338
- data/lib/chef/application/windows_service_manager.rb +0 -205
- data/lib/chef/chef_fs/knife.rb +0 -160
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
- data/lib/chef/chef_fs/parallelizer.rb +0 -102
- data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
- data/lib/chef/knife/acl_add.rb +0 -57
- data/lib/chef/knife/acl_base.rb +0 -183
- data/lib/chef/knife/acl_bulk_add.rb +0 -78
- data/lib/chef/knife/acl_bulk_remove.rb +0 -83
- data/lib/chef/knife/acl_remove.rb +0 -62
- data/lib/chef/knife/acl_show.rb +0 -56
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
- data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
- data/lib/chef/knife/bootstrap/templates/README.md +0 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
- data/lib/chef/knife/bootstrap.rb +0 -1192
- data/lib/chef/knife/client_bulk_delete.rb +0 -104
- data/lib/chef/knife/client_create.rb +0 -101
- data/lib/chef/knife/client_delete.rb +0 -62
- data/lib/chef/knife/client_edit.rb +0 -52
- data/lib/chef/knife/client_key_create.rb +0 -73
- data/lib/chef/knife/client_key_delete.rb +0 -80
- data/lib/chef/knife/client_key_edit.rb +0 -83
- data/lib/chef/knife/client_key_list.rb +0 -73
- data/lib/chef/knife/client_key_show.rb +0 -80
- data/lib/chef/knife/client_list.rb +0 -41
- data/lib/chef/knife/client_reregister.rb +0 -58
- data/lib/chef/knife/client_show.rb +0 -48
- data/lib/chef/knife/config_get.rb +0 -39
- data/lib/chef/knife/config_get_profile.rb +0 -37
- data/lib/chef/knife/config_list.rb +0 -139
- data/lib/chef/knife/config_list_profiles.rb +0 -37
- data/lib/chef/knife/config_show.rb +0 -127
- data/lib/chef/knife/config_use.rb +0 -61
- data/lib/chef/knife/config_use_profile.rb +0 -47
- data/lib/chef/knife/configure.rb +0 -150
- data/lib/chef/knife/configure_client.rb +0 -48
- data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
- data/lib/chef/knife/cookbook_delete.rb +0 -151
- data/lib/chef/knife/cookbook_download.rb +0 -142
- data/lib/chef/knife/cookbook_list.rb +0 -47
- data/lib/chef/knife/cookbook_metadata.rb +0 -106
- data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
- data/lib/chef/knife/cookbook_show.rb +0 -98
- data/lib/chef/knife/cookbook_upload.rb +0 -292
- data/lib/chef/knife/core/bootstrap_context.rb +0 -264
- data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
- data/lib/chef/knife/core/formatting_options.rb +0 -49
- data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
- data/lib/chef/knife/core/generic_presenter.rb +0 -232
- data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
- data/lib/chef/knife/core/node_editor.rb +0 -130
- data/lib/chef/knife/core/node_presenter.rb +0 -133
- data/lib/chef/knife/core/object_loader.rb +0 -115
- data/lib/chef/knife/core/status_presenter.rb +0 -147
- data/lib/chef/knife/core/subcommand_loader.rb +0 -203
- data/lib/chef/knife/core/text_formatter.rb +0 -85
- data/lib/chef/knife/core/ui.rb +0 -338
- data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
- data/lib/chef/knife/data_bag_create.rb +0 -81
- data/lib/chef/knife/data_bag_delete.rb +0 -49
- data/lib/chef/knife/data_bag_edit.rb +0 -74
- data/lib/chef/knife/data_bag_from_file.rb +0 -113
- data/lib/chef/knife/data_bag_list.rb +0 -42
- data/lib/chef/knife/data_bag_secret_options.rb +0 -122
- data/lib/chef/knife/data_bag_show.rb +0 -69
- data/lib/chef/knife/delete.rb +0 -125
- data/lib/chef/knife/deps.rb +0 -156
- data/lib/chef/knife/diff.rb +0 -83
- data/lib/chef/knife/download.rb +0 -84
- data/lib/chef/knife/edit.rb +0 -88
- data/lib/chef/knife/environment_compare.rb +0 -128
- data/lib/chef/knife/environment_create.rb +0 -52
- data/lib/chef/knife/environment_delete.rb +0 -44
- data/lib/chef/knife/environment_edit.rb +0 -44
- data/lib/chef/knife/environment_from_file.rb +0 -84
- data/lib/chef/knife/environment_list.rb +0 -41
- data/lib/chef/knife/environment_show.rb +0 -47
- data/lib/chef/knife/exec.rb +0 -99
- data/lib/chef/knife/group_add.rb +0 -55
- data/lib/chef/knife/group_create.rb +0 -49
- data/lib/chef/knife/group_destroy.rb +0 -53
- data/lib/chef/knife/group_list.rb +0 -43
- data/lib/chef/knife/group_remove.rb +0 -56
- data/lib/chef/knife/group_show.rb +0 -49
- data/lib/chef/knife/key_create.rb +0 -112
- data/lib/chef/knife/key_create_base.rb +0 -50
- data/lib/chef/knife/key_delete.rb +0 -55
- data/lib/chef/knife/key_edit.rb +0 -118
- data/lib/chef/knife/key_edit_base.rb +0 -55
- data/lib/chef/knife/key_list.rb +0 -90
- data/lib/chef/knife/key_list_base.rb +0 -45
- data/lib/chef/knife/key_show.rb +0 -53
- data/lib/chef/knife/list.rb +0 -177
- data/lib/chef/knife/node_bulk_delete.rb +0 -75
- data/lib/chef/knife/node_create.rb +0 -47
- data/lib/chef/knife/node_delete.rb +0 -46
- data/lib/chef/knife/node_edit.rb +0 -70
- data/lib/chef/knife/node_environment_set.rb +0 -53
- data/lib/chef/knife/node_from_file.rb +0 -51
- data/lib/chef/knife/node_list.rb +0 -44
- data/lib/chef/knife/node_policy_set.rb +0 -79
- data/lib/chef/knife/node_run_list_add.rb +0 -104
- data/lib/chef/knife/node_run_list_remove.rb +0 -67
- data/lib/chef/knife/node_run_list_set.rb +0 -66
- data/lib/chef/knife/node_show.rb +0 -63
- data/lib/chef/knife/null.rb +0 -12
- data/lib/chef/knife/raw.rb +0 -123
- data/lib/chef/knife/recipe_list.rb +0 -32
- data/lib/chef/knife/rehash.rb +0 -50
- data/lib/chef/knife/role_bulk_delete.rb +0 -66
- data/lib/chef/knife/role_create.rb +0 -53
- data/lib/chef/knife/role_delete.rb +0 -46
- data/lib/chef/knife/role_edit.rb +0 -45
- data/lib/chef/knife/role_env_run_list_add.rb +0 -87
- data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
- data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_env_run_list_set.rb +0 -70
- data/lib/chef/knife/role_from_file.rb +0 -51
- data/lib/chef/knife/role_list.rb +0 -42
- data/lib/chef/knife/role_run_list_add.rb +0 -87
- data/lib/chef/knife/role_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_run_list_remove.rb +0 -56
- data/lib/chef/knife/role_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_run_list_set.rb +0 -69
- data/lib/chef/knife/role_show.rb +0 -48
- data/lib/chef/knife/search.rb +0 -194
- data/lib/chef/knife/serve.rb +0 -65
- data/lib/chef/knife/show.rb +0 -72
- data/lib/chef/knife/ssh.rb +0 -645
- data/lib/chef/knife/ssl_check.rb +0 -284
- data/lib/chef/knife/ssl_fetch.rb +0 -161
- data/lib/chef/knife/status.rb +0 -95
- data/lib/chef/knife/supermarket_download.rb +0 -121
- data/lib/chef/knife/supermarket_install.rb +0 -192
- data/lib/chef/knife/supermarket_list.rb +0 -76
- data/lib/chef/knife/supermarket_search.rb +0 -53
- data/lib/chef/knife/supermarket_share.rb +0 -166
- data/lib/chef/knife/supermarket_show.rb +0 -66
- data/lib/chef/knife/supermarket_unshare.rb +0 -61
- data/lib/chef/knife/tag_create.rb +0 -52
- data/lib/chef/knife/tag_delete.rb +0 -60
- data/lib/chef/knife/tag_list.rb +0 -47
- data/lib/chef/knife/upload.rb +0 -86
- data/lib/chef/knife/user_create.rb +0 -107
- data/lib/chef/knife/user_delete.rb +0 -44
- data/lib/chef/knife/user_dissociate.rb +0 -42
- data/lib/chef/knife/user_edit.rb +0 -52
- data/lib/chef/knife/user_invite_add.rb +0 -43
- data/lib/chef/knife/user_invite_list.rb +0 -34
- data/lib/chef/knife/user_invite_rescind.rb +0 -63
- data/lib/chef/knife/user_key_create.rb +0 -73
- data/lib/chef/knife/user_key_delete.rb +0 -80
- data/lib/chef/knife/user_key_edit.rb +0 -83
- data/lib/chef/knife/user_key_list.rb +0 -73
- data/lib/chef/knife/user_key_show.rb +0 -80
- data/lib/chef/knife/user_list.rb +0 -42
- data/lib/chef/knife/user_reregister.rb +0 -59
- data/lib/chef/knife/user_show.rb +0 -48
- data/lib/chef/knife/xargs.rb +0 -282
- data/lib/chef/knife/yaml_convert.rb +0 -91
- data/lib/chef/knife.rb +0 -665
- data/lib/chef/resource/user/dscl_user.rb +0 -35
- data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
- data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
- data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
- data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
- data/spec/data/knife_subcommand/test_yourself.rb +0 -21
- data/spec/functional/knife/configure_spec.rb +0 -33
- data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
- data/spec/functional/knife/exec_spec.rb +0 -55
- data/spec/functional/knife/rehash_spec.rb +0 -39
- data/spec/functional/knife/smoke_test.rb +0 -42
- data/spec/functional/knife/ssh_spec.rb +0 -352
- data/spec/functional/resource/user/dscl_spec.rb +0 -188
- data/spec/functional/resource/windows_service_spec.rb +0 -105
- data/spec/functional/win32/service_manager_spec.rb +0 -220
- data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
- data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
- data/spec/integration/knife/chefignore_spec.rb +0 -301
- data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
- data/spec/integration/knife/client_create_spec.rb +0 -70
- data/spec/integration/knife/client_delete_spec.rb +0 -64
- data/spec/integration/knife/client_key_create_spec.rb +0 -66
- data/spec/integration/knife/client_key_delete_spec.rb +0 -43
- data/spec/integration/knife/client_key_list_spec.rb +0 -61
- data/spec/integration/knife/client_key_show_spec.rb +0 -45
- data/spec/integration/knife/client_list_spec.rb +0 -49
- data/spec/integration/knife/client_show_spec.rb +0 -37
- data/spec/integration/knife/common_options_spec.rb +0 -174
- data/spec/integration/knife/config_list_spec.rb +0 -220
- data/spec/integration/knife/config_show_spec.rb +0 -192
- data/spec/integration/knife/config_use_spec.rb +0 -198
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
- data/spec/integration/knife/cookbook_download_spec.rb +0 -72
- data/spec/integration/knife/cookbook_list_spec.rb +0 -55
- data/spec/integration/knife/cookbook_show_spec.rb +0 -149
- data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
- data/spec/integration/knife/data_bag_create_spec.rb +0 -125
- data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
- data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
- data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
- data/spec/integration/knife/data_bag_list_spec.rb +0 -44
- data/spec/integration/knife/data_bag_show_spec.rb +0 -95
- data/spec/integration/knife/delete_spec.rb +0 -1018
- data/spec/integration/knife/deps_spec.rb +0 -703
- data/spec/integration/knife/diff_spec.rb +0 -605
- data/spec/integration/knife/download_spec.rb +0 -1336
- data/spec/integration/knife/environment_compare_spec.rb +0 -75
- data/spec/integration/knife/environment_create_spec.rb +0 -41
- data/spec/integration/knife/environment_delete_spec.rb +0 -37
- data/spec/integration/knife/environment_from_file_spec.rb +0 -116
- data/spec/integration/knife/environment_list_spec.rb +0 -42
- data/spec/integration/knife/environment_show_spec.rb +0 -77
- data/spec/integration/knife/list_spec.rb +0 -1060
- data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/node_create_spec.rb +0 -47
- data/spec/integration/knife/node_delete_spec.rb +0 -48
- data/spec/integration/knife/node_environment_set_spec.rb +0 -46
- data/spec/integration/knife/node_from_file_spec.rb +0 -59
- data/spec/integration/knife/node_list_spec.rb +0 -45
- data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
- data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
- data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
- data/spec/integration/knife/node_show_spec.rb +0 -36
- data/spec/integration/knife/raw_spec.rb +0 -297
- data/spec/integration/knife/redirection_spec.rb +0 -64
- data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/role_create_spec.rb +0 -41
- data/spec/integration/knife/role_delete_spec.rb +0 -48
- data/spec/integration/knife/role_from_file_spec.rb +0 -96
- data/spec/integration/knife/role_list_spec.rb +0 -45
- data/spec/integration/knife/role_show_spec.rb +0 -51
- data/spec/integration/knife/search_node_spec.rb +0 -40
- data/spec/integration/knife/serve_spec.rb +0 -92
- data/spec/integration/knife/show_spec.rb +0 -197
- data/spec/integration/knife/upload_spec.rb +0 -1616
- data/spec/support/shared/functional/knife.rb +0 -37
- data/spec/support/shared/functional/win32_service.rb +0 -57
- data/spec/support/shared/integration/knife_support.rb +0 -192
- data/spec/support/shared/unit/knife_shared.rb +0 -39
- data/spec/unit/application/knife_spec.rb +0 -241
- data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
- data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
- data/spec/unit/knife/bootstrap_spec.rb +0 -2220
- data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
- data/spec/unit/knife/client_create_spec.rb +0 -169
- data/spec/unit/knife/client_delete_spec.rb +0 -99
- data/spec/unit/knife/client_edit_spec.rb +0 -53
- data/spec/unit/knife/client_list_spec.rb +0 -34
- data/spec/unit/knife/client_reregister_spec.rb +0 -62
- data/spec/unit/knife/client_show_spec.rb +0 -52
- data/spec/unit/knife/configure_client_spec.rb +0 -81
- data/spec/unit/knife/configure_spec.rb +0 -190
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
- data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
- data/spec/unit/knife/cookbook_download_spec.rb +0 -255
- data/spec/unit/knife/cookbook_list_spec.rb +0 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
- data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
- data/spec/unit/knife/cookbook_show_spec.rb +0 -253
- data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
- data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
- data/spec/unit/knife/core/node_editor_spec.rb +0 -211
- data/spec/unit/knife/core/object_loader_spec.rb +0 -81
- data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
- data/spec/unit/knife/core/ui_spec.rb +0 -656
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
- data/spec/unit/knife/data_bag_create_spec.rb +0 -175
- data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
- data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
- data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
- data/spec/unit/knife/data_bag_show_spec.rb +0 -139
- data/spec/unit/knife/environment_compare_spec.rb +0 -112
- data/spec/unit/knife/environment_create_spec.rb +0 -91
- data/spec/unit/knife/environment_delete_spec.rb +0 -71
- data/spec/unit/knife/environment_edit_spec.rb +0 -79
- data/spec/unit/knife/environment_from_file_spec.rb +0 -90
- data/spec/unit/knife/environment_list_spec.rb +0 -54
- data/spec/unit/knife/environment_show_spec.rb +0 -52
- data/spec/unit/knife/key_create_spec.rb +0 -223
- data/spec/unit/knife/key_delete_spec.rb +0 -133
- data/spec/unit/knife/key_edit_spec.rb +0 -264
- data/spec/unit/knife/key_helper.rb +0 -74
- data/spec/unit/knife/key_list_spec.rb +0 -216
- data/spec/unit/knife/key_show_spec.rb +0 -126
- data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
- data/spec/unit/knife/node_delete_spec.rb +0 -77
- data/spec/unit/knife/node_edit_spec.rb +0 -116
- data/spec/unit/knife/node_environment_set_spec.rb +0 -61
- data/spec/unit/knife/node_from_file_spec.rb +0 -59
- data/spec/unit/knife/node_list_spec.rb +0 -62
- data/spec/unit/knife/node_policy_set_spec.rb +0 -122
- data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
- data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
- data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
- data/spec/unit/knife/node_show_spec.rb +0 -65
- data/spec/unit/knife/raw_spec.rb +0 -43
- data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
- data/spec/unit/knife/role_create_spec.rb +0 -80
- data/spec/unit/knife/role_delete_spec.rb +0 -67
- data/spec/unit/knife/role_edit_spec.rb +0 -77
- data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
- data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
- data/spec/unit/knife/role_from_file_spec.rb +0 -69
- data/spec/unit/knife/role_list_spec.rb +0 -54
- data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
- data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
- data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
- data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
- data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
- data/spec/unit/knife/role_show_spec.rb +0 -59
- data/spec/unit/knife/ssh_spec.rb +0 -403
- data/spec/unit/knife/ssl_check_spec.rb +0 -256
- data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
- data/spec/unit/knife/status_spec.rb +0 -112
- data/spec/unit/knife/supermarket_download_spec.rb +0 -152
- data/spec/unit/knife/supermarket_install_spec.rb +0 -202
- data/spec/unit/knife/supermarket_list_spec.rb +0 -70
- data/spec/unit/knife/supermarket_search_spec.rb +0 -85
- data/spec/unit/knife/supermarket_share_spec.rb +0 -208
- data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
- data/spec/unit/knife/tag_create_spec.rb +0 -23
- data/spec/unit/knife/tag_delete_spec.rb +0 -25
- data/spec/unit/knife/tag_list_spec.rb +0 -23
- data/spec/unit/knife/user_create_spec.rb +0 -184
- data/spec/unit/knife/user_delete_spec.rb +0 -46
- data/spec/unit/knife/user_edit_spec.rb +0 -48
- data/spec/unit/knife/user_list_spec.rb +0 -36
- data/spec/unit/knife/user_reregister_spec.rb +0 -56
- data/spec/unit/knife/user_show_spec.rb +0 -46
- data/spec/unit/knife_spec.rb +0 -634
- data/spec/unit/provider/user/dscl_spec.rb +0 -699
- data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,208 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Stephen Delano (<stephen@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) 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
|
-
require "chef/knife/supermarket_share"
|
21
|
-
require "chef/cookbook_uploader"
|
22
|
-
require "chef/cookbook_site_streaming_uploader"
|
23
|
-
|
24
|
-
describe Chef::Knife::SupermarketShare do
|
25
|
-
|
26
|
-
before(:each) do
|
27
|
-
@knife = Chef::Knife::SupermarketShare.new
|
28
|
-
# Merge default settings in.
|
29
|
-
@knife.merge_configs
|
30
|
-
@knife.name_args = %w{cookbook_name AwesomeSausage}
|
31
|
-
|
32
|
-
@cookbook = Chef::CookbookVersion.new("cookbook_name")
|
33
|
-
|
34
|
-
@cookbook_loader = double("Chef::CookbookLoader")
|
35
|
-
allow(@cookbook_loader).to receive(:cookbook_exists?).and_return(true)
|
36
|
-
allow(@cookbook_loader).to receive(:[]).and_return(@cookbook)
|
37
|
-
allow(Chef::CookbookLoader).to receive(:new).and_return(@cookbook_loader)
|
38
|
-
|
39
|
-
@noauth_rest = double(Chef::ServerAPI)
|
40
|
-
allow(@knife).to receive(:noauth_rest).and_return(@noauth_rest)
|
41
|
-
|
42
|
-
@cookbook_uploader = Chef::CookbookUploader.new("herpderp", rest: "norest")
|
43
|
-
allow(Chef::CookbookUploader).to receive(:new).and_return(@cookbook_uploader)
|
44
|
-
allow(@cookbook_uploader).to receive(:validate_cookbooks).and_return(true)
|
45
|
-
allow(Chef::CookbookSiteStreamingUploader).to receive(:create_build_dir).and_return(Dir.mktmpdir)
|
46
|
-
|
47
|
-
allow(@knife).to receive(:shell_out!).and_return(true)
|
48
|
-
@stdout = StringIO.new
|
49
|
-
@stderr = StringIO.new
|
50
|
-
allow(@knife.ui).to receive(:stdout).and_return(@stdout)
|
51
|
-
allow(@knife.ui).to receive(:stderr).and_return(@stderr)
|
52
|
-
end
|
53
|
-
|
54
|
-
describe "run" do
|
55
|
-
|
56
|
-
before(:each) do
|
57
|
-
allow(@knife).to receive(:do_upload).and_return(true)
|
58
|
-
@category_response = {
|
59
|
-
"name" => "cookbook_name",
|
60
|
-
"category" => "Testing Category",
|
61
|
-
}
|
62
|
-
@bad_category_response = {
|
63
|
-
"error_code" => "NOT_FOUND",
|
64
|
-
"error_messages" => [
|
65
|
-
"Resource does not exist.",
|
66
|
-
],
|
67
|
-
}
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should set true to config[:dry_run] as default" do
|
71
|
-
expect(@knife.config[:dry_run]).to be_falsey
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should should print usage and exit when given no arguments" do
|
75
|
-
@knife.name_args = []
|
76
|
-
expect(@knife).to receive(:show_usage)
|
77
|
-
expect(@knife.ui).to receive(:fatal)
|
78
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
79
|
-
end
|
80
|
-
|
81
|
-
it "should not fail when given only 1 argument and can determine category" do
|
82
|
-
@knife.name_args = ["cookbook_name"]
|
83
|
-
expect(@noauth_rest).to receive(:get).with("https://supermarket.chef.io/api/v1/cookbooks/cookbook_name").and_return(@category_response)
|
84
|
-
expect(@knife).to receive(:do_upload)
|
85
|
-
@knife.run
|
86
|
-
end
|
87
|
-
|
88
|
-
it "should use a default category when given only 1 argument and cannot determine category" do
|
89
|
-
@knife.name_args = ["cookbook_name"]
|
90
|
-
expect(@noauth_rest).to receive(:get).with("https://supermarket.chef.io/api/v1/cookbooks/cookbook_name") { raise Net::HTTPClientException.new("404 Not Found", OpenStruct.new(code: "404")) }
|
91
|
-
expect(@knife).to receive(:do_upload)
|
92
|
-
expect { @knife.run }.to_not raise_error
|
93
|
-
end
|
94
|
-
|
95
|
-
it "should print error and exit when given only 1 argument and Chef::ServerAPI throws an exception" do
|
96
|
-
@knife.name_args = ["cookbook_name"]
|
97
|
-
expect(@noauth_rest).to receive(:get).with("https://supermarket.chef.io/api/v1/cookbooks/cookbook_name") { raise Errno::ECONNREFUSED, "Connection refused" }
|
98
|
-
expect(@knife.ui).to receive(:fatal)
|
99
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
100
|
-
end
|
101
|
-
|
102
|
-
it "should check if the cookbook exists" do
|
103
|
-
expect(@cookbook_loader).to receive(:cookbook_exists?)
|
104
|
-
@knife.run
|
105
|
-
end
|
106
|
-
|
107
|
-
it "should exit and log to error if the cookbook doesn't exist" do
|
108
|
-
allow(@cookbook_loader).to receive(:cookbook_exists?).and_return(false)
|
109
|
-
expect(@knife.ui).to receive(:error)
|
110
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
111
|
-
end
|
112
|
-
|
113
|
-
if File.exist?("/usr/bin/gnutar") || File.exist?("/bin/gnutar")
|
114
|
-
it "should use gnutar to make a tarball of the cookbook" do
|
115
|
-
expect(@knife).to receive(:shell_out!) do |args|
|
116
|
-
expect(args.to_s).to match(/gnutar -czf/)
|
117
|
-
end
|
118
|
-
@knife.run
|
119
|
-
end
|
120
|
-
else
|
121
|
-
it "should make a tarball of the cookbook" do
|
122
|
-
expect(@knife).to receive(:shell_out!) do |args|
|
123
|
-
expect(args.to_s).to match(/tar -czf/)
|
124
|
-
end
|
125
|
-
@knife.run
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
it "should exit and log to error when the tarball creation fails" do
|
130
|
-
allow(@knife).to receive(:shell_out!).and_raise(Chef::Exceptions::Exec)
|
131
|
-
expect(@knife.ui).to receive(:error)
|
132
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
133
|
-
end
|
134
|
-
|
135
|
-
it "should upload the cookbook and clean up the tarball" do
|
136
|
-
expect(@knife).to receive(:do_upload)
|
137
|
-
expect(FileUtils).to receive(:rm_rf)
|
138
|
-
@knife.run
|
139
|
-
end
|
140
|
-
|
141
|
-
context "when the --dry-run flag is specified" do
|
142
|
-
before do
|
143
|
-
allow(Chef::CookbookSiteStreamingUploader).to receive(:create_build_dir).and_return("/var/tmp/dummy")
|
144
|
-
@knife.config = { dry_run: true }
|
145
|
-
@so = instance_double("Mixlib::ShellOut")
|
146
|
-
allow(@knife).to receive(:shell_out!).and_return(@so)
|
147
|
-
allow(@so).to receive(:stdout).and_return("file")
|
148
|
-
end
|
149
|
-
|
150
|
-
it "should list files in the tarball" do
|
151
|
-
allow(@knife).to receive(:tar_cmd).and_return("footar")
|
152
|
-
expect(@knife).to receive(:shell_out!).with("footar -czf #{@cookbook.name}.tgz #{@cookbook.name}", { cwd: "/var/tmp/dummy" })
|
153
|
-
expect(@knife).to receive(:shell_out!).with("footar -tzf #{@cookbook.name}.tgz", { cwd: "/var/tmp/dummy" })
|
154
|
-
@knife.run
|
155
|
-
end
|
156
|
-
|
157
|
-
it "does not upload the cookbook" do
|
158
|
-
expect(@knife).not_to receive(:do_upload)
|
159
|
-
@knife.run
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
describe "do_upload" do
|
165
|
-
|
166
|
-
before(:each) do
|
167
|
-
@upload_response = double("Net::HTTPResponse")
|
168
|
-
allow(Chef::CookbookSiteStreamingUploader).to receive(:post).and_return(@upload_response)
|
169
|
-
|
170
|
-
allow(File).to receive(:open).and_return(true)
|
171
|
-
end
|
172
|
-
|
173
|
-
it 'should post the cookbook to "https://supermarket.chef.io"' do
|
174
|
-
response_text = Chef::JSONCompat.to_json({ uri: "https://supermarket.chef.io/cookbooks/cookbook_name" })
|
175
|
-
allow(@upload_response).to receive(:body).and_return(response_text)
|
176
|
-
allow(@upload_response).to receive(:code).and_return(201)
|
177
|
-
expect(Chef::CookbookSiteStreamingUploader).to receive(:post).with(/supermarket\.chef\.io/, anything, anything, anything)
|
178
|
-
@knife.run
|
179
|
-
end
|
180
|
-
|
181
|
-
it "should alert the user when a version already exists" do
|
182
|
-
response_text = Chef::JSONCompat.to_json({ error_messages: ["Version already exists"] })
|
183
|
-
allow(@upload_response).to receive(:body).and_return(response_text)
|
184
|
-
allow(@upload_response).to receive(:code).and_return(409)
|
185
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
186
|
-
expect(@stderr.string).to match(/ERROR(.+)cookbook already exists/)
|
187
|
-
end
|
188
|
-
|
189
|
-
it "should pass any errors on to the user" do
|
190
|
-
response_text = Chef::JSONCompat.to_json({ error_messages: ["You're holding it wrong"] })
|
191
|
-
allow(@upload_response).to receive(:body).and_return(response_text)
|
192
|
-
allow(@upload_response).to receive(:code).and_return(403)
|
193
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
194
|
-
expect(@stderr.string).to match("ERROR(.*)You're holding it wrong")
|
195
|
-
end
|
196
|
-
|
197
|
-
it "should print the body if no errors are exposed on failure" do
|
198
|
-
response_text = Chef::JSONCompat.to_json({ system_error: "Your call was dropped", reason: "There's a map for that" })
|
199
|
-
allow(@upload_response).to receive(:body).and_return(response_text)
|
200
|
-
allow(@upload_response).to receive(:code).and_return(500)
|
201
|
-
expect(@knife.ui).to receive(:error).with(/#{Regexp.escape(response_text)}/) # .ordered
|
202
|
-
expect(@knife.ui).to receive(:error).with(/Unknown error/) # .ordered
|
203
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
204
|
-
end
|
205
|
-
|
206
|
-
end
|
207
|
-
|
208
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Stephen Delano (<stephen@chef.io>)
|
3
|
-
# Author:: Tim Hinderliter (<tim@chef.io>)
|
4
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
5
|
-
# License:: Apache License, Version 2.0
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
#
|
19
|
-
|
20
|
-
require "spec_helper"
|
21
|
-
require "chef/knife/supermarket_unshare"
|
22
|
-
|
23
|
-
describe Chef::Knife::SupermarketUnshare do
|
24
|
-
|
25
|
-
before(:each) do
|
26
|
-
@knife = Chef::Knife::SupermarketUnshare.new
|
27
|
-
@knife.name_args = ["cookbook_name"]
|
28
|
-
allow(@knife).to receive(:confirm).and_return(true)
|
29
|
-
|
30
|
-
@rest = double("Chef::ServerAPI")
|
31
|
-
allow(@rest).to receive(:delete).and_return(true)
|
32
|
-
allow(@knife).to receive(:rest).and_return(@rest)
|
33
|
-
@stdout = StringIO.new
|
34
|
-
allow(@knife.ui).to receive(:stdout).and_return(@stdout)
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "run" do
|
38
|
-
|
39
|
-
describe "with no cookbook argument" do
|
40
|
-
it "should print the usage and exit" do
|
41
|
-
@knife.name_args = []
|
42
|
-
expect(@knife.ui).to receive(:fatal)
|
43
|
-
expect(@knife).to receive(:show_usage)
|
44
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should confirm you want to unshare the cookbook" do
|
49
|
-
expect(@knife).to receive(:confirm)
|
50
|
-
@knife.run
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should send a delete request to the cookbook site" do
|
54
|
-
expect(@rest).to receive(:delete)
|
55
|
-
@knife.run
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should log an error and exit when forbidden" do
|
59
|
-
exception = double('403 "Forbidden"', code: "403")
|
60
|
-
allow(@rest).to receive(:delete).and_raise(Net::HTTPClientException.new('403 "Forbidden"', exception))
|
61
|
-
expect(@knife.ui).to receive(:error)
|
62
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should re-raise any non-forbidden errors on delete" do
|
66
|
-
exception = double('500 "Application Error"', code: "500")
|
67
|
-
allow(@rest).to receive(:delete).and_raise(Net::HTTPClientException.new('500 "Application Error"', exception))
|
68
|
-
expect { @knife.run }.to raise_error(Net::HTTPClientException)
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should log a success message" do
|
72
|
-
expect(@knife.ui).to receive(:info)
|
73
|
-
@knife.run
|
74
|
-
end
|
75
|
-
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Chef::Knife::TagCreate do
|
4
|
-
before(:each) do
|
5
|
-
Chef::Config[:node_name] = "webmonkey.example.com"
|
6
|
-
@knife = Chef::Knife::TagCreate.new
|
7
|
-
@knife.name_args = [ Chef::Config[:node_name], "happytag" ]
|
8
|
-
|
9
|
-
@node = Chef::Node.new
|
10
|
-
allow(@node).to receive :save
|
11
|
-
allow(Chef::Node).to receive(:load).and_return @node
|
12
|
-
@stderr = StringIO.new
|
13
|
-
allow(@knife.ui).to receive(:stderr).and_return(@stderr)
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "run" do
|
17
|
-
it "can create tags on a node" do
|
18
|
-
@knife.run
|
19
|
-
expect(@node.tags).to eq(["happytag"])
|
20
|
-
expect(@stderr.string).to match(/created tags happytag.+node webmonkey.example.com/i)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Chef::Knife::TagDelete do
|
4
|
-
before(:each) do
|
5
|
-
Chef::Config[:node_name] = "webmonkey.example.com"
|
6
|
-
@knife = Chef::Knife::TagDelete.new
|
7
|
-
@knife.name_args = [ Chef::Config[:node_name], "sadtag" ]
|
8
|
-
|
9
|
-
@node = Chef::Node.new
|
10
|
-
allow(@node).to receive :save
|
11
|
-
@node.tags << "sadtag" << "happytag"
|
12
|
-
allow(Chef::Node).to receive(:load).and_return @node
|
13
|
-
@stderr = StringIO.new
|
14
|
-
allow(@knife.ui).to receive(:stderr).and_return(@stderr)
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "run" do
|
18
|
-
it "can delete tags on a node" do
|
19
|
-
expect(@node.tags).to eq(%w{sadtag happytag})
|
20
|
-
@knife.run
|
21
|
-
expect(@node.tags).to eq(["happytag"])
|
22
|
-
expect(@stderr.string).to match(/deleted.+sadtag/i)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Chef::Knife::TagList do
|
4
|
-
before(:each) do
|
5
|
-
Chef::Config[:node_name] = "webmonkey.example.com"
|
6
|
-
@knife = Chef::Knife::TagList.new
|
7
|
-
@knife.name_args = [ Chef::Config[:node_name], "sadtag" ]
|
8
|
-
|
9
|
-
@node = Chef::Node.new
|
10
|
-
allow(@node).to receive :save
|
11
|
-
@node.tags << "sadtag" << "happytag"
|
12
|
-
allow(Chef::Node).to receive(:load).and_return @node
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "run" do
|
16
|
-
it "can list tags on a node" do
|
17
|
-
expected = %w{sadtag happytag}
|
18
|
-
expect(@node.tags).to eq(expected)
|
19
|
-
expect(@knife).to receive(:output).with(expected)
|
20
|
-
@knife.run
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,184 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Steven Danna (<steve@chef.io>)
|
3
|
-
# Author:: Tyler Cloke (<tyler@chef.io>)
|
4
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
5
|
-
# License:: Apache License, Version 2.0
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
#
|
19
|
-
|
20
|
-
require "spec_helper"
|
21
|
-
|
22
|
-
Chef::Knife::UserCreate.load_deps
|
23
|
-
|
24
|
-
describe Chef::Knife::UserCreate do
|
25
|
-
let(:knife) { Chef::Knife::UserCreate.new }
|
26
|
-
|
27
|
-
let(:stderr) do
|
28
|
-
StringIO.new
|
29
|
-
end
|
30
|
-
|
31
|
-
let(:stdout) do
|
32
|
-
StringIO.new
|
33
|
-
end
|
34
|
-
|
35
|
-
before(:each) do
|
36
|
-
allow(knife.ui).to receive(:stdout).and_return(stdout)
|
37
|
-
allow(knife.ui).to receive(:stderr).and_return(stderr)
|
38
|
-
allow(knife.ui).to receive(:warn)
|
39
|
-
end
|
40
|
-
|
41
|
-
context "when USERNAME isn't specified" do
|
42
|
-
# from spec/support/shared/unit/knife_shared.rb
|
43
|
-
it_should_behave_like "mandatory field missing" do
|
44
|
-
let(:name_args) { [] }
|
45
|
-
let(:fieldname) { "username" }
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
context "when FIRST_NAME isn't specified" do
|
50
|
-
# from spec/support/shared/unit/knife_shared.rb
|
51
|
-
it_should_behave_like "mandatory field missing" do
|
52
|
-
let(:name_args) { %w{some_user some_display_name} }
|
53
|
-
let(:fieldname) { "first name" }
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context "when LAST_NAME isn't specified" do
|
58
|
-
# from spec/support/shared/unit/knife_shared.rb
|
59
|
-
it_should_behave_like "mandatory field missing" do
|
60
|
-
let(:name_args) { %w{some_user some_display_name some_first_name} }
|
61
|
-
let(:fieldname) { "last name" }
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
context "when EMAIL isn't specified" do
|
66
|
-
# from spec/support/shared/unit/knife_shared.rb
|
67
|
-
it_should_behave_like "mandatory field missing" do
|
68
|
-
let(:name_args) { %w{some_user some_display_name some_first_name some_last_name} }
|
69
|
-
let(:fieldname) { "email" }
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
context "when PASSWORD isn't specified" do
|
74
|
-
# from spec/support/shared/unit/knife_shared.rb
|
75
|
-
it_should_behave_like "mandatory field missing" do
|
76
|
-
let(:name_args) { %w{some_user some_display_name some_first_name some_last_name some_email} }
|
77
|
-
let(:fieldname) { "password" }
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
context "when all mandatory fields are validly specified" do
|
82
|
-
before do
|
83
|
-
knife.name_args = %w{some_user some_display_name some_first_name some_last_name some_email some_password}
|
84
|
-
allow(knife).to receive(:edit_hash).and_return(knife.user.to_hash)
|
85
|
-
allow(knife).to receive(:create_user_from_hash).and_return(knife.user)
|
86
|
-
end
|
87
|
-
|
88
|
-
before(:each) do
|
89
|
-
# reset the user field every run
|
90
|
-
knife.user_field = nil
|
91
|
-
end
|
92
|
-
|
93
|
-
it "sets all the mandatory fields" do
|
94
|
-
knife.run
|
95
|
-
expect(knife.user.username).to eq("some_user")
|
96
|
-
expect(knife.user.display_name).to eq("some_display_name")
|
97
|
-
expect(knife.user.first_name).to eq("some_first_name")
|
98
|
-
expect(knife.user.last_name).to eq("some_last_name")
|
99
|
-
expect(knife.user.email).to eq("some_email")
|
100
|
-
expect(knife.user.password).to eq("some_password")
|
101
|
-
end
|
102
|
-
|
103
|
-
context "when user_key and prevent_keygen are passed" do
|
104
|
-
before do
|
105
|
-
knife.config[:user_key] = "some_key"
|
106
|
-
knife.config[:prevent_keygen] = true
|
107
|
-
end
|
108
|
-
it "prints the usage" do
|
109
|
-
expect(knife).to receive(:show_usage)
|
110
|
-
expect { knife.run }.to raise_error(SystemExit)
|
111
|
-
end
|
112
|
-
|
113
|
-
it "prints a relevant error message" do
|
114
|
-
expect { knife.run }.to raise_error(SystemExit)
|
115
|
-
expect(stderr.string).to match(/You cannot pass --user-key and --prevent-keygen/)
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
context "when --prevent-keygen is passed" do
|
120
|
-
before do
|
121
|
-
knife.config[:prevent_keygen] = true
|
122
|
-
end
|
123
|
-
|
124
|
-
it "does not set user.create_key" do
|
125
|
-
knife.run
|
126
|
-
expect(knife.user.create_key).to be_falsey
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
context "when --prevent-keygen is not passed" do
|
131
|
-
it "sets user.create_key to true" do
|
132
|
-
knife.run
|
133
|
-
expect(knife.user.create_key).to be_truthy
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
context "when --user-key is passed" do
|
138
|
-
before do
|
139
|
-
knife.config[:user_key] = "some_key"
|
140
|
-
allow(File).to receive(:read).and_return("some_key")
|
141
|
-
allow(File).to receive(:expand_path)
|
142
|
-
end
|
143
|
-
|
144
|
-
it "sets user.public_key" do
|
145
|
-
knife.run
|
146
|
-
expect(knife.user.public_key).to eq("some_key")
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
context "when --user-key is not passed" do
|
151
|
-
it "does not set user.public_key" do
|
152
|
-
knife.run
|
153
|
-
expect(knife.user.public_key).to be_nil
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
context "when a private_key is returned" do
|
158
|
-
before do
|
159
|
-
allow(knife).to receive(:create_user_from_hash).and_return(Chef::UserV1.from_hash(knife.user.to_hash.merge({ "private_key" => "some_private_key" })))
|
160
|
-
end
|
161
|
-
|
162
|
-
context "when --file is passed" do
|
163
|
-
before do
|
164
|
-
knife.config[:file] = "/some/path"
|
165
|
-
end
|
166
|
-
|
167
|
-
it "creates a new file of the path passed" do
|
168
|
-
filehandle = double("filehandle")
|
169
|
-
expect(filehandle).to receive(:print).with("some_private_key")
|
170
|
-
expect(File).to receive(:open).with("/some/path", "w").and_yield(filehandle)
|
171
|
-
knife.run
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
context "when --file is not passed" do
|
176
|
-
it "prints the private key to stdout" do
|
177
|
-
expect(knife.ui).to receive(:msg).with("some_private_key")
|
178
|
-
knife.run
|
179
|
-
end
|
180
|
-
end
|
181
|
-
end
|
182
|
-
|
183
|
-
end # when all mandatory fields are validly specified
|
184
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Steven Danna (<steve@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) 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::Knife::UserDelete do
|
22
|
-
let(:knife) { Chef::Knife::UserDelete.new }
|
23
|
-
let(:user) { double("user_object") }
|
24
|
-
let(:stdout) { StringIO.new }
|
25
|
-
|
26
|
-
before(:each) do
|
27
|
-
Chef::Knife::UserDelete.load_deps
|
28
|
-
knife.name_args = [ "my_user" ]
|
29
|
-
allow(Chef::UserV1).to receive(:load).and_return(user)
|
30
|
-
allow(user).to receive(:username).and_return("my_user")
|
31
|
-
allow(knife.ui).to receive(:stderr).and_return(stdout)
|
32
|
-
allow(knife.ui).to receive(:stdout).and_return(stdout)
|
33
|
-
end
|
34
|
-
|
35
|
-
it "deletes the user" do
|
36
|
-
expect(knife).to receive(:delete_object).with(Chef::UserV1, "my_user")
|
37
|
-
knife.run
|
38
|
-
end
|
39
|
-
|
40
|
-
it "prints usage and exits when a user name is not provided" do
|
41
|
-
knife.name_args = []
|
42
|
-
expect(knife).to receive(:show_usage)
|
43
|
-
expect(knife.ui).to receive(:fatal)
|
44
|
-
expect { knife.run }.to raise_error(SystemExit)
|
45
|
-
end
|
46
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Steven Danna (<steve@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) 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::Knife::UserEdit do
|
22
|
-
let(:knife) { Chef::Knife::UserEdit.new }
|
23
|
-
|
24
|
-
before(:each) do
|
25
|
-
@stderr = StringIO.new
|
26
|
-
@stdout = StringIO.new
|
27
|
-
|
28
|
-
Chef::Knife::UserEdit.load_deps
|
29
|
-
allow(knife.ui).to receive(:stderr).and_return(@stderr)
|
30
|
-
allow(knife.ui).to receive(:stdout).and_return(@stdout)
|
31
|
-
knife.name_args = [ "my_user" ]
|
32
|
-
knife.config[:disable_editing] = true
|
33
|
-
end
|
34
|
-
|
35
|
-
it "loads and edits the user" do
|
36
|
-
data = { "username" => "my_user" }
|
37
|
-
allow(Chef::UserV1).to receive(:load).with("my_user").and_return(data)
|
38
|
-
expect(knife).to receive(:edit_hash).with(data).and_return(data)
|
39
|
-
knife.run
|
40
|
-
end
|
41
|
-
|
42
|
-
it "prints usage and exits when a user name is not provided" do
|
43
|
-
knife.name_args = []
|
44
|
-
expect(knife).to receive(:show_usage)
|
45
|
-
expect(knife.ui).to receive(:fatal)
|
46
|
-
expect { knife.run }.to raise_error(SystemExit)
|
47
|
-
end
|
48
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Steven Danna
|
3
|
-
# Copyright:: Copyright (c) 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::Knife::UserList do
|
22
|
-
let(:knife) { Chef::Knife::UserList.new }
|
23
|
-
let(:stdout) { StringIO.new }
|
24
|
-
|
25
|
-
before(:each) do
|
26
|
-
Chef::Knife::UserList.load_deps
|
27
|
-
allow(knife.ui).to receive(:stderr).and_return(stdout)
|
28
|
-
allow(knife.ui).to receive(:stdout).and_return(stdout)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "lists the users" do
|
32
|
-
expect(Chef::UserV1).to receive(:list)
|
33
|
-
expect(knife).to receive(:format_list_for_display)
|
34
|
-
knife.run
|
35
|
-
end
|
36
|
-
end
|