Class: MMS::Resource::Group

Inherits:
MMS::Resource show all
Defined in:
lib/mms/resource/group.rb

Instance Attribute Summary collapse

Attributes inherited from MMS::Resource

#client, #data, #id

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from MMS::Resource

#_load, find, #from_hash, #invalidate_cache, #set_client, #set_data, #to_hash

Constructor Details

#initializeGroup

Returns a new instance of Group.



13
14
15
# File 'lib/mms/resource/group.rb', line 13

def initialize
  @clusters = []
end

Instance Attribute Details

#active_agent_countObject (readonly)

Returns the value of attribute active_agent_count.



6
7
8
# File 'lib/mms/resource/group.rb', line 6

def active_agent_count
  @active_agent_count
end

#clusters(page = 1, limit = 1000) ⇒ Array<MMS::Resource::Cluster>

Parameters:

  • page (Integer) (defaults to: 1)
  • limit (Integer) (defaults to: 1000)

Returns:



58
59
60
# File 'lib/mms/resource/group.rb', line 58

def clusters
  @clusters
end

#last_active_agentObject (readonly)

Returns the value of attribute last_active_agent.



9
10
11
# File 'lib/mms/resource/group.rb', line 9

def last_active_agent
  @last_active_agent
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/mms/resource/group.rb', line 5

def name
  @name
end

#replicaset_countObject (readonly)

Returns the value of attribute replicaset_count.



7
8
9
# File 'lib/mms/resource/group.rb', line 7

def replicaset_count
  @replicaset_count
end

#shard_countObject (readonly)

Returns the value of attribute shard_count.



8
9
10
# File 'lib/mms/resource/group.rb', line 8

def shard_count
  @shard_count
end

Class Method Details

._find(client, id) ⇒ Object



103
104
105
# File 'lib/mms/resource/group.rb', line 103

def self._find(client, id)
  client.get('/groups/' + id)
end

.table_headerObject



99
100
101
# File 'lib/mms/resource/group.rb', line 99

def self.table_header
  ['Name', 'Active Agents', 'Replicas count', 'Shards count', 'Last Active Agent', 'GroupId']
end

Instance Method Details

#alert(id) ⇒ MMS::Resource::Alert

Parameters:

  • id (String)

Returns:



51
52
53
# File 'lib/mms/resource/group.rb', line 51

def alert(id)
  MMS::Resource::Alert.find(@client, @id, id)
end

#alerts(page = 1, limit = 1000, status = 'OPEN') ⇒ Array<MMS::Resource::Alert>

Parameters:

  • page (Integer) (defaults to: 1)
  • limit (Integer) (defaults to: 1000)
  • status (String) (defaults to: 'OPEN')

Returns:



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/mms/resource/group.rb', line 36

def alerts(page = 1, limit = 1000, status = 'OPEN')
  alert_list = []
  @client.get('/groups/' + @id + '/alerts?status=' + status + '&pageNum=' + page.to_s + '&itemsPerPage=' + limit.to_s).each do |alert|
    a = MMS::Resource::Alert.new
    a.set_client(@client)
    a.set_group(self)
    a.set_data(data)

    alert_list.push a
  end
  alert_list
end

#cluster(id) ⇒ MMS::Resource::Cluster

Parameters:

  • id (String)

Returns:



72
73
74
# File 'lib/mms/resource/group.rb', line 72

def cluster(id)
  MMS::Resource::Cluster.find(@client, @id, id)
end

#find_snapshot(id) ⇒ MMS::Resource::Snapshot, NilClass

Parameters:

  • id (String)

Returns:



78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/mms/resource/group.rb', line 78

def find_snapshot(id)
  snapshot = nil
  clusters.each do |cluster|
    begin
      snapshot = cluster.snapshot(id)
      break unless snapshot.nil?
    rescue MMS::ApiError => e
      # Snapshot is not available on this cluster. Skip it!
    end
  end
  snapshot
end

#hosts(page = 1, limit = 1000) ⇒ Array<MMS::Resource::Host>

Parameters:

  • page (Integer) (defaults to: 1)
  • limit (Integer) (defaults to: 1000)

Returns:



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/mms/resource/group.rb', line 20

def hosts(page = 1, limit = 1000)
  host_list = []
  @client.get('/groups/' + @id + '/hosts?pageNum=' + page.to_s + '&itemsPerPage=' + limit.to_s).each do |host|
    h = MMS::Resource::Host.new
    h.set_client(@client)
    h.set_data(host)

    host_list.push h
  end
  host_list
end

#table_rowObject



91
92
93
# File 'lib/mms/resource/group.rb', line 91

def table_row
  [@name, @active_agent_count, @replicaset_count, @shard_count, @last_active_agent, @id]
end

#table_sectionObject



95
96
97
# File 'lib/mms/resource/group.rb', line 95

def table_section
  [table_row]
end