class Chef::ChefFS::FileSystem::ChefServer::OrganizationMembersEntry
/organizations/NAME/members.json reads data from:
-
GET /organizations/NAME/users
writes data to:
-
remove from list: DELETE /organizations/NAME/users/name
-
add to list: POST /organizations/NAME/users/name
Public Class Methods
new(name, parent, exists = nil)
click to toggle source
Calls superclass method
# File lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb, line 16 def initialize(name, parent, exists = nil) super(name, parent) @exists = exists end
Public Instance Methods
api_path()
click to toggle source
/organizations/foo/members.json -> /organizations/foo/users
# File lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb, line 26 def api_path File.join(parent.api_path, "users") end
data_handler()
click to toggle source
# File lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb, line 21 def data_handler Chef::ChefFS::DataHandler::OrganizationMembersDataHandler.new end
delete(recurse)
click to toggle source
# File lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb, line 38 def delete(recurse) raise Chef::ChefFS::FileSystem::OperationNotAllowedError.new(:delete, self) end
display_path()
click to toggle source
# File lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb, line 30 def display_path "/members.json" end
exists?()
click to toggle source
# File lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb, line 34 def exists? parent.exists? end
write(contents)
click to toggle source
# File lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb, line 42 def write(contents) desired_members = minimize_value(Chef::JSONCompat.parse(contents, :create_additions => false)) members = minimize_value(_read_json) (desired_members - members).each do |member| begin rest.post(api_path, "username" => member) rescue Net::HTTPServerException => e if %w{404 405}.include?(e.response.code) raise "Chef server at #{api_path} does not allow you to directly add members. Please either upgrade your Chef server or move the users you want into invitations.json instead of members.json." else raise end end end (members - desired_members).each do |member| rest.delete(File.join(api_path, member)) end end