summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsnehaldwivedi <sdwivedi@msystechnologies.com>2020-09-22 06:23:43 -0700
committersnehaldwivedi <sdwivedi@msystechnologies.com>2021-09-16 04:59:49 -0700
commit2de4d360c5c000d45eb0c6b261c9eb00157f9bb2 (patch)
treef93cc8f0fee95a673f1ac5c2bfa9ad5e9ba5d9a4
parentaa2de2248e3f871532b32fdbfab0fe33b12dfb97 (diff)
downloadchef-snehal/Add_global_list_option_in_user_list.tar.gz
Add global option in knife user listsnehal/Add_global_list_option_in_user_list
Signed-off-by: snehaldwivedi <sdwivedi@msystechnologies.com>
-rw-r--r--knife/lib/chef/knife/user_list.rb13
-rw-r--r--knife/spec/unit/knife/user_list_spec.rb27
2 files changed, 30 insertions, 10 deletions
diff --git a/knife/lib/chef/knife/user_list.rb b/knife/lib/chef/knife/user_list.rb
index cb3b577541..b66376e8d9 100644
--- a/knife/lib/chef/knife/user_list.rb
+++ b/knife/lib/chef/knife/user_list.rb
@@ -34,8 +34,19 @@ class Chef
long: "--with-uri",
description: "Show corresponding URIs."
+ option :global,
+ short: "-g",
+ long: "--global",
+ description: "List all global users."
+
def run
- output(format_list_for_display(Chef::UserV1.list))
+ if config[:global]
+ results = format_list_for_display(root_rest.get("users"))
+ else
+ user_arr = rest.get("users")
+ results = user_arr.map { |user| user["user"]["username"] }
+ end
+ output(results)
end
end
diff --git a/knife/spec/unit/knife/user_list_spec.rb b/knife/spec/unit/knife/user_list_spec.rb
index 01013de352..24f40dc99d 100644
--- a/knife/spec/unit/knife/user_list_spec.rb
+++ b/knife/spec/unit/knife/user_list_spec.rb
@@ -30,15 +30,21 @@ describe Chef::Knife::UserList do
}
end
+ let(:users1) do
+ [{ "user" => { "username" => "user3" } },
+ { "user" => { "username" => "user4" } },
+ { "user" => { "username" => "user5" } }]
+ end
+
before :each do
@rest = double("Chef::ServerAPI")
allow(Chef::ServerAPI).to receive(:new).and_return(@rest)
- allow(@rest).to receive(:get).with("users").and_return(users)
end
describe "with no arguments" do
it "lists all non users" do
- expect(knife.ui).to receive(:output).with(%w{user1 user2})
+ allow(@rest).to receive(:get).with("users").and_return(users1)
+ expect(knife.ui).to receive(:output).with(%w{user3 user4 user5})
knife.run
end
@@ -47,27 +53,30 @@ describe Chef::Knife::UserList do
describe "with all_users argument" do
before do
knife.config[:all_users] = true
+ allow(@rest).to receive(:get).with("users").and_return(users1)
end
it "lists all users including hidden users" do
- expect(knife.ui).to receive(:output).with(%w{user1 user2})
+ expect(knife.ui).to receive(:output).with(%w{user3 user4 user5})
knife.run
end
end
- it "lists the users" do
- expect(knife).to receive(:format_list_for_display)
- knife.run
- end
-
- describe "with options with_uri argument" do
+ describe "with options with_uri argument and global" do
before do
knife.config[:with_uri] = true
+ knife.config[:global] = true
+ allow(@rest).to receive(:get).with("users").and_return(users)
end
it "lists all users including hidden users" do
expect(knife.ui).to receive(:output).with(users)
knife.run
end
+
+ it "lists the users" do
+ expect(knife).to receive(:format_list_for_display)
+ knife.run
+ end
end
end