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, cache_key, find, #from_hash, #invalidate_cache, #to_hash

Constructor Details

#initializeGroup

Returns a new instance of Group.



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

def initialize
  @clusters = []
  @backup_configs = []
end

Instance Attribute Details

#active_agent_countObject (readonly)

Returns the value of attribute active_agent_count.



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

def active_agent_count
  @active_agent_count
end

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

Parameters:

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

Returns:



56
57
58
# File 'lib/mms/resource/group.rb', line 56

def clusters
  @clusters
end

#last_active_agentObject (readonly)

Returns the value of attribute last_active_agent.



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

def last_active_agent
  @last_active_agent
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/mms/resource/group.rb', line 3

def name
  @name
end

#replicaset_countObject (readonly)

Returns the value of attribute replicaset_count.



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

def replicaset_count
  @replicaset_count
end

#shard_countObject (readonly)

Returns the value of attribute shard_count.



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

def shard_count
  @shard_count
end

Class Method Details

._find(client, id) ⇒ Object



125
126
127
# File 'lib/mms/resource/group.rb', line 125

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

.table_headerObject



121
122
123
# File 'lib/mms/resource/group.rb', line 121

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:



49
50
51
# File 'lib/mms/resource/group.rb', line 49

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

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

Parameters:

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

Returns:



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

def alerts(page = 1, limit = 100, 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.client(@client)
    a.data(alert)

    alert_list.push a
  end
  alert_list
end

#backup_configsObject



75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/mms/resource/group.rb', line 75

def backup_configs
  if @backup_configs.empty?
    @client.get('/groups/' + @id + '/backupConfigs').each do |backup_config|
      bc = MMS::Resource::BackupConfig.new
      bc.client(@client)
      bc.data(backup_config)

      @backup_configs.push bc
    end
  end
  @backup_configs
end

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

Parameters:

  • id (String)

Returns:



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

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

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

Parameters:

  • id (String)

Returns:



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/mms/resource/group.rb', line 90

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
  if snapshot.nil?
    hosts.each do |host|
      begin
        snapshot = host.snapshot(id)
        break unless snapshot.nil?
      rescue MMS::ApiError => _e
        # Snapshot is not available on this host. Skip it!
      end
    end
  end
  snapshot
end

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

Parameters:

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

Returns:



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

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

    host_list.push h
  end
  host_list
end

#table_rowObject



113
114
115
# File 'lib/mms/resource/group.rb', line 113

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

#table_sectionObject



117
118
119
# File 'lib/mms/resource/group.rb', line 117

def table_section
  [table_row]
end