Class Methods
# File lib/chef/user.rb, line 128 def self.from_hash(user_hash) user = Chef::User.new user.name user_hash['name'] user.private_key user_hash['private_key'] if user_hash.key?('private_key') user.password user_hash['password'] if user_hash.key?('password') user.public_key user_hash['public_key'] user.admin user_hash['admin'] user end
# File lib/chef/user.rb, line 138 def self.from_json(json) Chef::User.from_hash(Chef::JSONCompat.from_json(json)) end
# File lib/chef/user.rb, line 146 def self.list(inflate=false) response = Chef::REST.new(Chef::Config[:chef_server_url]).get_rest('users') users = if response.is_a?(Array) transform_ohc_list_response(response) # OHC/OPC else response # OSC end if inflate users.inject({}) do |user_map, (name, _url)| user_map[name] = Chef::User.load(name) user_map end else users end end
# File lib/chef/user.rb, line 44 def admin(arg=nil) set_or_return(:admin, arg, :kind_of => [TrueClass, FalseClass]) end
# File lib/chef/user.rb, line 83 def create payload = {:name => self.name, :admin => self.admin, :password => self.password } payload[:public_key] = public_key if public_key new_user =Chef::REST.new(Chef::Config[:chef_server_url]).post_rest("users", payload) Chef::User.from_hash(self.to_hash.merge(new_user)) end
# File lib/chef/user.rb, line 79 def destroy Chef::REST.new(Chef::Config[:chef_server_url]).delete_rest("users/#{@name}") end
# File lib/chef/user.rb, line 121 def inspect "Chef::User name:'#{name}' admin:'#{admin.inspect}'" + "public_key:'#{public_key}' private_key:#{private_key}" end
# File lib/chef/user.rb, line 39 def name(arg=nil) set_or_return(:name, arg, :regex => /^[a-z0-9\-_]+$/) end
# File lib/chef/user.rb, line 59 def password(arg=nil) set_or_return(:password, arg, :kind_of => String) end
# File lib/chef/user.rb, line 54 def private_key(arg=nil) set_or_return(:private_key, arg, :kind_of => String) end
# File lib/chef/user.rb, line 49 def public_key(arg=nil) set_or_return(:public_key, arg, :kind_of => String) end
# File lib/chef/user.rb, line 110 def reregister r = Chef::REST.new(Chef::Config[:chef_server_url]) reregistered_self = r.put_rest("users/#{name}", { :name => name, :admin => admin, :private_key => true }) private_key(reregistered_self["private_key"]) self end
# File lib/chef/user.rb, line 98 def save(new_key=false) begin create rescue Net::HTTPServerException => e if e.response.code == "409" update(new_key) else raise e end end end
# File lib/chef/user.rb, line 64 def to_hash result = { "name" => @name, "public_key" => @public_key, "admin" => @admin } result["private_key"] = @private_key if @private_key result["password"] = @password if @password result end
# File lib/chef/user.rb, line 75 def to_json(*a) to_hash.to_json(*a) end
# File lib/chef/user.rb, line 90 def update(new_key=false) payload = {:name => name, :admin => admin} payload[:private_key] = new_key if new_key payload[:password] = password if password updated_user = Chef::REST.new(Chef::Config[:chef_server_url]).put_rest("users/#{name}", payload) Chef::User.from_hash(self.to_hash.merge(updated_user)) end
Generated with the Darkfish Rdoc Generator 2.