diff options
author | Chris Walters <cw@opscode.com> | 2010-06-18 19:29:18 -0700 |
---|---|---|
committer | Chris Walters <cw@opscode.com> | 2010-06-19 18:16:22 -0700 |
commit | b6f0126d0188e3bf06cbc750aac4a66faedd6f55 (patch) | |
tree | 6a952d9388a8c12d309c420d087b68ac336129c1 | |
parent | 379340fe367b50ccbda5fa2cbe15c5d972b4e0e9 (diff) | |
download | chef-b6f0126d0188e3bf06cbc750aac4a66faedd6f55.tar.gz |
Knife validates required parameters
-rw-r--r-- | chef/lib/chef/knife/client_create.rb | 12 | ||||
-rw-r--r-- | chef/lib/chef/knife/client_delete.rb | 10 | ||||
-rw-r--r-- | chef/lib/chef/knife/client_edit.rb | 12 | ||||
-rw-r--r-- | chef/lib/chef/knife/client_reregister.rb | 12 | ||||
-rw-r--r-- | chef/lib/chef/knife/client_show.rb | 12 | ||||
-rw-r--r-- | chef/lib/chef/knife/cookbook_show.rb | 4 | ||||
-rw-r--r-- | chef/lib/chef/knife/cookbook_upload.rb | 5 | ||||
-rw-r--r-- | chef/lib/chef/knife/data_bag_delete.rb | 6 | ||||
-rw-r--r-- | chef/lib/chef/knife/node_create.rb | 12 | ||||
-rw-r--r-- | chef/lib/chef/knife/node_delete.rb | 10 | ||||
-rw-r--r-- | chef/lib/chef/knife/node_edit.rb | 10 | ||||
-rw-r--r-- | chef/lib/chef/knife/node_show.rb | 10 | ||||
-rw-r--r-- | chef/lib/chef/knife/role_create.rb | 12 | ||||
-rw-r--r-- | chef/lib/chef/knife/role_delete.rb | 10 | ||||
-rw-r--r-- | chef/lib/chef/knife/role_edit.rb | 10 | ||||
-rw-r--r-- | chef/lib/chef/knife/role_show.rb | 10 |
16 files changed, 137 insertions, 20 deletions
diff --git a/chef/lib/chef/knife/client_create.rb b/chef/lib/chef/knife/client_create.rb index 696211ea4d..1eac0e389b 100644 --- a/chef/lib/chef/knife/client_create.rb +++ b/chef/lib/chef/knife/client_create.rb @@ -37,9 +37,17 @@ class Chef banner "Sub-Command: client create CLIENT (options)" - def run + def run + @client_name = @name_args[0] + + if @client_name.nil? + show_usage + Chef::Log.fatal("You must specify a client name") + exit 1 + end + client = Chef::ApiClient.new - client.name(@name_args[0]) + client.name(@client_name) client.admin(config[:admin]) output = edit_data(client) diff --git a/chef/lib/chef/knife/client_delete.rb b/chef/lib/chef/knife/client_delete.rb index 9a44a3b813..34e13fbe5a 100644 --- a/chef/lib/chef/knife/client_delete.rb +++ b/chef/lib/chef/knife/client_delete.rb @@ -27,7 +27,15 @@ class Chef banner "Sub-Command: client delete CLIENT (options)" def run - delete_object(Chef::ApiClient, @name_args[0]) + @client_name = @name_args[0] + + if @client_name.nil? + show_usage + Chef::Log.fatal("You must specify a client name") + exit 1 + end + + delete_object(Chef::ApiClient, @client_name) end end diff --git a/chef/lib/chef/knife/client_edit.rb b/chef/lib/chef/knife/client_edit.rb index 469cca9f9e..c9e13068ba 100644 --- a/chef/lib/chef/knife/client_edit.rb +++ b/chef/lib/chef/knife/client_edit.rb @@ -26,8 +26,16 @@ class Chef banner "Sub-Command: client edit CLIENT (options)" - def run - edit_object(Chef::ApiClient, @name_args[0]) + def run + @client_name = @name_args[0] + + if @client_name.nil? + show_usage + Chef::Log.fatal("You must specify a client name") + exit 1 + end + + edit_object(Chef::ApiClient, @client_name) end end end diff --git a/chef/lib/chef/knife/client_reregister.rb b/chef/lib/chef/knife/client_reregister.rb index c963c9c566..63cf2ce30f 100644 --- a/chef/lib/chef/knife/client_reregister.rb +++ b/chef/lib/chef/knife/client_reregister.rb @@ -31,8 +31,16 @@ class Chef :long => "--file FILE", :description => "Write the key to a file" - def run - client = Chef::ApiClient.load(@name_args[0]) + def run + @client_name = @name_args[0] + + if @client_name.nil? + show_usage + Chef::Log.fatal("You must specify a client name") + exit 1 + end + + client = Chef::ApiClient.load(@client_name) key = client.save(true) if config[:file] File.open(config[:file], "w") do |f| diff --git a/chef/lib/chef/knife/client_show.rb b/chef/lib/chef/knife/client_show.rb index 81204547b3..d48d396b31 100644 --- a/chef/lib/chef/knife/client_show.rb +++ b/chef/lib/chef/knife/client_show.rb @@ -31,8 +31,16 @@ class Chef :long => "--attribute ATTR", :description => "Show only one attribute" - def run - client = Chef::ApiClient.load(@name_args[0]) + def run + @client_name = @name_args[0] + + if @client_name.nil? + show_usage + Chef::Log.fatal("You must specify a client name") + exit 1 + end + + client = Chef::ApiClient.load(@client_name) output(format_for_display(client)) end diff --git a/chef/lib/chef/knife/cookbook_show.rb b/chef/lib/chef/knife/cookbook_show.rb index ec7969471a..3e2bb26cf9 100644 --- a/chef/lib/chef/knife/cookbook_show.rb +++ b/chef/lib/chef/knife/cookbook_show.rb @@ -74,6 +74,10 @@ class Chef output(rest.get_rest("cookbooks/#{@name_args[0]}/#{cookbook_version}")) when 1 # We are showing the cookbook versions output(rest.get_rest("cookbooks/#{@name_args[0]}")) + when 0 + show_usage + Chef::Log.fatal("You must specify a cookbook name") + exit 1 end end diff --git a/chef/lib/chef/knife/cookbook_upload.rb b/chef/lib/chef/knife/cookbook_upload.rb index a4315bc7b6..307e54a35f 100644 --- a/chef/lib/chef/knife/cookbook_upload.rb +++ b/chef/lib/chef/knife/cookbook_upload.rb @@ -63,6 +63,11 @@ class Chef upload_cookbook(cookbook) end else + if @name_args.length < 1 + show_usage + Chef::Log.fatal("You must specify the --all flag or at least one cookbook name") + exit 1 + end @name_args.each do |cookbook_name| if cl.cookbook_exists?(cookbook_name) upload_cookbook(cl[cookbook_name]) diff --git a/chef/lib/chef/knife/data_bag_delete.rb b/chef/lib/chef/knife/data_bag_delete.rb index c42ccccaa2..f0d045b037 100644 --- a/chef/lib/chef/knife/data_bag_delete.rb +++ b/chef/lib/chef/knife/data_bag_delete.rb @@ -30,10 +30,14 @@ class Chef delete_object(Chef::DataBagItem, @name_args[1], "data_bag_item") do rest.delete_rest("data/#{@name_args[0]}/#{@name_args[1]}") end - else + elsif @name_args.length == 1 delete_object(Chef::DataBag, @name_args[0], "data_bag") do rest.delete_rest("data/#{@name_args[0]}") end + else + show_usage + Chef::Log.fatal("You must specify at least a data bag name") + exit 1 end end end diff --git a/chef/lib/chef/knife/node_create.rb b/chef/lib/chef/knife/node_create.rb index 0842cfb6b8..7f22c3c6a7 100644 --- a/chef/lib/chef/knife/node_create.rb +++ b/chef/lib/chef/knife/node_create.rb @@ -26,9 +26,17 @@ class Chef banner "Sub-Command: node create NODE (options)" - def run + def run + @node_name = @name_args[0] + + if @node_name.nil? + show_usage + Chef::Log.fatal("You must specify a node name") + exit 1 + end + node = Chef::Node.new - node.name(@name_args[0]) + node.name(@node_name) create_object(node) end end diff --git a/chef/lib/chef/knife/node_delete.rb b/chef/lib/chef/knife/node_delete.rb index 818b29f218..f635855047 100644 --- a/chef/lib/chef/knife/node_delete.rb +++ b/chef/lib/chef/knife/node_delete.rb @@ -27,7 +27,15 @@ class Chef banner "Sub-Command: node delete NODE (options)" def run - delete_object(Chef::Node, @name_args[0]) + @node_name = @name_args[0] + + if @node_name.nil? + show_usage + Chef::Log.fatal("You must specify a node name") + exit 1 + end + + delete_object(Chef::Node, @node_name) end end diff --git a/chef/lib/chef/knife/node_edit.rb b/chef/lib/chef/knife/node_edit.rb index c51454157d..77d709c346 100644 --- a/chef/lib/chef/knife/node_edit.rb +++ b/chef/lib/chef/knife/node_edit.rb @@ -27,7 +27,15 @@ class Chef banner "Sub-Command: node edit NODE (options)" def run - edit_object(Chef::Node, @name_args[0]) + @node_name = @name_args[0] + + if @node_name.nil? + show_usage + Chef::Log.fatal("You must specify a node name") + exit 1 + end + + edit_object(Chef::Node, @node_name) end end end diff --git a/chef/lib/chef/knife/node_show.rb b/chef/lib/chef/knife/node_show.rb index e5cede73d1..83a2e0c0b7 100644 --- a/chef/lib/chef/knife/node_show.rb +++ b/chef/lib/chef/knife/node_show.rb @@ -37,7 +37,15 @@ class Chef :description => "Show only the run list" def run - node = Chef::Node.load(@name_args[0]) + @node_name = @name_args[0] + + if @node_name.nil? + show_usage + Chef::Log.fatal("You must specify a node name") + exit 1 + end + + node = Chef::Node.load(@node_name) output(format_for_display(node)) end end diff --git a/chef/lib/chef/knife/role_create.rb b/chef/lib/chef/knife/role_create.rb index 90424d8dad..2f4e375c84 100644 --- a/chef/lib/chef/knife/role_create.rb +++ b/chef/lib/chef/knife/role_create.rb @@ -31,9 +31,17 @@ class Chef :long => "--description", :description => "The role description" - def run + def run + @role_name = @name_args[0] + + if @role_name.nil? + show_usage + Chef::Log.fatal("You must specify a role name") + exit 1 + end + role = Chef::Role.new - role.name(@name_args[0]) + role.name(@role_name) role.description(config[:description]) if config[:description] create_object(role) end diff --git a/chef/lib/chef/knife/role_delete.rb b/chef/lib/chef/knife/role_delete.rb index 1b3184e66f..d5246a52f5 100644 --- a/chef/lib/chef/knife/role_delete.rb +++ b/chef/lib/chef/knife/role_delete.rb @@ -27,7 +27,15 @@ class Chef banner "Sub-Command: role delete ROLE (options)" def run - delete_object(Chef::Role, @name_args[0]) + @role_name = @name_args[0] + + if @role_name.nil? + show_usage + Chef::Log.fatal("You must specify a role name") + exit 1 + end + + delete_object(Chef::Role, @role_name) end end diff --git a/chef/lib/chef/knife/role_edit.rb b/chef/lib/chef/knife/role_edit.rb index 7e53df515d..3454cf59b0 100644 --- a/chef/lib/chef/knife/role_edit.rb +++ b/chef/lib/chef/knife/role_edit.rb @@ -27,7 +27,15 @@ class Chef banner "Sub-Command: role edit ROLE (options)" def run - edit_object(Chef::Role, @name_args[0]) + @role_name = @name_args[0] + + if @role_name.nil? + show_usage + Chef::Log.fatal("You must specify a role name") + exit 1 + end + + edit_object(Chef::Role, @role_name) end end end diff --git a/chef/lib/chef/knife/role_show.rb b/chef/lib/chef/knife/role_show.rb index b5e1f0f0a3..68f30dde20 100644 --- a/chef/lib/chef/knife/role_show.rb +++ b/chef/lib/chef/knife/role_show.rb @@ -32,7 +32,15 @@ class Chef :description => "Show only one attribute" def run - role = Chef::Role.load(@name_args[0]) + @role_name = @name_args[0] + + if @role_name.nil? + show_usage + Chef::Log.fatal("You must specify a role name") + exit 1 + end + + role = Chef::Role.load(@role_name) output(format_for_display(role)) end |