Class: OffTheGrid::AccessList

Inherits:
NamedResource show all
Defined in:
lib/off_the_grid/access_list.rb

Overview

A class to represent SGE Access Lists

Instance Attribute Summary

Attributes inherited from NamedResource

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from NamedResource

#initialize

Methods included from GridResource

#<=>, #delete, #extract_detail, #new?, #save, #validate_before_delete, #validate_before_save

Constructor Details

This class inherits a constructor from OffTheGrid::NamedResource

Class Method Details

.listObject

Get the list of SGE access lists



5
6
7
# File 'lib/off_the_grid/access_list.rb', line 5

def self.list
  `qconf -sul`.chomp.split("\n").sort.collect { |name| new(name) }
end

Instance Method Details

#add_user(user) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/off_the_grid/access_list.rb', line 22

def add_user(user)
  if new?
    @unsaved_users ||= []
    @unsaved_users << user
  else
    users.include?(user) ? true : system("qconf -au #{user.name} #{name}")
  end
end

#detailsObject



9
10
11
# File 'lib/off_the_grid/access_list.rb', line 9

def details
  `qconf -su #{name}`.chomp
end

#remove_user(user) ⇒ Object



31
32
33
# File 'lib/off_the_grid/access_list.rb', line 31

def remove_user(user)
  users.include?(user) ? system("qconf -du #{user.name} #{name}") : true
end

#usersObject



13
14
15
16
17
18
19
20
# File 'lib/off_the_grid/access_list.rb', line 13

def users
  if new?
    @unsaved_users ||= []
  else
    # Only returns users
    extract_detail(:entries).select { |e| !e.match(/^@/) }.collect { |user| User.new(user) }
  end
end