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/ecloud/models/compute/organization.rb
2012-06-07 12:50:11 -04:00

79 lines
3.1 KiB
Ruby

module Fog
module Compute
class Ecloud
class Organization < Fog::Ecloud::Model
identity :href
ignore_attributes :xmlns, :xmlns_xsi, :xmlns_xsd, :xmlns_i
attribute :name, :aliases => :Name
attribute :type, :aliases => :Type
attribute :other_links, :aliases => :Links
def locations
@locations ||= Fog::Compute::Ecloud::Locations.new( :connection => connection, :href => href )
end
def environments
@environments ||= Fog::Compute::Ecloud::Environments.new(:connection => connection, :href => href)
end
def tags
@tags ||= Fog::Compute::Ecloud::Tags.new(:connection => connection, :href => "/cloudapi/ecloud/deviceTags/organizations/#{id}")
end
def admin
@admin ||= Fog::Compute::Ecloud::AdminOrganizations.new(:connection => connection, :href => "/cloudapi/ecloud/admin/organizations/#{id}").first
end
def users
@users ||= Fog::Compute::Ecloud::Users.new(:connection => connection, :href => "/cloudapi/ecloud/admin/users/organizations/#{id}")
end
def support_tickets(type = :open)
case type
when :open
@support_tickets ||= Fog::Compute::Ecloud::SupportTickets.new(:connection => connection, :href => "/cloudapi/ecloud/admin/tickets/organizations/#{id}/active")
when :closed
@support_tickets ||= Fog::Compute::Ecloud::SupportTickets.new(:connection => connection, :href => "/cloudapi/ecloud/admin/tickets/organizations/#{id}/closed")
end
end
def edit_authentication_levels(options = {})
options[:uri] = "/cloudapi/ecloud/admin/organizations/#{id}/authenticationLevels"
data = connection.admin_edit_authentication_levels(options).body
level = Fog::Compute::Ecloud::AdminOrganizations.new(:connection => connection, :href => data[:href])[0]
end
def edit_password_complexity_rules(options = {})
options[:uri] = "/cloudapi/ecloud/admin/organizations/#{id}/passwordComplexityRules"
data = connection.admin_edit_password_complexity_rules(options).body
level = Fog::Compute::Ecloud::PasswordComplexityRules.new(:connection => connection, :href => data[:href])[0]
end
def edit_login_banner(options = {})
options[:uri] = "/cloudapi/ecloud/admin/organizations/#{id}/loginBanner"
data = connection.admin_edit_login_banner(options).body
banner = Fog::Compute::Ecloud::LoginBanners.new(:connection => connection, :href => data[:href])[0]
end
def enable_support_access(options = {})
options[:uri] = "/cloudapi/ecloud/admin/organizations/#{id}/action/enableSupportAccess"
connection.admin_enable_support_access(options[:uri])
end
def disable_support_access(options = {})
options[:uri] = "/cloudapi/ecloud/admin/organizations/#{id}/action/disableSupportAccess"
connection.admin_disable_support_access(options[:uri])
end
def id
href.scan(/\d+/)[0]
end
alias :vdcs :environments
end
end
end
end