lib/fog/compute/ecloud/models/roles.rb
require File.expand_path("../role", __FILE__)
module Fog
module Compute
class Ecloud
class Roles < Fog::Ecloud::Collection
identity :href
model Fog::Compute::Ecloud::Role
def all
data = service.get_roles(href).body
if data[:OrganizationRole]
load(data[:OrganizationRole])
else
r_data = []
data[:EnvironmentRoles][:EnvironmentRole].each do |d|
d[:Environment][:EnvironmentName] = d[:Environment][:name]
d[:Environment] = d[:Environment].merge(d[:Role]) if d[:Role]
r_data << d[:Environment]
end
load(r_data)
end
end
def get(uri)
if data = service.get_role(uri)
new(data.body)
end
rescue ServiceError => e
raise e unless e.status_code == 404
nil
end
end
end
end
end