class Insights::API::Common::RBAC::Roles

Attributes

roles[R]

Public Class Methods

assigned_role?(role_name) click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 48
def self.assigned_role?(role_name)
  opts = { :name  => role_name,
           :scope => 'principal' }

  Service.call(RBACApiClient::RoleApi) do |api_instance|
    Service.paginate(api_instance, :list_roles, opts).count.positive?
  end
end
new(prefix = nil, scope = 'principal') click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 8
def initialize(prefix = nil, scope = 'principal')
  @roles = {}
  load(prefix, scope)
end

Public Instance Methods

add(name, acls) click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 24
def add(name, acls)
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    role_in = RBACApiClient::RoleIn.new
    role_in.name = name
    role_in.access = acls
    api_instance.create_roles(role_in).tap do |role|
      @roles[name] = role.uuid
    end
  end
end
delete(role) click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 41
def delete(role)
  @roles.delete(role.name)
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    api_instance.delete_role(role.uuid)
  end
end
find(name) click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 13
def find(name)
  uuid = @roles[name]
  get(uuid) if uuid
end
update(role) click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 35
def update(role)
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    api_instance.update_role(role.uuid, role)
  end
end
with_each_role() { |get(uuid)| ... } click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 18
def with_each_role
  @roles.each_value do |uuid|
    yield get(uuid)
  end
end

Private Instance Methods

get(uuid) click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 68
def get(uuid)
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    api_instance.get_role(uuid)
  end
end
load(prefix, scope) click to toggle source
# File lib/insights/api/common/rbac/roles.rb, line 59
def load(prefix, scope)
  opts = { :scope => scope, :name => prefix, :limit => 500 }
  Service.call(RBACApiClient::RoleApi) do |api_instance|
    Service.paginate(api_instance, :list_roles, opts).each do |role|
      @roles[role.name] = role.uuid
    end
  end
end