ironfan 4.7.1 → 4.7.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # v4.7.2
2
+ * elastic_ip: ensuring that elastic IPs work with VPC instances (thanks @schade)
3
+
1
4
  # v4.7.1
2
5
  * Cleaning up omnibus usage to link embedded bin, ruby into default $PATHs, rather than use /etc/environment to try tweaking (doesn't hit a large number of programs)
3
6
  * Launched machines should announce their state as "started"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.7.1
1
+ 4.7.2
data/ironfan.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ironfan"
8
- s.version = "4.7.1"
8
+ s.version = "4.7.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Infochimps"]
12
- s.date = "2012-12-20"
12
+ s.date = "2013-01-10"
13
13
  s.description = "Ironfan allows you to orchestrate not just systems but clusters of machines. It includes a powerful layer on top of knife and a collection of cloud cookbooks."
14
14
  s.email = "coders@infochimps.com"
15
15
  s.extra_rdoc_files = [
@@ -50,12 +50,17 @@ module Ironfan
50
50
  #
51
51
 
52
52
  def self.save!(computer)
53
- return unless (computer.created? and not computer.server.ec2.elastic_ip.nil?)
54
- elastic_ip = computer.server.ec2.elastic_ip
53
+ return unless computer.created?
54
+ return unless elastic_ip = computer.server.ec2.elastic_ip
55
+ return unless recall? elastic_ip
55
56
  Ironfan.step(computer.name, "associating Elastic IP #{elastic_ip}", :blue)
56
57
  Ironfan.unless_dry_run do
57
58
  Ironfan.safely do
58
- Ec2.connection.associate_address( computer.machine.id, elastic_ip )
59
+ vpc = computer.server.ec2.vpc
60
+ allocation_id = recall(elastic_ip).allocation_id
61
+ raise "#{elastic_ip} is only for non-VPC instances" if vpc and allocation_id.nil?
62
+ raise "#{elastic_ip} is only for VPC instances" if vpc.nil? and allocation_id
63
+ Ec2.connection.associate_address( computer.machine.id, elastic_ip, nil, allocation_id )
59
64
  end
60
65
  end
61
66
  end
@@ -240,8 +240,7 @@ module Ironfan
240
240
 
241
241
  # VPC security_groups can only be addressed by id (not name)
242
242
  description[:security_group_ids] = cloud.security_groups.keys.map do |g|
243
- group_name = cloud.vpc.nil? ? g.to_s : "#{cloud.vpc}:#{g}"
244
- SecurityGroup.recall(group_name).group_id
243
+ SecurityGroup.recall( SecurityGroup.group_name_with_vpc(g,cloud.vpc) ).group_id
245
244
  end
246
245
 
247
246
  description[:iam_server_certificates] = cloud.iam_server_certificates.values.map do |cert|
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ironfan
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 4.7.1
5
+ version: 4.7.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Infochimps
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-12-20 00:00:00 Z
13
+ date: 2013-01-10 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: chef
@@ -282,7 +282,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
282
282
  requirements:
283
283
  - - ">="
284
284
  - !ruby/object:Gem::Version
285
- hash: 580195916744630251
285
+ hash: -3116104857531814331
286
286
  segments:
287
287
  - 0
288
288
  version: "0"