module ChefAPI::AclAble

Public Instance Methods

acl() click to toggle source
# File lib/chef-api/aclable.rb, line 15
def acl
  unless @acl
    load_acl
  end
  @acl
end
acl_path() click to toggle source
# File lib/chef-api/aclable.rb, line 3
def acl_path
  resource_path + "/_acl"
end
load_acl() click to toggle source
# File lib/chef-api/aclable.rb, line 7
def load_acl
  data = self.class.connection.get(acl_path)
  # make deep copy
  @orig_acl_data = Marshal.load(Marshal.dump(data))
  data.freeze
  @acl = data
end
save!() click to toggle source
Calls superclass method
# File lib/chef-api/aclable.rb, line 22
def save!
  super
  if @acl != @orig_acl_data
    %w{create update grant read delete}.each { |action|
      if @acl[action] != @orig_acl_data[action]
        url = "#{acl_path}/#{action}"
        self.class.connection.put(url, { action => @acl[action] }.to_json)
      end
    }
  end
end