Class: Ironfan::Provider::Ec2
- Inherits:
-
IaasProvider
- Object
- Builder
- Ironfan::Provider
- IaasProvider
- Ironfan::Provider::Ec2
- Defined in:
- lib/ironfan/headers.rb,
lib/ironfan/provider/ec2.rb,
lib/ironfan/provider/ec2/keypair.rb,
lib/ironfan/provider/ec2/machine.rb,
lib/ironfan/provider/ec2/ebs_volume.rb,
lib/ironfan/provider/ec2/elastic_ip.rb,
lib/ironfan/provider/ec2/security_group.rb,
lib/ironfan/provider/ec2/placement_group.rb,
lib/ironfan/provider/ec2/elastic_load_balancer.rb,
lib/ironfan/provider/ec2/iam_server_certificate.rb
Defined Under Namespace
Classes: EbsVolume, ElasticIp, ElasticLoadBalancer, IamServerCertificate, Keypair, Machine, PlacementGroup, SecurityGroup
Class Method Summary collapse
- .applicable(computer) ⇒ Object
- .aws_account_id ⇒ Object
-
.connection ⇒ Object
Utility functions.
- .elb ⇒ Object
-
.ensure_tags(tags, fog) ⇒ Object
Ensure that a fog object (machine, volume, etc.) has the proper tags on it.
- .iam ⇒ Object
- .resources ⇒ Object
Methods inherited from IaasProvider
#ensure_prerequisites!, machine_class, #save!
Methods inherited from Ironfan::Provider
aggregate!, forget!, load, prepare!, receive, #resources, validate
Methods inherited from Builder
Class Method Details
.applicable(computer) ⇒ Object
47 48 49 |
# File 'lib/ironfan/provider/ec2.rb', line 47 def self.applicable(computer) computer.server and computer.server.clouds.include?(:ec2) end |
.aws_account_id ⇒ Object
28 29 30 |
# File 'lib/ironfan/provider/ec2.rb', line 28 def self.aws_account_id() Chef::Config[:knife][:aws_account_id] end |
.connection ⇒ Object
Utility functions
14 15 16 |
# File 'lib/ironfan/provider/ec2.rb', line 14 def self.connection @@connection ||= Fog::Compute.new(self.aws_credentials.merge({ :provider => 'AWS' })) end |
.elb ⇒ Object
18 19 20 |
# File 'lib/ironfan/provider/ec2.rb', line 18 def self.elb @@elb ||= Fog::AWS::ELB.new(self.aws_credentials) end |
.ensure_tags(tags, fog) ⇒ Object
Ensure that a fog object (machine, volume, etc.) has the proper tags on it
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/ironfan/provider/ec2.rb', line 33 def self.(,fog) .delete_if {|k, v| fog.[k] == v.to_s rescue false } return if .empty? Ironfan.step(fog.name,"tagging with #{.inspect}", :green) .each do |k, v| Chef::Log.debug( "tagging #{fog.name} with #{k} = #{v}" ) Ironfan.safely do config = {:key => k, :value => v.to_s, :resource_id => fog.id } connection..create(config) end end end |
.iam ⇒ Object
22 23 24 25 26 |
# File 'lib/ironfan/provider/ec2.rb', line 22 def self.iam credentials = self.aws_credentials credentials.delete(:region) @@iam ||= Fog::AWS::IAM.new(credentials) end |
.resources ⇒ Object
7 8 9 |
# File 'lib/ironfan/provider/ec2.rb', line 7 def self.resources [ Machine, ElasticIp, EbsVolume, Keypair, SecurityGroup, IamServerCertificate, ElasticLoadBalancer ] end |