From befdb8dc5f2df3058d96dd45e7859f1d47a21947 Mon Sep 17 00:00:00 2001 From: "Marc A. Paradise" Date: Mon, 8 Mar 2021 15:03:46 -0500 Subject: knife lib file moves - see msg for git log info To see the complete history for these files, use 'git log --follow', or use 'git config log.follow true' to make it the default behavior in this repository; or 'git config --global log.follow true' to make it the global default. Signed-off-by: Marc A. Paradise --- knife/lib/chef/knife/org_user_add.rb | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 knife/lib/chef/knife/org_user_add.rb (limited to 'knife/lib/chef/knife/org_user_add.rb') diff --git a/knife/lib/chef/knife/org_user_add.rb b/knife/lib/chef/knife/org_user_add.rb new file mode 100644 index 0000000000..cd0ea88d56 --- /dev/null +++ b/knife/lib/chef/knife/org_user_add.rb @@ -0,0 +1,62 @@ +# +# Author:: Marc Paradise () +# 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. +# + +class Chef + class Knife + class OrgUserAdd < Knife + category "CHEF ORGANIZATION MANAGEMENT" + banner "knife org user add ORG_NAME USER_NAME" + attr_accessor :org_name, :username + + option :admin, + long: "--admin", + short: "-a", + description: "Add user to admin group" + + deps do + require_relative "../org" + end + + def run + @org_name, @username = @name_args + + if !org_name || !username + ui.fatal "You must specify an ORG_NAME and USER_NAME" + show_usage + exit 1 + end + + org = Chef::Org.new(@org_name) + begin + org.associate_user(@username) + rescue Net::HTTPServerException => e + if e.response.code == "409" + ui.msg "User #{username} already associated with organization #{org_name}" + else + raise e + end + end + if config[:admin] + org.add_user_to_group("admins", @username) + org.add_user_to_group("billing-admins", @username) + ui.msg "User #{username} is added to admins and billing-admins group" + end + end + end + end +end -- cgit v1.2.1