chef 12.4.0.rc.0-universal-mingw32 → 12.4.0.rc.2-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/Rakefile +12 -1
- data/lib/chef/api_client.rb +130 -26
- data/lib/chef/application.rb +0 -1
- data/lib/chef/application/client.rb +8 -19
- data/lib/chef/audit/audit_reporter.rb +12 -7
- data/lib/chef/audit/logger.rb +36 -0
- data/lib/chef/audit/runner.rb +4 -2
- data/lib/chef/chef_class.rb +62 -11
- data/lib/chef/client.rb +587 -207
- data/lib/chef/config.rb +0 -1
- data/lib/chef/dsl/recipe.rb +45 -56
- data/lib/chef/dsl/resources.rb +3 -2
- data/lib/chef/event_dispatch/base.rb +7 -2
- data/lib/chef/exceptions.rb +4 -1
- data/lib/chef/file_content_management/deploy/mv_windows.rb +16 -6
- data/lib/chef/formatters/doc.rb +15 -7
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +10 -7
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +2 -0
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +4 -1
- data/lib/chef/http/authenticator.rb +7 -2
- data/lib/chef/knife.rb +16 -4
- data/lib/chef/knife/client_create.rb +55 -31
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/osc_user_create.rb +97 -0
- data/lib/chef/knife/osc_user_delete.rb +51 -0
- data/lib/chef/knife/osc_user_edit.rb +58 -0
- data/lib/chef/knife/osc_user_list.rb +47 -0
- data/lib/chef/knife/osc_user_reregister.rb +64 -0
- data/lib/chef/knife/osc_user_show.rb +54 -0
- data/lib/chef/knife/user_create.rb +95 -36
- data/lib/chef/knife/user_delete.rb +52 -2
- data/lib/chef/knife/user_edit.rb +37 -7
- data/lib/chef/knife/user_list.rb +3 -0
- data/lib/chef/knife/user_reregister.rb +39 -8
- data/lib/chef/knife/user_show.rb +30 -1
- data/lib/chef/mixin/api_version_request_handling.rb +66 -0
- data/lib/chef/mixin/convert_to_class_name.rb +10 -4
- data/lib/chef/mixin/deprecation.rb +24 -0
- data/lib/chef/mixin/powershell_out.rb +98 -0
- data/lib/chef/mixin/provides.rb +5 -18
- data/lib/chef/mixin/uris.rb +11 -0
- data/lib/chef/mixin/windows_architecture_helper.rb +5 -2
- data/lib/chef/mixin/windows_env_helper.rb +11 -2
- data/lib/chef/node_map.rb +130 -75
- data/lib/chef/osc_user.rb +194 -0
- data/lib/chef/platform/provider_mapping.rb +2 -269
- data/lib/chef/platform/provider_priority_map.rb +6 -69
- data/lib/chef/platform/query_helpers.rb +5 -0
- data/lib/chef/platform/resource_priority_map.rb +12 -15
- data/lib/chef/policy_builder/policyfile.rb +1 -0
- data/lib/chef/provider.rb +19 -0
- data/lib/chef/provider/directory.rb +3 -0
- data/lib/chef/provider/dsc_resource.rb +8 -1
- data/lib/chef/provider/file.rb +1 -0
- data/lib/chef/provider/group/aix.rb +1 -0
- data/lib/chef/provider/group/dscl.rb +1 -1
- data/lib/chef/provider/group/gpasswd.rb +1 -0
- data/lib/chef/provider/group/groupmod.rb +1 -1
- data/lib/chef/provider/group/pw.rb +1 -0
- data/lib/chef/provider/group/suse.rb +2 -0
- data/lib/chef/provider/group/usermod.rb +2 -1
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +2 -0
- data/lib/chef/provider/ifconfig/aix.rb +1 -0
- data/lib/chef/provider/ifconfig/debian.rb +2 -0
- data/lib/chef/provider/ifconfig/redhat.rb +1 -0
- data/lib/chef/provider/lwrp_base.rb +4 -0
- data/lib/chef/provider/mount.rb +0 -1
- data/lib/chef/provider/mount/aix.rb +1 -0
- data/lib/chef/provider/mount/mount.rb +2 -0
- data/lib/chef/provider/mount/solaris.rb +2 -0
- data/lib/chef/provider/package.rb +55 -0
- data/lib/chef/provider/package/aix.rb +7 -7
- data/lib/chef/provider/package/apt.rb +3 -3
- data/lib/chef/provider/package/dpkg.rb +4 -4
- data/lib/chef/provider/package/easy_install.rb +5 -5
- data/lib/chef/provider/package/freebsd/base.rb +2 -2
- data/lib/chef/provider/package/freebsd/pkg.rb +6 -6
- data/lib/chef/provider/package/freebsd/pkgng.rb +5 -5
- data/lib/chef/provider/package/freebsd/port.rb +4 -4
- data/lib/chef/provider/package/homebrew.rb +2 -2
- data/lib/chef/provider/package/ips.rb +4 -4
- data/lib/chef/provider/package/macports.rb +5 -6
- data/lib/chef/provider/package/openbsd.rb +4 -5
- data/lib/chef/provider/package/pacman.rb +4 -4
- data/lib/chef/provider/package/portage.rb +2 -0
- data/lib/chef/provider/package/rpm.rb +7 -8
- data/lib/chef/provider/package/rubygems.rb +5 -12
- data/lib/chef/provider/package/smartos.rb +4 -4
- data/lib/chef/provider/package/solaris.rb +7 -7
- data/lib/chef/provider/package/windows/msi.rb +1 -1
- data/lib/chef/provider/package/yum.rb +4 -6
- data/lib/chef/provider/package/zypper.rb +16 -14
- data/lib/chef/provider/powershell_script.rb +129 -47
- data/lib/chef/provider/remote_file/content.rb +4 -1
- data/lib/chef/provider/remote_file/local_file.rb +10 -4
- data/lib/chef/provider/service.rb +44 -0
- data/lib/chef/provider/service/freebsd.rb +1 -1
- data/lib/chef/provider/service/init.rb +1 -0
- data/lib/chef/provider/service/macosx.rb +1 -1
- data/lib/chef/provider/service/windows.rb +0 -1
- data/lib/chef/provider/user.rb +1 -1
- data/lib/chef/provider/user/aix.rb +3 -2
- data/lib/chef/provider/user/pw.rb +1 -0
- data/lib/chef/provider/user/solaris.rb +2 -0
- data/lib/chef/provider/user/useradd.rb +1 -0
- data/lib/chef/provider_resolver.rb +87 -134
- data/lib/chef/resource.rb +274 -68
- data/lib/chef/resource/apt_package.rb +0 -2
- data/lib/chef/resource/bash.rb +0 -2
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +0 -7
- data/lib/chef/resource/breakpoint.rb +3 -6
- data/lib/chef/resource/chef_gem.rb +0 -3
- data/lib/chef/resource/cookbook_file.rb +1 -3
- data/lib/chef/resource/cron.rb +2 -4
- data/lib/chef/resource/csh.rb +0 -2
- data/lib/chef/resource/deploy.rb +9 -6
- data/lib/chef/resource/deploy_revision.rb +0 -14
- data/lib/chef/resource/directory.rb +2 -4
- data/lib/chef/resource/dpkg_package.rb +0 -5
- data/lib/chef/resource/dsc_resource.rb +2 -3
- data/lib/chef/resource/dsc_script.rb +2 -3
- data/lib/chef/resource/easy_install_package.rb +0 -7
- data/lib/chef/resource/env.rb +3 -3
- data/lib/chef/resource/erl_call.rb +2 -5
- data/lib/chef/resource/execute.rb +2 -4
- data/lib/chef/resource/file.rb +2 -4
- data/lib/chef/resource/freebsd_package.rb +0 -5
- data/lib/chef/resource/gem_package.rb +0 -3
- data/lib/chef/resource/git.rb +0 -3
- data/lib/chef/resource/group.rb +2 -4
- data/lib/chef/resource/homebrew_package.rb +0 -2
- data/lib/chef/resource/http_request.rb +3 -4
- data/lib/chef/resource/ifconfig.rb +3 -4
- data/lib/chef/resource/ips_package.rb +2 -2
- data/lib/chef/resource/link.rb +3 -5
- data/lib/chef/resource/log.rb +2 -4
- data/lib/chef/resource/lwrp_base.rb +10 -61
- data/lib/chef/resource/macosx_service.rb +1 -2
- data/lib/chef/resource/macports_package.rb +0 -7
- data/lib/chef/resource/mdadm.rb +2 -5
- data/lib/chef/resource/mount.rb +2 -4
- data/lib/chef/resource/ohai.rb +2 -4
- data/lib/chef/resource/openbsd_package.rb +0 -6
- data/lib/chef/resource/package.rb +9 -6
- data/lib/chef/resource/pacman_package.rb +0 -7
- data/lib/chef/resource/paludis_package.rb +2 -3
- data/lib/chef/resource/perl.rb +0 -3
- data/lib/chef/resource/portage_package.rb +0 -3
- data/lib/chef/resource/powershell_script.rb +1 -2
- data/lib/chef/resource/python.rb +0 -3
- data/lib/chef/resource/reboot.rb +1 -3
- data/lib/chef/resource/registry_key.rb +3 -5
- data/lib/chef/resource/remote_directory.rb +3 -5
- data/lib/chef/resource/remote_file.rb +4 -5
- data/lib/chef/resource/route.rb +3 -5
- data/lib/chef/resource/rpm_package.rb +0 -2
- data/lib/chef/resource/ruby.rb +0 -4
- data/lib/chef/resource/ruby_block.rb +2 -4
- data/lib/chef/resource/scm.rb +3 -5
- data/lib/chef/resource/script.rb +0 -3
- data/lib/chef/resource/service.rb +3 -5
- data/lib/chef/resource/smartos_package.rb +0 -9
- data/lib/chef/resource/solaris_package.rb +0 -10
- data/lib/chef/resource/subversion.rb +1 -3
- data/lib/chef/resource/template.rb +0 -4
- data/lib/chef/resource/timestamped_deploy.rb +0 -4
- data/lib/chef/resource/user.rb +2 -5
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -7
- data/lib/chef/resource/windows_package.rb +3 -3
- data/lib/chef/resource/windows_script.rb +2 -2
- data/lib/chef/resource/windows_service.rb +3 -3
- data/lib/chef/resource/yum_package.rb +0 -3
- data/lib/chef/resource/zypper_package.rb +27 -0
- data/lib/chef/resource_builder.rb +7 -0
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resource_resolver.rb +108 -62
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/rest.rb +1 -0
- data/lib/chef/server_api.rb +2 -0
- data/lib/chef/user.rb +193 -42
- data/lib/chef/util/backup.rb +9 -1
- data/lib/chef/util/path_helper.rb +0 -1
- data/lib/chef/version.rb +1 -1
- data/spec/functional/audit/runner_spec.rb +22 -42
- data/spec/functional/mixin/powershell_out_spec.rb +43 -0
- data/spec/functional/resource/execute_spec.rb +9 -2
- data/spec/functional/resource/file_spec.rb +25 -0
- data/spec/functional/resource/group_spec.rb +5 -0
- data/spec/functional/resource/link_spec.rb +5 -11
- data/spec/functional/resource/powershell_spec.rb +40 -5
- data/spec/functional/resource/user/useradd_spec.rb +10 -18
- data/spec/integration/recipes/lwrp_spec.rb +57 -0
- data/spec/integration/recipes/provider_choice.rb +2 -7
- data/spec/integration/recipes/recipe_dsl_spec.rb +517 -19
- data/spec/spec_helper.rb +1 -1
- data/spec/support/lib/chef/provider/openldap_includer.rb +29 -0
- data/spec/support/lib/chef/resource/cat.rb +0 -2
- data/spec/support/lib/chef/resource/one_two_three_four.rb +0 -6
- data/spec/support/lib/chef/resource/openldap_includer.rb +27 -0
- data/spec/support/lib/chef/resource/with_state.rb +0 -9
- data/spec/support/lib/chef/resource/zen_follower.rb +0 -6
- data/spec/support/lib/chef/resource/zen_master.rb +1 -6
- data/spec/support/shared/context/client.rb +277 -0
- data/spec/support/shared/examples/client.rb +53 -0
- data/spec/support/shared/functional/file_resource.rb +0 -4
- data/spec/support/shared/functional/securable_resource.rb +0 -24
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +4 -4
- data/spec/support/shared/functional/windows_script.rb +1 -1
- data/spec/support/shared/unit/api_versioning.rb +77 -0
- data/spec/support/shared/unit/knife_shared.rb +40 -0
- data/spec/support/shared/unit/user_and_client_shared.rb +115 -0
- data/spec/unit/api_client_spec.rb +189 -14
- data/spec/unit/application/client_spec.rb +0 -5
- data/spec/unit/audit/audit_reporter_spec.rb +58 -14
- data/spec/unit/audit/logger_spec.rb +42 -0
- data/spec/unit/audit/runner_spec.rb +2 -2
- data/spec/unit/chef_fs/file_pattern_spec.rb +3 -15
- data/spec/unit/client_spec.rb +58 -374
- data/spec/unit/cookbook_spec.rb +0 -9
- data/spec/unit/cookbook_version_spec.rb +0 -20
- data/spec/unit/deprecation_spec.rb +55 -0
- data/spec/unit/dsl/resources_spec.rb +85 -0
- data/spec/unit/exceptions_spec.rb +2 -2
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +60 -0
- data/spec/unit/formatters/doc_spec.rb +46 -0
- data/spec/unit/formatters/error_inspectors/api_error_formatting_spec.rb +12 -10
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +8 -0
- data/spec/unit/http/authenticator_spec.rb +11 -2
- data/spec/unit/knife/client_create_spec.rb +122 -51
- data/spec/unit/knife/core/subcommand_loader_spec.rb +19 -3
- data/spec/unit/knife/core/ui_spec.rb +14 -0
- data/spec/unit/knife/osc_user_create_spec.rb +93 -0
- data/spec/unit/knife/osc_user_delete_spec.rb +44 -0
- data/spec/unit/knife/osc_user_edit_spec.rb +52 -0
- data/spec/unit/knife/osc_user_list_spec.rb +37 -0
- data/spec/unit/knife/osc_user_reregister_spec.rb +58 -0
- data/spec/unit/knife/osc_user_show_spec.rb +46 -0
- data/spec/unit/knife/user_create_spec.rb +177 -51
- data/spec/unit/knife/user_delete_spec.rb +34 -8
- data/spec/unit/knife/user_edit_spec.rb +31 -12
- data/spec/unit/knife/user_list_spec.rb +7 -3
- data/spec/unit/knife/user_reregister_spec.rb +38 -17
- data/spec/unit/knife/user_show_spec.rb +35 -11
- data/spec/unit/knife_spec.rb +10 -4
- data/spec/unit/lwrp_spec.rb +228 -54
- data/spec/unit/mixin/api_version_request_handling_spec.rb +127 -0
- data/spec/unit/mixin/command_spec.rb +1 -2
- data/spec/unit/mixin/powershell_out_spec.rb +70 -0
- data/spec/unit/mixin/uris_spec.rb +23 -11
- data/spec/unit/node_map_spec.rb +4 -1
- data/spec/unit/osc_user_spec.rb +276 -0
- data/spec/unit/platform_spec.rb +0 -60
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/directory_spec.rb +199 -135
- data/spec/unit/provider/ifconfig/debian_spec.rb +0 -10
- data/spec/unit/provider/package/aix_spec.rb +16 -16
- data/spec/unit/provider/package/dpkg_spec.rb +2 -2
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +13 -13
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
- data/spec/unit/provider/package/freebsd/port_spec.rb +7 -7
- data/spec/unit/provider/package/ips_spec.rb +22 -22
- data/spec/unit/provider/package/macports_spec.rb +10 -10
- data/spec/unit/provider/package/openbsd_spec.rb +4 -26
- data/spec/unit/provider/package/pacman_spec.rb +5 -5
- data/spec/unit/provider/package/rpm_spec.rb +14 -14
- data/spec/unit/provider/package/rubygems_spec.rb +10 -44
- data/spec/unit/provider/package/smartos_spec.rb +4 -4
- data/spec/unit/provider/package/solaris_spec.rb +11 -11
- data/spec/unit/provider/package/zypper_spec.rb +125 -90
- data/spec/unit/provider/package_spec.rb +34 -0
- data/spec/unit/provider/powershell_spec.rb +53 -11
- data/spec/unit/provider/remote_directory_spec.rb +2 -2
- data/spec/unit/provider/remote_file/local_file_spec.rb +25 -6
- data/spec/unit/provider/service/freebsd_service_spec.rb +0 -12
- data/spec/unit/provider/user_spec.rb +3 -3
- data/spec/unit/provider_resolver_spec.rb +463 -327
- data/spec/unit/recipe_spec.rb +42 -15
- data/spec/unit/resource/breakpoint_spec.rb +1 -1
- data/spec/unit/resource/erl_call_spec.rb +1 -1
- data/spec/unit/resource/file_spec.rb +1 -1
- data/spec/unit/resource/ifconfig_spec.rb +10 -6
- data/spec/unit/resource/remote_file_spec.rb +5 -0
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/ruby_block_spec.rb +2 -2
- data/spec/unit/resource/template_spec.rb +1 -1
- data/spec/unit/resource/timestamped_deploy_spec.rb +1 -2
- data/spec/unit/resource/windows_service_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +99 -13
- data/spec/unit/rest_spec.rb +5 -5
- data/spec/unit/run_context_spec.rb +41 -0
- data/spec/unit/runner_spec.rb +2 -2
- data/spec/unit/user_spec.rb +406 -93
- data/tasks/maintainers.rb +69 -0
- metadata +37 -4
@@ -181,7 +181,7 @@ class Chef
|
|
181
181
|
# Must check :[] before attr because spec can include
|
182
182
|
# `keys` - want the key named `keys`, not a list of
|
183
183
|
# available keys.
|
184
|
-
elsif data.respond_to?(:[])
|
184
|
+
elsif data.respond_to?(:[]) && data.has_key?(attr)
|
185
185
|
data = data[attr]
|
186
186
|
elsif data.respond_to?(attr.to_sym)
|
187
187
|
data = data.send(attr.to_sym)
|
@@ -23,7 +23,7 @@ class Chef
|
|
23
23
|
class SubcommandLoader
|
24
24
|
|
25
25
|
MATCHES_CHEF_GEM = %r{/chef-[\d]+\.[\d]+\.[\d]+}.freeze
|
26
|
-
MATCHES_THIS_CHEF_GEM = %r{/chef-#{Chef::VERSION}
|
26
|
+
MATCHES_THIS_CHEF_GEM = %r{/chef-#{Chef::VERSION}(-\w+)?(-\w+)?/}.freeze
|
27
27
|
|
28
28
|
attr_reader :chef_config_dir
|
29
29
|
attr_reader :env
|
@@ -0,0 +1,97 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2012 Opscode, 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 'chef/knife'
|
20
|
+
|
21
|
+
# DEPRECATION NOTE
|
22
|
+
# This code only remains to support users still operating with
|
23
|
+
# Open Source Chef Server 11 and should be removed once support
|
24
|
+
# for OSC 11 ends. New development should occur in user_create.rb.
|
25
|
+
class Chef
|
26
|
+
class Knife
|
27
|
+
class OscUserCreate < Knife
|
28
|
+
|
29
|
+
deps do
|
30
|
+
require 'chef/osc_user'
|
31
|
+
require 'chef/json_compat'
|
32
|
+
end
|
33
|
+
|
34
|
+
option :file,
|
35
|
+
:short => "-f FILE",
|
36
|
+
:long => "--file FILE",
|
37
|
+
:description => "Write the private key to a file"
|
38
|
+
|
39
|
+
option :admin,
|
40
|
+
:short => "-a",
|
41
|
+
:long => "--admin",
|
42
|
+
:description => "Create the user as an admin",
|
43
|
+
:boolean => true
|
44
|
+
|
45
|
+
option :user_password,
|
46
|
+
:short => "-p PASSWORD",
|
47
|
+
:long => "--password PASSWORD",
|
48
|
+
:description => "Password for newly created user",
|
49
|
+
:default => ""
|
50
|
+
|
51
|
+
option :user_key,
|
52
|
+
:long => "--user-key FILENAME",
|
53
|
+
:description => "Public key for newly created user. By default a key will be created for you."
|
54
|
+
|
55
|
+
banner "knife osc_user create USER (options)"
|
56
|
+
|
57
|
+
def run
|
58
|
+
@user_name = @name_args[0]
|
59
|
+
|
60
|
+
if @user_name.nil?
|
61
|
+
show_usage
|
62
|
+
ui.fatal("You must specify a user name")
|
63
|
+
exit 1
|
64
|
+
end
|
65
|
+
|
66
|
+
if config[:user_password].length == 0
|
67
|
+
show_usage
|
68
|
+
ui.fatal("You must specify a non-blank password")
|
69
|
+
exit 1
|
70
|
+
end
|
71
|
+
|
72
|
+
user = Chef::OscUser.new
|
73
|
+
user.name(@user_name)
|
74
|
+
user.admin(config[:admin])
|
75
|
+
user.password config[:user_password]
|
76
|
+
|
77
|
+
if config[:user_key]
|
78
|
+
user.public_key File.read(File.expand_path(config[:user_key]))
|
79
|
+
end
|
80
|
+
|
81
|
+
output = edit_data(user)
|
82
|
+
user = Chef::OscUser.from_hash(output).create
|
83
|
+
|
84
|
+
ui.info("Created #{user}")
|
85
|
+
if user.private_key
|
86
|
+
if config[:file]
|
87
|
+
File.open(config[:file], "w") do |f|
|
88
|
+
f.print(user.private_key)
|
89
|
+
end
|
90
|
+
else
|
91
|
+
ui.msg user.private_key
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2012 Opscode, 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 'chef/knife'
|
20
|
+
|
21
|
+
# DEPRECATION NOTE
|
22
|
+
# This code only remains to support users still operating with
|
23
|
+
# Open Source Chef Server 11 and should be removed once support
|
24
|
+
# for OSC 11 ends. New development should occur in the user_delete.rb.
|
25
|
+
|
26
|
+
class Chef
|
27
|
+
class Knife
|
28
|
+
class OscUserDelete < Knife
|
29
|
+
|
30
|
+
deps do
|
31
|
+
require 'chef/osc_user'
|
32
|
+
require 'chef/json_compat'
|
33
|
+
end
|
34
|
+
|
35
|
+
banner "knife osc_user delete USER (options)"
|
36
|
+
|
37
|
+
def run
|
38
|
+
@user_name = @name_args[0]
|
39
|
+
|
40
|
+
if @user_name.nil?
|
41
|
+
show_usage
|
42
|
+
ui.fatal("You must specify a user name")
|
43
|
+
exit 1
|
44
|
+
end
|
45
|
+
|
46
|
+
delete_object(Chef::OscUser, @user_name)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2012 Opscode, 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 'chef/knife'
|
20
|
+
|
21
|
+
# DEPRECATION NOTE
|
22
|
+
# This code only remains to support users still operating with
|
23
|
+
# Open Source Chef Server 11 and should be removed once support
|
24
|
+
# for OSC 11 ends. New development should occur in user_edit.rb.
|
25
|
+
|
26
|
+
class Chef
|
27
|
+
class Knife
|
28
|
+
class OscUserEdit < Knife
|
29
|
+
|
30
|
+
deps do
|
31
|
+
require 'chef/osc_user'
|
32
|
+
require 'chef/json_compat'
|
33
|
+
end
|
34
|
+
|
35
|
+
banner "knife osc_user edit USER (options)"
|
36
|
+
|
37
|
+
def run
|
38
|
+
@user_name = @name_args[0]
|
39
|
+
|
40
|
+
if @user_name.nil?
|
41
|
+
show_usage
|
42
|
+
ui.fatal("You must specify a user name")
|
43
|
+
exit 1
|
44
|
+
end
|
45
|
+
|
46
|
+
original_user = Chef::OscUser.load(@user_name).to_hash
|
47
|
+
edited_user = edit_data(original_user)
|
48
|
+
if original_user != edited_user
|
49
|
+
user = Chef::OscUser.from_hash(edited_user)
|
50
|
+
user.update
|
51
|
+
ui.msg("Saved #{user}.")
|
52
|
+
else
|
53
|
+
ui.msg("User unchaged, not saving.")
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2012 Opscode, 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 'chef/knife'
|
20
|
+
|
21
|
+
# DEPRECATION NOTE
|
22
|
+
# This code only remains to support users still operating with
|
23
|
+
# Open Source Chef Server 11 and should be removed once support
|
24
|
+
# for OSC 11 ends. New development should occur in user_list.rb.
|
25
|
+
|
26
|
+
class Chef
|
27
|
+
class Knife
|
28
|
+
class OscUserList < Knife
|
29
|
+
|
30
|
+
deps do
|
31
|
+
require 'chef/osc_user'
|
32
|
+
require 'chef/json_compat'
|
33
|
+
end
|
34
|
+
|
35
|
+
banner "knife osc_user list (options)"
|
36
|
+
|
37
|
+
option :with_uri,
|
38
|
+
:short => "-w",
|
39
|
+
:long => "--with-uri",
|
40
|
+
:description => "Show corresponding URIs"
|
41
|
+
|
42
|
+
def run
|
43
|
+
output(format_list_for_display(Chef::OscUser.list))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2012 Opscode, 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 'chef/knife'
|
20
|
+
|
21
|
+
# DEPRECATION NOTE
|
22
|
+
# This code only remains to support users still operating with
|
23
|
+
# Open Source Chef Server 11 and should be removed once support
|
24
|
+
# for OSC 11 ends. New development should occur in user_reregister.rb.
|
25
|
+
|
26
|
+
class Chef
|
27
|
+
class Knife
|
28
|
+
class OscUserReregister < Knife
|
29
|
+
|
30
|
+
deps do
|
31
|
+
require 'chef/osc_user'
|
32
|
+
require 'chef/json_compat'
|
33
|
+
end
|
34
|
+
|
35
|
+
banner "knife osc_user reregister USER (options)"
|
36
|
+
|
37
|
+
option :file,
|
38
|
+
:short => "-f FILE",
|
39
|
+
:long => "--file FILE",
|
40
|
+
:description => "Write the private key to a file"
|
41
|
+
|
42
|
+
def run
|
43
|
+
@user_name = @name_args[0]
|
44
|
+
|
45
|
+
if @user_name.nil?
|
46
|
+
show_usage
|
47
|
+
ui.fatal("You must specify a user name")
|
48
|
+
exit 1
|
49
|
+
end
|
50
|
+
|
51
|
+
user = Chef::OscUser.load(@user_name).reregister
|
52
|
+
Chef::Log.debug("Updated user data: #{user.inspect}")
|
53
|
+
key = user.private_key
|
54
|
+
if config[:file]
|
55
|
+
File.open(config[:file], "w") do |f|
|
56
|
+
f.print(key)
|
57
|
+
end
|
58
|
+
else
|
59
|
+
ui.msg key
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@opscode.com>)
|
3
|
+
# Copyright:: Copyright (c) 2009 Opscode, 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 'chef/knife'
|
20
|
+
|
21
|
+
# DEPRECATION NOTE
|
22
|
+
# This code only remains to support users still operating with
|
23
|
+
# Open Source Chef Server 11 and should be removed once support
|
24
|
+
# for OSC 11 ends. New development should occur in user_show.rb.
|
25
|
+
|
26
|
+
class Chef
|
27
|
+
class Knife
|
28
|
+
class OscUserShow < Knife
|
29
|
+
|
30
|
+
include Knife::Core::MultiAttributeReturnOption
|
31
|
+
|
32
|
+
deps do
|
33
|
+
require 'chef/osc_user'
|
34
|
+
require 'chef/json_compat'
|
35
|
+
end
|
36
|
+
|
37
|
+
banner "knife osc_user show USER (options)"
|
38
|
+
|
39
|
+
def run
|
40
|
+
@user_name = @name_args[0]
|
41
|
+
|
42
|
+
if @user_name.nil?
|
43
|
+
show_usage
|
44
|
+
ui.fatal("You must specify a user name")
|
45
|
+
exit 1
|
46
|
+
end
|
47
|
+
|
48
|
+
user = Chef::OscUser.load(@user_name)
|
49
|
+
output(format_for_display(user))
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
#
|
2
|
-
# Author:: Steven Danna (<steve@
|
3
|
-
#
|
2
|
+
# Author:: Steven Danna (<steve@chef.io>)
|
3
|
+
# Author:: Tyler Cloke (<tyler@chef.io>)
|
4
|
+
# Copyright:: Copyright (c) 2012, 2015 Chef Software, Inc.
|
4
5
|
# License:: Apache License, Version 2.0
|
5
6
|
#
|
6
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -17,11 +18,14 @@
|
|
17
18
|
#
|
18
19
|
|
19
20
|
require 'chef/knife'
|
21
|
+
require 'chef/knife/osc_user_create'
|
20
22
|
|
21
23
|
class Chef
|
22
24
|
class Knife
|
23
25
|
class UserCreate < Knife
|
24
26
|
|
27
|
+
attr_accessor :user_field
|
28
|
+
|
25
29
|
deps do
|
26
30
|
require 'chef/user'
|
27
31
|
require 'chef/json_compat'
|
@@ -30,63 +34,118 @@ class Chef
|
|
30
34
|
option :file,
|
31
35
|
:short => "-f FILE",
|
32
36
|
:long => "--file FILE",
|
33
|
-
:description => "Write the private key to a file"
|
37
|
+
:description => "Write the private key to a file if the server generated one."
|
38
|
+
|
39
|
+
option :user_key,
|
40
|
+
:long => "--user-key FILENAME",
|
41
|
+
:description => "Set the initial default key for the user from a file on disk (cannot pass with --prevent-keygen)."
|
42
|
+
|
43
|
+
option :prevent_keygen,
|
44
|
+
:short => "-k",
|
45
|
+
:long => "--prevent-keygen",
|
46
|
+
:description => "API V1 only. Prevent server from generating a default key pair for you. Cannot be passed with --user-key.",
|
47
|
+
:boolean => true
|
34
48
|
|
35
49
|
option :admin,
|
36
50
|
:short => "-a",
|
37
51
|
:long => "--admin",
|
38
|
-
:description => "Create the user as an admin",
|
52
|
+
:description => "DEPRECATED: Open Source Chef 11 only. Create the user as an admin.",
|
39
53
|
:boolean => true
|
40
54
|
|
41
55
|
option :user_password,
|
42
56
|
:short => "-p PASSWORD",
|
43
57
|
:long => "--password PASSWORD",
|
44
|
-
:description => "Password for newly created user",
|
58
|
+
:description => "DEPRECATED: Open Source Chef 11 only. Password for newly created user.",
|
45
59
|
:default => ""
|
46
60
|
|
47
|
-
|
48
|
-
|
49
|
-
|
61
|
+
banner "knife user create USERNAME DISPLAY_NAME FIRST_NAME LAST_NAME EMAIL PASSWORD (options)"
|
62
|
+
|
63
|
+
def user
|
64
|
+
@user_field ||= Chef::User.new
|
65
|
+
end
|
66
|
+
|
67
|
+
def create_user_from_hash(hash)
|
68
|
+
Chef::User.from_hash(hash).create
|
69
|
+
end
|
70
|
+
|
71
|
+
def osc_11_warning
|
72
|
+
<<-EOF
|
73
|
+
IF YOU ARE USING CHEF SERVER 12+, PLEASE FOLLOW THE INSTRUCTIONS UNDER knife user create --help.
|
74
|
+
You only passed a single argument to knife user create.
|
75
|
+
For backwards compatibility, when only a single argument is passed,
|
76
|
+
knife user create assumes you want Open Source 11 Server user creation.
|
77
|
+
knife user create for Open Source 11 Server is being deprecated.
|
78
|
+
Open Source 11 Server user commands now live under the knife osc_user namespace.
|
79
|
+
For backwards compatibility, we will forward this request to knife osc_user create.
|
80
|
+
If you are using an Open Source 11 Server, please use that command to avoid this warning.
|
81
|
+
EOF
|
82
|
+
end
|
50
83
|
|
51
|
-
|
84
|
+
def run_osc_11_user_create
|
85
|
+
# run osc_user_create with our input
|
86
|
+
ARGV.delete("user")
|
87
|
+
ARGV.unshift("osc_user")
|
88
|
+
Chef::Knife.run(ARGV, Chef::Application::Knife.options)
|
89
|
+
end
|
52
90
|
|
53
91
|
def run
|
54
|
-
|
92
|
+
# DEPRECATION NOTE
|
93
|
+
# Remove this if statement and corrosponding code post OSC 11 support.
|
94
|
+
#
|
95
|
+
# If only 1 arg is passed, assume OSC 11 case.
|
96
|
+
if @name_args.length == 1
|
97
|
+
ui.warn(osc_11_warning)
|
98
|
+
run_osc_11_user_create
|
99
|
+
else # EC / CS 12 user create
|
55
100
|
|
56
|
-
|
57
|
-
|
58
|
-
ui.fatal("You must specify a user name")
|
59
|
-
exit 1
|
60
|
-
end
|
101
|
+
test_mandatory_field(@name_args[0], "username")
|
102
|
+
user.username @name_args[0]
|
61
103
|
|
62
|
-
|
63
|
-
|
64
|
-
ui.fatal("You must specify a non-blank password")
|
65
|
-
exit 1
|
66
|
-
end
|
104
|
+
test_mandatory_field(@name_args[1], "display name")
|
105
|
+
user.display_name @name_args[1]
|
67
106
|
|
68
|
-
|
69
|
-
|
70
|
-
user.admin(config[:admin])
|
71
|
-
user.password config[:user_password]
|
107
|
+
test_mandatory_field(@name_args[2], "first name")
|
108
|
+
user.first_name @name_args[2]
|
72
109
|
|
73
|
-
|
74
|
-
user.
|
75
|
-
|
110
|
+
test_mandatory_field(@name_args[3], "last name")
|
111
|
+
user.last_name @name_args[3]
|
112
|
+
|
113
|
+
test_mandatory_field(@name_args[4], "email")
|
114
|
+
user.email @name_args[4]
|
115
|
+
|
116
|
+
test_mandatory_field(@name_args[5], "password")
|
117
|
+
user.password @name_args[5]
|
118
|
+
|
119
|
+
if config[:user_key] && config[:prevent_keygen]
|
120
|
+
show_usage
|
121
|
+
ui.fatal("You cannot pass --user-key and --prevent-keygen")
|
122
|
+
exit 1
|
123
|
+
end
|
124
|
+
|
125
|
+
if !config[:prevent_keygen] && !config[:user_key]
|
126
|
+
user.create_key(true)
|
127
|
+
end
|
76
128
|
|
77
|
-
|
78
|
-
|
129
|
+
if config[:user_key]
|
130
|
+
user.public_key File.read(File.expand_path(config[:user_key]))
|
131
|
+
end
|
79
132
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
133
|
+
output = edit_data(user)
|
134
|
+
final_user = create_user_from_hash(output)
|
135
|
+
|
136
|
+
ui.info("Created #{user}")
|
137
|
+
if final_user.private_key
|
138
|
+
if config[:file]
|
139
|
+
File.open(config[:file], "w") do |f|
|
140
|
+
f.print(final_user.private_key)
|
141
|
+
end
|
142
|
+
else
|
143
|
+
ui.msg final_user.private_key
|
85
144
|
end
|
86
|
-
else
|
87
|
-
ui.msg user.private_key
|
88
145
|
end
|
89
146
|
end
|
147
|
+
|
148
|
+
|
90
149
|
end
|
91
150
|
end
|
92
151
|
end
|