2013-11-27 07:01:59 -05:00
|
|
|
require 'fog/core/collection'
|
|
|
|
require 'fog/google/models/compute/operation'
|
|
|
|
|
|
|
|
module Fog
|
|
|
|
module Compute
|
|
|
|
class Google
|
|
|
|
class Operations < Fog::Collection
|
|
|
|
model Fog::Compute::Google::Operation
|
|
|
|
|
2014-04-09 16:29:49 -04:00
|
|
|
def all(filters = {})
|
|
|
|
if filters['zone']
|
|
|
|
data = service.list_zone_operations(filters['zone']).body
|
|
|
|
elsif filters['region']
|
|
|
|
data = service.list_region_operations(filters['region']).body
|
|
|
|
else
|
|
|
|
data = service.list_global_operations.body
|
|
|
|
end
|
|
|
|
load(data['items'] || [])
|
|
|
|
end
|
|
|
|
|
2014-03-17 03:55:33 -04:00
|
|
|
def get(identity, zone=nil, region=nil)
|
|
|
|
if not zone.nil?
|
2013-11-27 07:01:59 -05:00
|
|
|
response = service.get_zone_operation(zone, identity)
|
2014-03-17 03:55:33 -04:00
|
|
|
elsif not region.nil?
|
|
|
|
response = service.get_region_operation(region, identity)
|
|
|
|
else
|
|
|
|
response = service.get_global_operation(identity)
|
2013-11-27 07:01:59 -05:00
|
|
|
end
|
|
|
|
return nil if response.nil?
|
|
|
|
new(response.body)
|
2014-04-09 16:29:49 -04:00
|
|
|
rescue Fog::Errors::NotFound
|
|
|
|
nil
|
2013-11-27 07:01:59 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|