Class: Rubix::HostGroup

Inherits:
Model
  • Object
show all
Includes:
Associations::HasManyHosts
Defined in:
lib/rubix/models/host_group.rb

Instance Attribute Summary collapse

Attributes inherited from Model

#id, #properties

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Associations::HasManyHosts

#host_ids, #host_ids=, #hosts, #hosts=

Methods inherited from Model

#after_update, #create, #destroy, find, find_or_create, log_name, model_name, #new_record?, #request, request, #save, #update, #validate

Methods included from Logs

#debug, #error, #fatal, #info, #warn

Constructor Details

#initialize(properties = {}) ⇒ HostGroup

Properties & Finding ==



9
10
11
12
13
14
15
# File 'lib/rubix/models/host_group.rb', line 9

def initialize properties={}
  super(properties)
  @name     = properties[:name]
  
  self.host_ids = properties[:host_ids]
  self.hosts    = properties[:hosts]
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



17
18
19
# File 'lib/rubix/models/host_group.rb', line 17

def name
  @name
end

Class Method Details

.build(host_group) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/rubix/models/host_group.rb', line 23

def self.build host_group
  new({
        :id       => host_group['groupid'].to_i,
        :name     => host_group['name'],
        :host_ids => host_group['hosts'].map { |host_info| host_info['hostid'].to_i }
      })
end

.find_request(options = {}) ⇒ Object



19
20
21
# File 'lib/rubix/models/host_group.rb', line 19

def self.find_request options={}
  request('hostgroup.get', 'filter' => {'groupid' => options[:id], 'name' => options[:name]}, 'select_hosts' => 'refer', 'output' => 'extend')
end

.id_fieldObject



35
36
37
# File 'lib/rubix/models/host_group.rb', line 35

def self.id_field
  'groupid'
end

Instance Method Details

#create_requestObject

CRUD ==



50
51
52
# File 'lib/rubix/models/host_group.rb', line 50

def create_request
  request('hostgroup.create', [{'name' => name}])
end

#destroy_requestObject



58
59
60
# File 'lib/rubix/models/host_group.rb', line 58

def destroy_request
  request('hostgroup.delete', [{'groupid' => id}])
end

#log_nameObject



31
32
33
# File 'lib/rubix/models/host_group.rb', line 31

def log_name
  "GROUP #{name || id}"
end

#update_requestObject



54
55
56
# File 'lib/rubix/models/host_group.rb', line 54

def update_request
  request('hostgroup.update', [{'groupid' => id, 'name' => name}])
end