Revision 79c4c238
Added by Sam Kottler almost 11 years ago
app/models/compute_resources/foreman/model/rackspace.rb | ||
---|---|---|
class Rackspace < ComputeResource
|
||
|
||
validates_presence_of :user, :password, :region
|
||
validate :ensure_valid_region
|
||
|
||
def provided_attributes
|
||
super.merge({ :ip => :public_ip_address })
|
||
... | ... | |
['ORD', 'DFW', 'LON']
|
||
end
|
||
|
||
def endpoint
|
||
case region
|
||
when 'DFW'
|
||
'https://dfw.servers.api.rackspacecloud.com/v2'
|
||
when 'LON'
|
||
'https://lon.servers.api.rackspacecloud.com/v2'
|
||
else
|
||
'https://ord.servers.api.rackspacecloud.com/v2'
|
||
end
|
||
end
|
||
|
||
def zones
|
||
["rackspace"]
|
||
end
|
||
... | ... | |
"Rackspace"
|
||
end
|
||
|
||
def ensure_valid_region
|
||
unless regions.include?(region.upcase)
|
||
errors.add(:region, 'is not valid')
|
||
end
|
||
end
|
||
|
||
private
|
||
|
||
def client
|
||
... | ... | |
:rackspace_api_key => password,
|
||
:rackspace_username => user,
|
||
:rackspace_auth_url => url,
|
||
:rackspace_compute_url => endpoint
|
||
:rackspace_region => region.downcase.to_sym
|
||
)
|
||
return @client
|
||
end
|
Also available in: Unified diff
Fixes #2833: remove direct endpoints from Rackspace compute resource