mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
40 lines
1.1 KiB
Ruby
40 lines
1.1 KiB
Ruby
require 'fog/ecloud/models/compute/template'
|
|
|
|
module Fog
|
|
module Compute
|
|
class Ecloud
|
|
class Templates < Fog::Ecloud::Collection
|
|
|
|
identity :href
|
|
|
|
model Fog::Compute::Ecloud::Template
|
|
|
|
def all
|
|
r_data = []
|
|
data = service.get_templates(href).body[:Families]
|
|
data[:Family].is_a?(Hash) ? data = [data[:Family]] : data = data[:Family]
|
|
data.each do |d|
|
|
d[:Categories][:Category].each do |cat|
|
|
cat[:OperatingSystems][:OperatingSystem].is_a?(Hash) ? cat = [cat[:OperatingSystems][:OperatingSystem]] : cat = cat[:OperatingSystems][:OperatingSystem]
|
|
cat.each do |os|
|
|
os[:Templates][:Template].is_a?(Hash) ? os = [os[:Templates][:Template]] : os = os[:Templates][:Template]
|
|
os.each do |template|
|
|
r_data << template
|
|
end
|
|
end
|
|
end
|
|
end
|
|
load(r_data)
|
|
end
|
|
|
|
def get(uri)
|
|
if data = service.get_template(uri)
|
|
new(data.body)
|
|
end
|
|
rescue Fog::Errors::NotFound
|
|
nil
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|