mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
41 lines
1.1 KiB
Ruby
41 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 = connection.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 = connection.get_template(uri)
|
||
|
new(data.body)
|
||
|
end
|
||
|
rescue Fog::Errors::NotFound
|
||
|
nil
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|