summaryrefslogtreecommitdiff
path: root/knife/lib/chef/knife/user_key_show.rb
diff options
context:
space:
mode:
Diffstat (limited to 'knife/lib/chef/knife/user_key_show.rb')
-rw-r--r--knife/lib/chef/knife/user_key_show.rb80
1 files changed, 80 insertions, 0 deletions
diff --git a/knife/lib/chef/knife/user_key_show.rb b/knife/lib/chef/knife/user_key_show.rb
new file mode 100644
index 0000000000..2bf535c792
--- /dev/null
+++ b/knife/lib/chef/knife/user_key_show.rb
@@ -0,0 +1,80 @@
+#
+# Author:: Tyler Cloke (tyler@chef.io)
+# Copyright:: Copyright (c) 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_relative "../knife"
+
+class Chef
+ class Knife
+ # Implements knife user key show using Chef::Knife::KeyShow
+ # as a service class.
+ #
+ # @author Tyler Cloke
+ #
+ # @attr_reader [String] actor the name of the client that this key is for
+ class UserKeyShow < Knife
+ banner "knife user key show USER KEYNAME (options)"
+
+ deps do
+ require_relative "key_show"
+ end
+
+ attr_reader :actor
+
+ def initialize(argv = [])
+ super(argv)
+ @service_object = nil
+ end
+
+ def run
+ apply_params!(@name_args)
+ service_object.run
+ end
+
+ def load_method
+ :load_by_user
+ end
+
+ def actor_missing_error
+ "You must specify a user name"
+ end
+
+ def keyname_missing_error
+ "You must specify a key name"
+ end
+
+ def service_object
+ @service_object ||= Chef::Knife::KeyShow.new(@name, @actor, load_method, ui)
+ end
+
+ def apply_params!(params)
+ @actor = params[0]
+ if @actor.nil?
+ show_usage
+ ui.fatal(actor_missing_error)
+ exit 1
+ end
+ @name = params[1]
+ if @name.nil?
+ show_usage
+ ui.fatal(keyname_missing_error)
+ exit 1
+ end
+ end
+ end
+ end
+end