Skip to content

Commit

Permalink
workaround for non-recallable security groups. Not well tested, pleas…
Browse files Browse the repository at this point in the history
…e review
  • Loading branch information
Philip (flip) Kromer committed Jan 29, 2013
1 parent 5198478 commit 7fc01f3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
8 changes: 8 additions & 0 deletions lib/ironfan/dsl/ec2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,14 @@ def receive_provider(obj)
end
end

def security_group_ids
security_groups.keys.map do |gg|
security_group = Ironfan::Provider::Ec2::SecurityGroup.recall( Ironfan::Provider::Ec2::SecurityGroup.group_name_with_vpc(gg, vpc) )
if security_group.blank? then warn "Missing security group #{gg} -- this is a known issue on VPC instances, and deserves your attention." ; next ; end
security_group.group_id
end.compact
end

class SecurityGroup < Ironfan::Dsl
field :name, String
field :group_authorized, Array, :default => []
Expand Down
8 changes: 3 additions & 5 deletions lib/ironfan/provider/ec2/machine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def to_display(style,values={})
# style == :minimal
values["State"] = state.to_sym
values["MachineID"] = id
values["Public IP"] = public_ip_address
values["Public IP"] = public_ip_address
values["Private IP"] = private_ip_address
values["Created On"] = created_at.to_date
return values if style == :minimal
Expand Down Expand Up @@ -163,7 +163,7 @@ def self.create!(computer)

fog_server.wait_for { ready? }
end

# tag the computer correctly
tags = {
'cluster' => computer.server.cluster_name,
Expand Down Expand Up @@ -239,9 +239,7 @@ def self.launch_description(computer)
}

# VPC security_groups can only be addressed by id (not name)
description[:security_group_ids] = cloud.security_groups.keys.map do |g|
SecurityGroup.recall( SecurityGroup.group_name_with_vpc(g,cloud.vpc) ).group_id
end
description[:security_group_ids] = cloud.security_group_ids

description[:iam_server_certificates] = cloud.iam_server_certificates.values.map do |cert|
IamServerCertificate.recall(IamServerCertificate.full_name(computer, cert))
Expand Down

0 comments on commit 7fc01f3

Please sign in to comment.