diff options
author | Tim Smith <tsmith@chef.io> | 2018-01-02 14:49:22 -0800 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2018-01-02 14:49:22 -0800 |
commit | e236fe20f404015239b7ac530c5538020002fe6c (patch) | |
tree | 87d6b2ca69b5a4861a1d44ae781e03b5ab012888 | |
parent | 4440d9f7d0dbeecd0d505291636326acb7ad1d5b (diff) | |
download | chef-remove_knife_osc.tar.gz |
Remove knife user support for Open Source Chef Server 11remove_knife_osc
OSC Chef Server 11 is no longer supported and this was marked as deprecated in Chef 13.7.
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | lib/chef/knife/osc_user_create.rb | 97 | ||||
-rw-r--r-- | lib/chef/knife/osc_user_delete.rb | 51 | ||||
-rw-r--r-- | lib/chef/knife/osc_user_edit.rb | 58 | ||||
-rw-r--r-- | lib/chef/knife/osc_user_list.rb | 47 | ||||
-rw-r--r-- | lib/chef/knife/osc_user_reregister.rb | 64 | ||||
-rw-r--r-- | lib/chef/knife/osc_user_show.rb | 53 | ||||
-rw-r--r-- | lib/chef/knife/user_create.rb | 112 | ||||
-rw-r--r-- | lib/chef/knife/user_delete.rb | 56 | ||||
-rw-r--r-- | lib/chef/knife/user_edit.rb | 46 | ||||
-rw-r--r-- | lib/chef/knife/user_reregister.rb | 49 | ||||
-rw-r--r-- | lib/chef/knife/user_show.rb | 35 | ||||
-rw-r--r-- | spec/unit/knife/user_create_spec.rb | 19 | ||||
-rw-r--r-- | spec/unit/knife/user_delete_spec.rb | 18 | ||||
-rw-r--r-- | spec/unit/knife/user_edit_spec.rb | 18 | ||||
-rw-r--r-- | spec/unit/knife/user_reregister_spec.rb | 18 | ||||
-rw-r--r-- | spec/unit/knife/user_show_spec.rb | 19 |
16 files changed, 55 insertions, 705 deletions
diff --git a/lib/chef/knife/osc_user_create.rb b/lib/chef/knife/osc_user_create.rb deleted file mode 100644 index 74b50a4ef4..0000000000 --- a/lib/chef/knife/osc_user_create.rb +++ /dev/null @@ -1,97 +0,0 @@ -# -# Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/knife" - -# DEPRECATION NOTE -# This code only remains to support users still operating with -# Open Source Chef Server 11 and should be removed once support -# for OSC 11 ends. New development should occur in user_create.rb. -class Chef - class Knife - class OscUserCreate < Knife - - deps do - require "chef/user" - require "chef/json_compat" - end - - option :file, - :short => "-f FILE", - :long => "--file FILE", - :description => "Write the private key to a file" - - option :admin, - :short => "-a", - :long => "--admin", - :description => "Create the user as an admin", - :boolean => true - - option :user_password, - :short => "-p PASSWORD", - :long => "--password PASSWORD", - :description => "Password for newly created user", - :default => "" - - option :user_key, - :long => "--user-key FILENAME", - :description => "Public key for newly created user. By default a key will be created for you." - - banner "knife osc_user create USER (options)" - - def run - @user_name = @name_args[0] - - if @user_name.nil? - show_usage - ui.fatal("You must specify a user name") - exit 1 - end - - if config[:user_password].length == 0 - show_usage - ui.fatal("You must specify a non-blank password") - exit 1 - end - - user = Chef::User.new - user.name(@user_name) - user.admin(config[:admin]) - user.password config[:user_password] - - if config[:user_key] - user.public_key File.read(File.expand_path(config[:user_key])) - end - - output = edit_hash(user) - user = Chef::User.from_hash(output).create - - ui.info("Created #{user}") - if user.private_key - if config[:file] - File.open(config[:file], "w") do |f| - f.print(user.private_key) - end - else - ui.msg user.private_key - end - end - end - end - end -end diff --git a/lib/chef/knife/osc_user_delete.rb b/lib/chef/knife/osc_user_delete.rb deleted file mode 100644 index 51abc1c668..0000000000 --- a/lib/chef/knife/osc_user_delete.rb +++ /dev/null @@ -1,51 +0,0 @@ -# -# Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/knife" - -# DEPRECATION NOTE -# This code only remains to support users still operating with -# Open Source Chef Server 11 and should be removed once support -# for OSC 11 ends. New development should occur in the user_delete.rb. - -class Chef - class Knife - class OscUserDelete < Knife - - deps do - require "chef/user" - require "chef/json_compat" - end - - banner "knife osc_user delete USER (options)" - - def run - @user_name = @name_args[0] - - if @user_name.nil? - show_usage - ui.fatal("You must specify a user name") - exit 1 - end - - delete_object(Chef::User, @user_name) - end - - end - end -end diff --git a/lib/chef/knife/osc_user_edit.rb b/lib/chef/knife/osc_user_edit.rb deleted file mode 100644 index 89986c6f04..0000000000 --- a/lib/chef/knife/osc_user_edit.rb +++ /dev/null @@ -1,58 +0,0 @@ -# -# Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/knife" - -# DEPRECATION NOTE -# This code only remains to support users still operating with -# Open Source Chef Server 11 and should be removed once support -# for OSC 11 ends. New development should occur in user_edit.rb. - -class Chef - class Knife - class OscUserEdit < Knife - - deps do - require "chef/user" - require "chef/json_compat" - end - - banner "knife osc_user edit USER (options)" - - def run - @user_name = @name_args[0] - - if @user_name.nil? - show_usage - ui.fatal("You must specify a user name") - exit 1 - end - - original_user = Chef::User.load(@user_name).to_hash - edited_user = edit_hash(original_user) - if original_user != edited_user - user = Chef::User.from_hash(edited_user) - user.update - ui.msg("Saved #{user}.") - else - ui.msg("User unchanged, not saving.") - end - end - end - end -end diff --git a/lib/chef/knife/osc_user_list.rb b/lib/chef/knife/osc_user_list.rb deleted file mode 100644 index f1002c4f54..0000000000 --- a/lib/chef/knife/osc_user_list.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -# Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/knife" - -# DEPRECATION NOTE -# This code only remains to support users still operating with -# Open Source Chef Server 11 and should be removed once support -# for OSC 11 ends. New development should occur in user_list.rb. - -class Chef - class Knife - class OscUserList < Knife - - deps do - require "chef/user" - require "chef/json_compat" - end - - banner "knife osc_user list (options)" - - option :with_uri, - :short => "-w", - :long => "--with-uri", - :description => "Show corresponding URIs" - - def run - output(format_list_for_display(Chef::User.list)) - end - end - end -end diff --git a/lib/chef/knife/osc_user_reregister.rb b/lib/chef/knife/osc_user_reregister.rb deleted file mode 100644 index b513f31328..0000000000 --- a/lib/chef/knife/osc_user_reregister.rb +++ /dev/null @@ -1,64 +0,0 @@ -# -# Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/knife" - -# DEPRECATION NOTE -# This code only remains to support users still operating with -# Open Source Chef Server 11 and should be removed once support -# for OSC 11 ends. New development should occur in user_reregister.rb. - -class Chef - class Knife - class OscUserReregister < Knife - - deps do - require "chef/user" - require "chef/json_compat" - end - - banner "knife osc_user reregister USER (options)" - - option :file, - :short => "-f FILE", - :long => "--file FILE", - :description => "Write the private key to a file" - - def run - @user_name = @name_args[0] - - if @user_name.nil? - show_usage - ui.fatal("You must specify a user name") - exit 1 - end - - user = Chef::User.load(@user_name).reregister - Chef::Log.debug("Updated user data: #{user.inspect}") - key = user.private_key - if config[:file] - File.open(config[:file], "w") do |f| - f.print(key) - end - else - ui.msg key - end - end - end - end -end diff --git a/lib/chef/knife/osc_user_show.rb b/lib/chef/knife/osc_user_show.rb deleted file mode 100644 index 5350837ad3..0000000000 --- a/lib/chef/knife/osc_user_show.rb +++ /dev/null @@ -1,53 +0,0 @@ -# -# Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2009-2016, Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/knife" - -# DEPRECATION NOTE -# This code only remains to support users still operating with -# Open Source Chef Server 11 and should be removed once support -# for OSC 11 ends. New development should occur in user_show.rb. - -class Chef - class Knife - class OscUserShow < Knife - - include Knife::Core::MultiAttributeReturnOption - - deps do - require "chef/user" - require "chef/json_compat" - end - - banner "knife osc_user show USER (options)" - - def run - @user_name = @name_args[0] - - if @user_name.nil? - show_usage - ui.fatal("You must specify a user name") - exit 1 - end - - user = Chef::User.load(@user_name) - output(format_for_display(user)) - end - end - end -end diff --git a/lib/chef/knife/user_create.rb b/lib/chef/knife/user_create.rb index 581ecfd792..e1d4d21e72 100644 --- a/lib/chef/knife/user_create.rb +++ b/lib/chef/knife/user_create.rb @@ -1,7 +1,7 @@ # # Author:: Steven Danna (<steve@chef.io>) # Author:: Tyler Cloke (<tyler@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software, Inc. +# Copyright:: Copyright 2012-2018 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,7 +18,6 @@ # require "chef/knife" -require "chef/knife/osc_user_create" class Chef class Knife @@ -46,18 +45,6 @@ class Chef :description => "API V1 (Chef Server 12.1+) only. Prevent server from generating a default key pair for you. Cannot be passed with --user-key.", :boolean => true - option :admin, - :short => "-a", - :long => "--admin", - :description => "DEPRECATED: Open Source Chef 11 only. Create the user as an admin.", - :boolean => true - - option :user_password, - :short => "-p PASSWORD", - :long => "--password PASSWORD", - :description => "DEPRECATED: Open Source Chef 11 only. Password for newly created user.", - :default => "" - banner "knife user create USERNAME DISPLAY_NAME FIRST_NAME LAST_NAME EMAIL PASSWORD (options)" def user @@ -68,82 +55,51 @@ class Chef Chef::UserV1.from_hash(hash).create end - def osc_11_warning - <<-EOF -IF YOU ARE USING CHEF SERVER 12+, PLEASE FOLLOW THE INSTRUCTIONS UNDER knife user create --help. -You only passed a single argument to knife user create. -For backwards compatibility, when only a single argument is passed, -knife user create assumes you want Open Source 11 Server user creation. -knife user create for Open Source 11 Server is being deprecated. -Open Source 11 Server user commands now live under the knife osc_user namespace. -For backwards compatibility, we will forward this request to knife osc_user create. -If you are using an Open Source 11 Server, please use that command to avoid this warning. -NOTE: Backwards compatibility for Open Source 11 Server in these commands will be removed -in Chef 14 which will be released April 2018. -EOF - end - - def run_osc_11_user_create - # run osc_user_create with our input - ARGV.delete("user") - ARGV.unshift("osc_user") - Chef::Knife.run(ARGV, Chef::Application::Knife.options) - end - def run - # DEPRECATION NOTE - # Remove this if statement and corrosponding code post OSC 11 support. - # - # If only 1 arg is passed, assume OSC 11 case. - if @name_args.length == 1 - ui.warn(osc_11_warning) - run_osc_11_user_create - else # EC / CS 12 user create + puts @name_args + test_mandatory_field(@name_args[0], "username") + user.username @name_args[0] - test_mandatory_field(@name_args[0], "username") - user.username @name_args[0] + test_mandatory_field(@name_args[1], "display name") + user.display_name @name_args[1] - test_mandatory_field(@name_args[1], "display name") - user.display_name @name_args[1] + test_mandatory_field(@name_args[2], "first name") + user.first_name @name_args[2] - test_mandatory_field(@name_args[2], "first name") - user.first_name @name_args[2] + test_mandatory_field(@name_args[3], "last name") + user.last_name @name_args[3] - test_mandatory_field(@name_args[3], "last name") - user.last_name @name_args[3] + test_mandatory_field(@name_args[4], "email") + user.email @name_args[4] - test_mandatory_field(@name_args[4], "email") - user.email @name_args[4] + test_mandatory_field(@name_args[5], "password") + user.password @name_args[5] - test_mandatory_field(@name_args[5], "password") - user.password @name_args[5] + if config[:user_key] && config[:prevent_keygen] + show_usage + ui.fatal("You cannot pass --user-key and --prevent-keygen") + exit 1 + end - if config[:user_key] && config[:prevent_keygen] - show_usage - ui.fatal("You cannot pass --user-key and --prevent-keygen") - exit 1 - end + if !config[:prevent_keygen] && !config[:user_key] + user.create_key(true) + end - if !config[:prevent_keygen] && !config[:user_key] - user.create_key(true) - end + if config[:user_key] + user.public_key File.read(File.expand_path(config[:user_key])) + end - if config[:user_key] - user.public_key File.read(File.expand_path(config[:user_key])) - end + output = edit_hash(user) + final_user = create_user_from_hash(output) - output = edit_hash(user) - final_user = create_user_from_hash(output) - - ui.info("Created #{user}") - if final_user.private_key - if config[:file] - File.open(config[:file], "w") do |f| - f.print(final_user.private_key) - end - else - ui.msg final_user.private_key + ui.info("Created #{user}") + if final_user.private_key + if config[:file] + File.open(config[:file], "w") do |f| + f.print(final_user.private_key) end + else + ui.msg final_user.private_key end end end diff --git a/lib/chef/knife/user_delete.rb b/lib/chef/knife/user_delete.rb index 5e4257deda..9321ffa8ad 100644 --- a/lib/chef/knife/user_delete.rb +++ b/lib/chef/knife/user_delete.rb @@ -1,6 +1,6 @@ # # Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. +# Copyright:: Copyright 2012-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -29,42 +29,6 @@ class Chef banner "knife user delete USER (options)" - def osc_11_warning - <<-EOF -The Chef Server you are using does not support the username field. -This means it is an Open Source 11 Server. -knife user delete for Open Source 11 Server is being deprecated. -Open Source 11 Server user commands now live under the knife osc_user namespace. -For backwards compatibility, we will forward this request to knife osc_user delete. -If you are using an Open Source 11 Server, please use that command to avoid this warning. -NOTE: Backwards compatibility for Open Source 11 Server in these commands will be removed -in Chef 14 which will be released April 2018. -EOF - end - - def run_osc_11_user_delete - # run osc_user_delete with our input - ARGV.delete("user") - ARGV.unshift("osc_user") - Chef::Knife.run(ARGV, Chef::Application::Knife.options) - end - - # DEPRECATION NOTE - # Delete this override method after OSC 11 support is dropped - def delete_object(user_name) - confirm("Do you really want to delete #{user_name}") - - if Kernel.block_given? - object = block.call - else - object = Chef::UserV1.load(user_name) - object.destroy - end - - output(format_for_display(object)) if config[:print_after] - msg("Deleted #{user_name}") - end - def run @user_name = @name_args[0] @@ -74,23 +38,7 @@ EOF exit 1 end - # DEPRECATION NOTE - # - # Below is modification of Chef::Knife.delete_object to detect OSC 11 server. - # When OSC 11 is deprecated, simply delete all this and go back to: - # - # delete_object(Chef::UserV1, @user_name) - # - # Also delete our override of delete_object above - object = Chef::UserV1.load(@user_name) - - # OSC 11 case - if object.username.nil? - ui.warn(osc_11_warning) - run_osc_11_user_delete - else # proceed with EC / CS delete - delete_object(@user_name) - end + delete_object(Chef::UserV1, @user_name) end end end diff --git a/lib/chef/knife/user_edit.rb b/lib/chef/knife/user_edit.rb index c7b1f61fd8..0126a0c98e 100644 --- a/lib/chef/knife/user_edit.rb +++ b/lib/chef/knife/user_edit.rb @@ -1,6 +1,6 @@ # # Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. +# Copyright:: Copyright 2012-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -29,26 +29,6 @@ class Chef banner "knife user edit USER (options)" - def osc_11_warning - <<-EOF -The Chef Server you are using does not support the username field. -This means it is an Open Source 11 Server. -knife user edit for Open Source 11 Server is being deprecated. -Open Source 11 Server user commands now live under the knife oc_user namespace. -For backwards compatibility, we will forward this request to knife osc_user edit. -If you are using an Open Source 11 Server, please use that command to avoid this warning. -NOTE: Backwards compatibility for Open Source 11 Server in these commands will be removed -in Chef 14 which will be released April 2018. -EOF - end - - def run_osc_11_user_edit - # run osc_user_create with our input - ARGV.delete("user") - ARGV.unshift("osc_user") - Chef::Knife.run(ARGV, Chef::Application::Knife.options) - end - def run @user_name = @name_args[0] @@ -59,23 +39,13 @@ EOF end original_user = Chef::UserV1.load(@user_name).to_hash - # DEPRECATION NOTE - # Remove this if statement and corrosponding code post OSC 11 support. - # - # if username is nil, we are in the OSC 11 case, - # forward to deprecated command - if original_user["username"].nil? - ui.warn(osc_11_warning) - run_osc_11_user_edit - else # EC / CS 12 user create - edited_user = edit_hash(original_user) - if original_user != edited_user - user = Chef::UserV1.from_hash(edited_user) - user.update - ui.msg("Saved #{user}.") - else - ui.msg("User unchanged, not saving.") - end + edited_user = edit_hash(original_user) + if original_user != edited_user + user = Chef::UserV1.from_hash(edited_user) + user.update + ui.msg("Saved #{user}.") + else + ui.msg("User unchanged, not saving.") end end end diff --git a/lib/chef/knife/user_reregister.rb b/lib/chef/knife/user_reregister.rb index 5f124f8f9f..e68e3023ce 100644 --- a/lib/chef/knife/user_reregister.rb +++ b/lib/chef/knife/user_reregister.rb @@ -1,6 +1,6 @@ # # Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2012-2016, Chef Software Inc. +# Copyright:: Copyright 2012-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -29,26 +29,6 @@ class Chef banner "knife user reregister USER (options)" - def osc_11_warning - <<-EOF -The Chef Server you are using does not support the username field. -This means it is an Open Source 11 Server. -knife user reregister for Open Source 11 Server is being deprecated. -Open Source 11 Server user commands now live under the knife osc_user namespace. -For backwards compatibility, we will forward this request to knife osc_user reregister. -If you are using an Open Source 11 Server, please use that command to avoid this warning. -NOTE: Backwards compatibility for Open Source 11 Server in these commands will be removed -in Chef 14 which will be released April 2018. -EOF - end - - def run_osc_11_user_reregister - # run osc_user_edit with our input - ARGV.delete("user") - ARGV.unshift("osc_user") - Chef::Knife.run(ARGV, Chef::Application::Knife.options) - end - option :file, :short => "-f FILE", :long => "--file FILE", @@ -64,26 +44,15 @@ EOF end user = Chef::UserV1.load(@user_name) - - # DEPRECATION NOTE - # Remove this if statement and corrosponding code post OSC 11 support. - # - # if username is nil, we are in the OSC 11 case, - # forward to deprecated command - if user.username.nil? - ui.warn(osc_11_warning) - run_osc_11_user_reregister - else # EC / CS 12 case - user.reregister - Chef::Log.debug("Updated user data: #{user.inspect}") - key = user.private_key - if config[:file] - File.open(config[:file], "w") do |f| - f.print(key) - end - else - ui.msg key + user.reregister + Chef::Log.debug("Updated user data: #{user.inspect}") + key = user.private_key + if config[:file] + File.open(config[:file], "w") do |f| + f.print(key) end + else + ui.msg key end end end diff --git a/lib/chef/knife/user_show.rb b/lib/chef/knife/user_show.rb index 9dcb9d1539..b14fddcb37 100644 --- a/lib/chef/knife/user_show.rb +++ b/lib/chef/knife/user_show.rb @@ -1,6 +1,6 @@ # # Author:: Steven Danna (<steve@chef.io>) -# Copyright:: Copyright 2009-2016, Chef Software Inc. +# Copyright:: Copyright 2009-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -31,26 +31,6 @@ class Chef banner "knife user show USER (options)" - def osc_11_warning - <<-EOF -The Chef Server you are using does not support the username field. -This means it is an Open Source 11 Server. -knife user show for Open Source 11 Server is being deprecated. -Open Source 11 Server user commands now live under the knife osc_user namespace. -For backwards compatibility, we will forward this request to knife osc_user show. -If you are using an Open Source 11 Server, please use that command to avoid this warning. -NOTE: Backwards compatibility for Open Source 11 Server in these commands will be removed -in Chef 14 which will be released April 2018. -EOF - end - - def run_osc_11_user_show - # run osc_user_edit with our input - ARGV.delete("user") - ARGV.unshift("osc_user") - Chef::Knife.run(ARGV, Chef::Application::Knife.options) - end - def run @user_name = @name_args[0] @@ -61,18 +41,7 @@ EOF end user = Chef::UserV1.load(@user_name) - - # DEPRECATION NOTE - # Remove this if statement and corrosponding code post OSC 11 support. - # - # if username is nil, we are in the OSC 11 case, - # forward to deprecated command - if user.username.nil? - ui.warn(osc_11_warning) - run_osc_11_user_show - else - output(format_for_display(user)) - end + output(format_for_display(user)) end end diff --git a/spec/unit/knife/user_create_spec.rb b/spec/unit/knife/user_create_spec.rb index 07d72fd05a..4d938c75d8 100644 --- a/spec/unit/knife/user_create_spec.rb +++ b/spec/unit/knife/user_create_spec.rb @@ -38,25 +38,6 @@ describe Chef::Knife::UserCreate do allow(knife.ui).to receive(:warn) end - # delete this once OSC11 support is gone - context "when only one name_arg is passed" do - before do - knife.name_args = ["some_user"] - allow(knife).to receive(:run_osc_11_user_create).and_raise(SystemExit) - end - - it "displays the osc warning" do - expect(knife.ui).to receive(:warn).with(knife.osc_11_warning) - expect { knife.run }.to raise_error(SystemExit) - end - - it "calls knife osc_user create" do - expect(knife).to receive(:run_osc_11_user_create) - expect { knife.run }.to raise_error(SystemExit) - end - - end - context "when USERNAME isn't specified" do # from spec/support/shared/unit/knife_shared.rb it_should_behave_like "mandatory field missing" do diff --git a/spec/unit/knife/user_delete_spec.rb b/spec/unit/knife/user_delete_spec.rb index 0f71b39a41..ed83fb8c6b 100644 --- a/spec/unit/knife/user_delete_spec.rb +++ b/spec/unit/knife/user_delete_spec.rb @@ -32,24 +32,6 @@ describe Chef::Knife::UserDelete do allow(knife.ui).to receive(:stdout).and_return(stdout) end - # delete this once OSC11 support is gone - context "when the username field is not supported by the server" do - before do - allow(knife).to receive(:run_osc_11_user_delete).and_raise(SystemExit) - allow(user).to receive(:username).and_return(nil) - end - - it "displays the osc warning" do - expect(knife.ui).to receive(:warn).with(knife.osc_11_warning) - expect { knife.run }.to raise_error(SystemExit) - end - - it "forwards the command to knife osc_user edit" do - expect(knife).to receive(:run_osc_11_user_delete) - expect { knife.run }.to raise_error(SystemExit) - end - end - it "deletes the user" do #expect(knife).to receive(:delete_object).with(Chef::UserV1, 'my_user') expect(knife).to receive(:delete_object).with("my_user") diff --git a/spec/unit/knife/user_edit_spec.rb b/spec/unit/knife/user_edit_spec.rb index 18ade54068..8ebc19de2d 100644 --- a/spec/unit/knife/user_edit_spec.rb +++ b/spec/unit/knife/user_edit_spec.rb @@ -32,24 +32,6 @@ describe Chef::Knife::UserEdit do knife.config[:disable_editing] = true end - # delete this once OSC11 support is gone - context "when the username field is not supported by the server" do - before do - allow(knife).to receive(:run_osc_11_user_edit).and_raise(SystemExit) - allow(Chef::UserV1).to receive(:load).and_return({ "username" => nil }) - end - - it "displays the osc warning" do - expect(knife.ui).to receive(:warn).with(knife.osc_11_warning) - expect { knife.run }.to raise_error(SystemExit) - end - - it "forwards the command to knife osc_user edit" do - expect(knife).to receive(:run_osc_11_user_edit) - expect { knife.run }.to raise_error(SystemExit) - end - end - it "loads and edits the user" do data = { "username" => "my_user" } allow(Chef::UserV1).to receive(:load).with("my_user").and_return(data) diff --git a/spec/unit/knife/user_reregister_spec.rb b/spec/unit/knife/user_reregister_spec.rb index d650ff9fb8..9c02f0e9e4 100644 --- a/spec/unit/knife/user_reregister_spec.rb +++ b/spec/unit/knife/user_reregister_spec.rb @@ -32,24 +32,6 @@ describe Chef::Knife::UserReregister do allow(user_mock).to receive(:username).and_return("a_user") end - # delete this once OSC11 support is gone - context "when the username field is not supported by the server" do - before do - allow(knife).to receive(:run_osc_11_user_reregister).and_raise(SystemExit) - allow(user_mock).to receive(:username).and_return(nil) - end - - it "displays the osc warning" do - expect(knife.ui).to receive(:warn).with(knife.osc_11_warning) - expect { knife.run }.to raise_error(SystemExit) - end - - it "forwards the command to knife osc_user edit" do - expect(knife).to receive(:run_osc_11_user_reregister) - expect { knife.run }.to raise_error(SystemExit) - end - end - it "prints usage and exits when a user name is not provided" do knife.name_args = [] expect(knife).to receive(:show_usage) diff --git a/spec/unit/knife/user_show_spec.rb b/spec/unit/knife/user_show_spec.rb index 3a38161b34..c15dfed43c 100644 --- a/spec/unit/knife/user_show_spec.rb +++ b/spec/unit/knife/user_show_spec.rb @@ -31,25 +31,6 @@ describe Chef::Knife::UserShow do allow(knife.ui).to receive(:stdout).and_return(stdout) end - # delete this once OSC11 support is gone - context "when the username field is not supported by the server" do - before do - allow(knife).to receive(:run_osc_11_user_show).and_raise(SystemExit) - allow(Chef::UserV1).to receive(:load).with("my_user").and_return(user_mock) - allow(user_mock).to receive(:username).and_return(nil) - end - - it "displays the osc warning" do - expect(knife.ui).to receive(:warn).with(knife.osc_11_warning) - expect { knife.run }.to raise_error(SystemExit) - end - - it "forwards the command to knife osc_user edit" do - expect(knife).to receive(:run_osc_11_user_show) - expect { knife.run }.to raise_error(SystemExit) - end - end - it "loads and displays the user" do expect(Chef::UserV1).to receive(:load).with("my_user").and_return(user_mock) expect(knife).to receive(:format_for_display).with(user_mock) |