ironfan 4.8.1 → 4.8.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.8.2
2
+ * Launch EBS-optimized boxen on EC2
3
+
1
4
  # v4.8.1
2
5
  * ec2::machine: increasing wait interval, to reduce potential for intermittent errors to bomb run
3
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.8.1
1
+ 4.8.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.8.1"
8
+ s.version = "4.8.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 = "2013-02-15"
12
+ s.date = "2013-02-21"
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 = [
@@ -15,6 +15,7 @@ module Ironfan
15
15
  magic :chef_client_script, String
16
16
  magic :default_availability_zone, String, :default => ->{ availability_zones.first }
17
17
  collection :elastic_load_balancers, Ironfan::Dsl::Ec2::ElasticLoadBalancer, :key_method => :name
18
+ magic :ebs_optimized, :boolean, :default => false
18
19
  magic :flavor, String, :default => 't1.micro'
19
20
  collection :iam_server_certificates, Ironfan::Dsl::Ec2::IamServerCertificate, :key_method => :name
20
21
  magic :image_id, String
@@ -290,12 +291,12 @@ Chef::Config[:ec2_flavor_info].merge!({
290
291
  'm1.medium' => { :price => 0.165, :bits => 64, :ram => 3840, :cores => 2, :core_size => 1, :inst_disks => 1, :inst_disk_size => 410, :ephemeral_volumes => 1 },
291
292
  'c1.medium' => { :price => 0.17, :bits => 64, :ram => 1740, :cores => 2, :core_size => 2.5, :inst_disks => 1, :inst_disk_size => 350, :ephemeral_volumes => 1 },
292
293
  #
293
- 'm1.large' => { :price => 0.32, :bits => 64, :ram => 7680, :cores => 2, :core_size => 2, :inst_disks => 2, :inst_disk_size => 850, :ephemeral_volumes => 2 },
294
+ 'm1.large' => { :price => 0.32, :bits => 64, :ram => 7680, :cores => 2, :core_size => 2, :inst_disks => 2, :inst_disk_size => 850, :ephemeral_volumes => 2, :ebs_optimizable => 500, },
294
295
  'm2.xlarge' => { :price => 0.45, :bits => 64, :ram => 18124, :cores => 2, :core_size => 3.25, :inst_disks => 1, :inst_disk_size => 420, :ephemeral_volumes => 1 },
295
296
  'c1.xlarge' => { :price => 0.64, :bits => 64, :ram => 7168, :cores => 8, :core_size => 2.5, :inst_disks => 4, :inst_disk_size => 1690, :ephemeral_volumes => 4 },
296
- 'm1.xlarge' => { :price => 0.66, :bits => 64, :ram => 15360, :cores => 4, :core_size => 2, :inst_disks => 4, :inst_disk_size => 1690, :ephemeral_volumes => 4 },
297
+ 'm1.xlarge' => { :price => 0.66, :bits => 64, :ram => 15360, :cores => 4, :core_size => 2, :inst_disks => 4, :inst_disk_size => 1690, :ephemeral_volumes => 4, :ebs_optimizable => 1000, },
297
298
  'm2.2xlarge' => { :price => 0.90, :bits => 64, :ram => 35020, :cores => 4, :core_size => 3.25, :inst_disks => 2, :inst_disk_size => 850, :ephemeral_volumes => 2 },
298
- 'm2.4xlarge' => { :price => 1.80, :bits => 64, :ram => 70041, :cores => 8, :core_size => 3.25, :inst_disks => 4, :inst_disk_size => 1690, :ephemeral_volumes => 4 },
299
+ 'm2.4xlarge' => { :price => 1.80, :bits => 64, :ram => 70041, :cores => 8, :core_size => 3.25, :inst_disks => 4, :inst_disk_size => 1690, :ephemeral_volumes => 4, :ebs_optimizable => 1000, },
299
300
  'cc1.4xlarge' => { :price => 1.30, :bits => 64, :ram => 23552, :cores => 8, :core_size => 4.19, :inst_disks => 4, :inst_disk_size => 1690, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm' },
300
301
  'cc1.8xlarge' => { :price => 2.40, :bits => 64, :ram => 61952, :cores =>16, :core_size => 5.50, :inst_disks => 8, :inst_disk_size => 3370, :ephemeral_volumes => 4, :placement_groupable => true, :virtualization => 'hvm' },
301
302
  'cg1.4xlarge' => { :price => 2.10, :bits => 64, :ram => 22528, :cores => 8, :core_size => 4.19, :inst_disks => 4, :inst_disk_size => 1690, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm' },
@@ -8,7 +8,8 @@ module Ironfan
8
8
  :availability_zone=, :block_device_mapping, :block_device_mapping=,
9
9
  :client_token, :client_token=, :collection, :collection=,
10
10
  :connection, :connection=, :console_output, :created_at,
11
- :created_at=, :destroy, :dns_name, :dns_name=, :flavor, :flavor=,
11
+ :created_at=, :destroy, :dns_name, :dns_name=,
12
+ :ebs_optimized, :flavor, :flavor=,
12
13
  :flavor_id, :flavor_id=, :groups, :groups=, :iam_instance_profile,
13
14
  :iam_instance_profile=, :iam_instance_profile_arn=,
14
15
  :iam_instance_profile_name=, :id, :id=, :identity, :identity=,
@@ -72,7 +73,7 @@ module Ironfan
72
73
  # style == :minimal
73
74
  values["State"] = state.to_sym
74
75
  values["MachineID"] = id
75
- values["Public IP"] = public_ip_address
76
+ values["Public IP"] = public_ip_address
76
77
  values["Private IP"] = private_ip_address
77
78
  values["Created On"] = created_at.to_date
78
79
  return values if style == :minimal
@@ -162,14 +163,14 @@ module Ironfan
162
163
  remember machine, :id => computer.name
163
164
 
164
165
  # AWS sometimes takes too long to respond for this block's liking.
165
- # Expand its wait interval, so that it doesn't just bomb out
166
+ # Expand its wait interval, so that it doesn't just bomb out
166
167
  # after three quick failures in succession.
167
168
  # For more info, see:
168
169
  # - http://rubydoc.info/gems/fog/1.9.0/Fog/Model#wait_for-instance_method
169
170
  # - https://github.com/fog/fog/blob/master/lib/fog/core/wait_for.rb
170
171
  fog_server.wait_for(Fog.timeout, 5) { ready? }
171
172
  end
172
-
173
+
173
174
  # tag the computer correctly
174
175
  tags = {
175
176
  'cluster' => computer.server.cluster_name,
@@ -230,8 +231,9 @@ module Ironfan
230
231
  :client_key => computer.private_key
231
232
  }
232
233
 
233
- # Fog does not actually create tags when it creates a server;
234
- # they and permanence are applied during sync
234
+ # main machine info
235
+ # note that Fog does not actually create tags when it creates a
236
+ # server; they and permanence are applied during sync
235
237
  description = {
236
238
  :image_id => cloud.image_id,
237
239
  :flavor_id => cloud.flavor,
@@ -241,7 +243,7 @@ module Ironfan
241
243
  :user_data => JSON.pretty_generate(user_data_hsh),
242
244
  :block_device_mapping => block_device_mapping(computer),
243
245
  :availability_zone => cloud.default_availability_zone,
244
- :monitoring => cloud.monitoring
246
+ :monitoring => cloud.monitoring,
245
247
  }
246
248
 
247
249
  # VPC security_groups can only be addressed by id (not name)
@@ -261,6 +263,9 @@ module Ironfan
261
263
  ui.warn "1.3.1 and earlier versions of Fog don't correctly support placement groups, so your nodes will land willy-nilly. We're working on a fix"
262
264
  description[:placement] = { 'groupName' => cloud.placement_group.to_s }
263
265
  end
266
+ if cloud.flavor_info[:ebs_optimizable]
267
+ description[:ebs_optimized] = cloud.ebs_optimized
268
+ end
264
269
  description
265
270
  end
266
271
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ironfan
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 4.8.1
5
+ version: 4.8.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: 2013-02-15 00:00:00 Z
13
+ date: 2013-02-21 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: chef
@@ -284,7 +284,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
284
284
  requirements:
285
285
  - - ">="
286
286
  - !ruby/object:Gem::Version
287
- hash: -312595991163601203
287
+ hash: 1631771956177080084
288
288
  segments:
289
289
  - 0
290
290
  version: "0"