1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/rackspace/models/monitoring/entities.rb
Daniel Reichert 166803de25 Added rackspace monitoring with correct namespace
These files were merged from github.com/racker/rackspace-monitoring-rb. The
namespace was different than the convetion in fog so the namespace was modified
to be compliant with the rest of the fog library.
2013-07-03 14:04:58 -07:00

48 lines
1.2 KiB
Ruby

require 'fog/core/collection'
require 'fog/rackspace/models/monitoring/entity'
require 'fog/rackspace/models/monitoring/check'
module Fog
module Rackspace
class Monitoring
class Entities < Fog::Collection
model Fog::Rackspace::Monitoring::Entity
def all
data = service.list_entities.body['values']
load(data)
end
def get(entity_id)
data = service.get_entity(entity_id).body
new(data)
rescue Fog::Rackspace::Monitoring::NotFound
nil
end
def overview
entities = []
opts = {}
begin
new_entities = service.list_overview(opts)
entities.concat(new_entities.body['values'])
opts = {:marker => new_entities.body['metadata']['next_marker']}
end while(!opts[:marker].nil?)
loadAll(entities)
end
def loadAll(objects)
clear
for object in objects
en = new(object['entity'])
self << en
en.checks.load(object['checks'])
en.alarms.load(object['alarms'])
end
self
end
end
end
end
end