Class: MMS::Agent

Inherits:
Object
  • Object
show all
Defined in:
lib/mms/agent.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Agent

Returns a new instance of Agent.

Parameters:



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

def initialize(client)
  @client = client
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



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

def client
  @client
end

Instance Method Details

#alert_ack(alert_id, timestamp, group_id) ⇒ TrueClass, FalseClass

Parameters:

  • alert_id (String)
  • timestamp (String, Integer)
  • group_id (String)

Returns:

  • (TrueClass, FalseClass)


93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/mms/agent.rb', line 93

def alert_ack(alert_id, timestamp, group_id)
  timestamp = DateTime.now if timestamp == 'now'
  timestamp = DateTime.new(4000, 1, 1, 1, 1, 1, 1, 1) if timestamp == 'forever'

  group = find_group(group_id)

  if alert_id == 'all'
    group.alerts.each do |alert|
      alert.ack(timestamp, 'Triggered by CLI for all alerts.')
    end
  else
    group.alert(alert_id).ack(timestamp, 'Triggered by CLI.')
  end
end

#alertsArray<MMS::Resource::Alert>

Returns:



58
59
60
61
62
63
64
# File 'lib/mms/agent.rb', line 58

def alerts
  alert_list = []
  groups.each do |group|
    alert_list.concat group.alerts
  end
  alert_list.sort_by { |alert| alert.created }.reverse
end

#clustersArray<MMS::Resource::Cluster>

Returns:



40
41
42
43
44
45
46
# File 'lib/mms/agent.rb', line 40

def clusters
  cluster_list = []
  groups.each do |group|
    cluster_list.concat group.clusters
  end
  cluster_list
end

#find_group(id) ⇒ MMS::Resource::Group

Parameters:

  • id (String)

Returns:



110
111
112
# File 'lib/mms/agent.rb', line 110

def find_group(id)
  MMS::Resource::Group.find(@client, id)
end

#groupsArray<MMS::Resource::Group>

Returns:



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

def groups
  group_list = []
  client.get('/groups').each do |group|
    g = MMS::Resource::Group.new
    g.set_client(client)
    g.set_data(group)

    group_list.push g
  end
  group_list
end

#hostsArray<MMS::Resource::Host>

Returns:



31
32
33
34
35
36
37
# File 'lib/mms/agent.rb', line 31

def hosts
  host_list = []
  groups.each do |group|
    host_list.concat group.hosts
  end
  host_list
end

#restorejob_create(type_value, group_id, cluster_id) ⇒ Array<MMS::Resource::RestoreJob>

Parameters:

  • type_value (String)
  • group_id (String)
  • cluster_id (String)

Returns:



79
80
81
82
83
84
85
86
87
# File 'lib/mms/agent.rb', line 79

def restorejob_create(type_value, group_id, cluster_id)
  if type_value.length == 24
    find_group(group_id).cluster(cluster_id).snapshot(type_value).create_restorejob
  elsif datetime = (type_value == 'now' ? DateTime.now : DateTime.parse(type_value))
    raise('Invalid datetime. Correct `YYYY-MM-RRTH:m:s`') if datetime.nil?
    datetime_string = [[datetime.year, datetime.day, datetime.month].join('-'), 'T', [datetime.hour, datetime.minute, datetime.second].join(':'), 'Z'].join
    find_group(group_id).cluster(cluster_id).create_restorejob(datetime_string)
  end
end

#restorejobsArray<MMS::Resource::RestoreJob>

Returns:



67
68
69
70
71
72
73
# File 'lib/mms/agent.rb', line 67

def restorejobs
  restorejob_list = []
  clusters.each do |cluster|
    restorejob_list.concat cluster.restorejobs
  end
  restorejob_list.sort_by { |job| job.created }.reverse
end

#set_apiurl(apiurl) ⇒ Object

Parameters:

  • apiurl (String)


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

def set_apiurl(apiurl)
  @client.url = apiurl
end

#snapshotsArray<MMS::Resource::Snapshot>

Returns:



49
50
51
52
53
54
55
# File 'lib/mms/agent.rb', line 49

def snapshots
  snapshot_list = []
  clusters.each do |cluster|
    snapshot_list.concat cluster.snapshots
  end
  snapshot_list.sort_by { |snapshot| snapshot.created_date }.reverse
end