Project

General

Profile

Download (899 Bytes) Statistics
| Branch: | Tag: | Revision:
module Foreman::Model
class EC2 < ComputeResource

validates_presence_of :user, :password

def self.model_name
ComputeResource.model_name
end

def vm_instance_defaults
{
:flavor_id => "m1.small",
}
end

def regions
return [] if user.blank? or password.blank?
@regions ||= client.describe_regions.body["regionInfo"].map{|r| r["regionName"]}
end

def test_connection
super
errors[:user].empty? and errors[:password] and regions
rescue Fog::Compute::AWS::Error => e
errors[:base] << e.message
end

def region= value
self.url = value
end

def region
@region ||= url.present? ? url : nil
end

private

def client
@client ||= ::Fog::Compute.new(:provider => "AWS", :aws_access_key_id => user, :aws_secret_access_key => password, :region => region)
end

end
end
(1-1/4)