Class: MMS::Agent
- Inherits:
-
Object
- Object
- MMS::Agent
- Defined in:
- lib/mms/agent.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
Returns the value of attribute client.
Instance Method Summary collapse
- #alert_ack(alert_id, timestamp, group_id) ⇒ TrueClass, FalseClass
- #alerts ⇒ Array<MMS::Resource::Alert>
- #apiurl(apiurl) ⇒ Object
- #cluster_update(groupid, clusterid, name) ⇒ <MMS::Resource::Cluster>
- #clusters ⇒ Array<MMS::Resource::Cluster>
- #find_group(id) ⇒ MMS::Resource::Group
- #groups ⇒ Array<MMS::Resource::Group>
- #host_create(groupid, hostname, port, options = {}) ⇒ <MMS::Resource::Host>
- #host_delete(groupid, hostid) ⇒ TrueClass, FalseClass
- #host_update(groupid, hostid, options = {}) ⇒ <MMS::Resource::Host>
- #hosts ⇒ Array<MMS::Resource::Host>
-
#initialize(client) ⇒ Agent
constructor
A new instance of Agent.
- #restorejob_create(type_value, group_id, cluster_id) ⇒ Array<MMS::Resource::RestoreJob>
- #restorejobs ⇒ Array<MMS::Resource::RestoreJob>
- #snapshots ⇒ Array<MMS::Resource::Snapshot>
Constructor Details
#initialize(client) ⇒ Agent
Returns a new instance of Agent.
6 7 8 |
# File 'lib/mms/agent.rb', line 6 def initialize(client) @client = client end |
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
3 4 5 |
# File 'lib/mms/agent.rb', line 3 def client @client end |
Instance Method Details
#alert_ack(alert_id, timestamp, group_id) ⇒ TrueClass, FalseClass
169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/mms/agent.rb', line 169 def alert_ack(alert_id, , group_id) = DateTime.now if == 'now' = DateTime.new(4000, 1, 1, 1, 1, 1, 1, 1) if == 'forever' group = find_group(group_id) if alert_id == 'all' group.alerts.each do |alert| alert.ack(, 'Triggered by CLI for all alerts.') end else group.alert(alert_id).ack(, 'Triggered by CLI.') end end |
#alerts ⇒ Array<MMS::Resource::Alert>
133 134 135 136 137 138 139 |
# File 'lib/mms/agent.rb', line 133 def alerts alert_list = [] groups.each do |group| alert_list.concat group.alerts end alert_list.sort_by(&:created).reverse end |
#apiurl(apiurl) ⇒ Object
11 12 13 |
# File 'lib/mms/agent.rb', line 11 def apiurl(apiurl) @client.url = apiurl end |
#cluster_update(groupid, clusterid, name) ⇒ <MMS::Resource::Cluster>
115 116 117 118 119 120 121 |
# File 'lib/mms/agent.rb', line 115 def cluster_update(groupid, clusterid, name) data = { clusterName: name } ret_cluster = client.patch("/groups/#{groupid}/clusters/#{clusterid}", data) cluster = MMS::Resource::Cluster.new cluster._from_hash(ret_cluster) cluster end |
#clusters ⇒ Array<MMS::Resource::Cluster>
103 104 105 106 107 108 109 |
# File 'lib/mms/agent.rb', line 103 def clusters cluster_list = [] groups.each do |group| cluster_list.concat group.clusters end cluster_list end |
#find_group(id) ⇒ MMS::Resource::Group
186 187 188 |
# File 'lib/mms/agent.rb', line 186 def find_group(id) MMS::Resource::Group.find(@client, id) end |
#groups ⇒ Array<MMS::Resource::Group>
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/mms/agent.rb', line 16 def groups group_list = [] client.get('/groups').each do |group| g = MMS::Resource::Group.new g.client(client) g.data(group) group_list.push g end group_list end |
#host_create(groupid, hostname, port, options = {}) ⇒ <MMS::Resource::Host>
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/mms/agent.rb', line 49 def host_create(groupid, hostname, port, = {}) data = {} data[:hostname] = hostname data[:port] = port data[:username] = [:username] || nil data[:password] = [:password] || nil data[:sslEnabled] = [:sslEnabled] || false data[:logsEnabled] = [:logsEnabled] || false data[:alertsEnabled] = [:alertsEnabled] || true data[:profilerEnabled] = [:profilerEnabled] || false data[:muninPort] = [:muninPort] || 0 data[:authMechanismName] = [:authMechanismName] || nil ret_host = client.post("/groups/#{groupid}/hosts", data) host = MMS::Resource::Host.new host._from_hash(ret_host) host end |
#host_delete(groupid, hostid) ⇒ TrueClass, FalseClass
97 98 99 100 |
# File 'lib/mms/agent.rb', line 97 def host_delete(groupid, hostid) host = client.delete("/groups/#{groupid}/hosts/#{hostid}") host == {} ? true : false end |
#host_update(groupid, hostid, options = {}) ⇒ <MMS::Resource::Host>
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/mms/agent.rb', line 78 def host_update(groupid, hostid, = {}) data = {} data[:username] = [:username] if .include?(:username) data[:password] = [:password] if .include?(:password) data[:sslEnabled] = [:sslEnabled] if .include?(:sslEnabled) data[:logsEnabled] = [:logsEnabled] if .include?(:logsEnabled) data[:alertsEnabled] = [:alertsEnabled] if .include?(:alertsEnabled) data[:profilerEnabled] = [:profilerEnabled] if .include?(:profilerEnabled) data[:muninPort] = [:muninPort] if .include?(:muninPort) data[:authMechanismName] = [:authMechanismName] if .include?(:authMechanismName) ret_host = client.patch("/groups/#{groupid}/hosts/#{hostid}", data) host = MMS::Resource::Host.new host._from_hash(ret_host) host end |
#hosts ⇒ Array<MMS::Resource::Host>
29 30 31 32 33 34 35 |
# File 'lib/mms/agent.rb', line 29 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>
154 155 156 157 158 159 160 161 162 163 |
# File 'lib/mms/agent.rb', line 154 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 else datetime = (type_value == 'now' ? DateTime.now : DateTime.parse(type_value)) raise('Invalid datetime. Correct `YYYY-MM-RRTH:m:sZ`') if datetime.nil? datetime_string = [[datetime.year, datetime.month, datetime.day].join('-'), 'T', [datetime.hour, datetime.minute, datetime.second].join(':'), 'Z'].join find_group(group_id).cluster(cluster_id).create_restorejob(datetime_string) end end |
#restorejobs ⇒ Array<MMS::Resource::RestoreJob>
142 143 144 145 146 147 148 |
# File 'lib/mms/agent.rb', line 142 def restorejobs restorejob_list = [] clusters.each do |cluster| restorejob_list.concat cluster.restorejobs end restorejob_list.sort_by(&:created).reverse end |
#snapshots ⇒ Array<MMS::Resource::Snapshot>
124 125 126 127 128 129 130 |
# File 'lib/mms/agent.rb', line 124 def snapshots snapshot_list = [] clusters.each do |cluster| snapshot_list.concat cluster.snapshots end snapshot_list.sort_by(&:created_date).reverse end |