ironfan 4.7.1 → 4.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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"