ironfan 6.0.8 → 6.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -329,19 +329,19 @@ Chef::Config[:ec2_flavor_info].merge!({
329
329
  'm2.4xlarge' => { :price => 1.640, :bits => 64, :ram => 70042, :cores => 8, :core_size => 3.25, :inst_disks => 2, :inst_disk_size => 840, :ephemeral_volumes => 2, :ebs_optimizable => 1000, },
330
330
  'cc2.8xlarge' => { :price => 2.400, :bits => 64, :ram => 61952, :cores =>32, :core_size => 2.75, :inst_disks => 4, :inst_disk_size => 840, :ephemeral_volumes => 4, :placement_groupable => true, :virtualization => 'hvm' },
331
331
  'cg1.4xlarge' => { :price => 2.100, :bits => 64, :ram => 23040, :cores =>16, :core_size => 2.09375, :inst_disks => 2, :inst_disk_size => 840, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm' },
332
- 'c3.large' => { :price => 0.150, :bits => 64, :ram => 3840, :cores => 2, :core_size => 3.5, :inst_disks => 2, :inst_disk_size => 16, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_opizable => 1000 },
333
- 'c3.xlarge' => { :price => 0.300, :bits => 64, :ram => 7680, :cores => 4, :core_size => 3.5, :inst_disks => 2, :inst_disk_size => 40, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_opizable => 1000 },
334
- 'c3.2xlarge' => { :price => 0.600, :bits => 64, :ram => 15360, :cores => 8, :core_size => 3.5, :inst_disks => 2, :inst_disk_size => 80, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_opizable => 1000 },
335
- 'c3.4xlarge' => { :price => 1.200, :bits => 64, :ram => 30720, :cores => 16, :core_size => 3.4375, :inst_disks => 2, :inst_disk_size => 160, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_opizable => 1000 },
332
+ 'c3.large' => { :price => 0.150, :bits => 64, :ram => 3840, :cores => 2, :core_size => 3.5, :inst_disks => 2, :inst_disk_size => 16, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
333
+ 'c3.xlarge' => { :price => 0.300, :bits => 64, :ram => 7680, :cores => 4, :core_size => 3.5, :inst_disks => 2, :inst_disk_size => 40, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
334
+ 'c3.2xlarge' => { :price => 0.600, :bits => 64, :ram => 15360, :cores => 8, :core_size => 3.5, :inst_disks => 2, :inst_disk_size => 80, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
335
+ 'c3.4xlarge' => { :price => 1.200, :bits => 64, :ram => 30720, :cores => 16, :core_size => 3.4375, :inst_disks => 2, :inst_disk_size => 160, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
336
336
  'c3.8xlarge' => { :price => 2.400, :bits => 64, :ram => 61440, :cores => 32, :core_size => 3.375, :inst_disks => 2, :inst_disk_size => 320, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm' },
337
337
  'hs1.8xlarge' => { :price => 4.600, :bits => 64, :ram => 119808, :cores => 16, :core_size => 2.1875, :inst_disks => 24, :inst_disk_size => 2048, :ephemeral_volumes => 24, :placement_groupable => true, :virtualization => 'hvm' },
338
338
  'cr1.8xlarge' => { :price => 3.500, :bits => 64, :ram => 249856, :cores => 32, :core_size => 2.75, :inst_disks => 2, :inst_disk_size => 120, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm' },
339
- 'i2.xlarge' => { :price => 0.853, :bits => 64, :ram => 31232, :cores => 4, :core_size => 3.5, :inst_disks => 1, :inst_disk_size => 800, :ephemeral_volumes => 1, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimized => 500 },
340
- 'i2.2xlarge' => { :price => 1.705, :bits => 64, :ram => 62464, :cores => 8, :core_size => 3.375, :inst_disks => 2, :inst_disk_size => 800, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimized => 1000 },
341
- 'i2.4xlarge' => { :price => 3.410, :bits => 64, :ram => 124928, :cores => 16, :core_size => 3.3125, :inst_disks => 4, :inst_disk_size => 800, :ephemeral_volumes => 4, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimized => 1000 },
339
+ 'i2.xlarge' => { :price => 0.853, :bits => 64, :ram => 31232, :cores => 4, :core_size => 3.5, :inst_disks => 1, :inst_disk_size => 800, :ephemeral_volumes => 1, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 500 },
340
+ 'i2.2xlarge' => { :price => 1.705, :bits => 64, :ram => 62464, :cores => 8, :core_size => 3.375, :inst_disks => 2, :inst_disk_size => 800, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
341
+ 'i2.4xlarge' => { :price => 3.410, :bits => 64, :ram => 124928, :cores => 16, :core_size => 3.3125, :inst_disks => 4, :inst_disk_size => 800, :ephemeral_volumes => 4, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
342
342
  'i2.8xlarge' => { :price => 6.820, :bits => 64, :ram => 249856, :cores => 32, :core_size => 3.25, :inst_disks => 8, :inst_disk_size => 800, :ephemeral_volumes => 8, :placement_groupable => true, :virtualization => 'hvm' },
343
- 'g2.2xlarge' => { :price => 0.650, :bits => 64, :ram => 15360, :cores => 8, :core_size => 3.25, :inst_disks => 1, :inst_disk_size => 60, :ephemeral_volumes => 1, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimized => 1000 },
344
- 'hi1.4xlarge' => { :price => 3.100, :bits => 64, :ram => 61952, :cores => 16, :core_size => 2.1875, :inst_disks => 2, :inst_disk_size => 1024, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimized => 1000 },
343
+ 'g2.2xlarge' => { :price => 0.650, :bits => 64, :ram => 15360, :cores => 8, :core_size => 3.25, :inst_disks => 1, :inst_disk_size => 60, :ephemeral_volumes => 1, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
344
+ 'hi1.4xlarge' => { :price => 3.100, :bits => 64, :ram => 61952, :cores => 16, :core_size => 2.1875, :inst_disks => 2, :inst_disk_size => 1024, :ephemeral_volumes => 2, :placement_groupable => true, :virtualization => 'hvm', :ebs_optimizable => 1000 },
345
345
  })
346
346
 
347
347
  Chef::Config[:ec2_image_info] ||= {}
@@ -11,6 +11,13 @@ module Ironfan
11
11
  magic :formattable, :boolean, :default => false
12
12
  magic :fstype, String, :default => 'xfs'
13
13
  magic :in_raid, String
14
+
15
+ # The number of I/O operations per second (IOPS) that the volume supports.
16
+ # valid range: 500-4000
17
+ # Only Provisioned IOPS (SSD, type io1) drives support
18
+ # this. These volumes should be with EBS-optimized machines.
19
+ magic :iops, Integer
20
+
14
21
  magic :keep, :boolean, :default => true
15
22
  magic :mount_dump, String
16
23
  magic :mount_pass, String
@@ -24,6 +31,12 @@ module Ironfan
24
31
  magic :snapshot_name, String
25
32
  magic :tags, Hash, :default => {}
26
33
 
34
+ # valid types:
35
+ # gp2 = General Purpose 2
36
+ # io1 = Provisioned IOPS
37
+ # standard = Magnetic volumes
38
+ magic :type, String
39
+
27
40
  VOLUME_IDS ||= {}
28
41
  VOLUME_IDS.merge!({
29
42
  :blank_xfs => 'snap-d9c1edb1',
@@ -8,11 +8,11 @@ module Ironfan
8
8
  :connection, :connection=, :created_at, :created_at=,
9
9
  :delete_on_termination, :delete_on_termination=, :destroy, :device,
10
10
  :device=, :dup_attributes!, :force_detach, :id, :id=, :identity,
11
- :identity=, :merge_attributes, :missing_attributes, :new_record?,
11
+ :identity=, :iops, :merge_attributes, :missing_attributes, :new_record?,
12
12
  :ready?, :reload, :requires, :requires_one, :save, :server,
13
13
  :server=, :server_id, :server_id=, :size, :size=, :snapshot,
14
14
  :snapshot_id, :snapshot_id=, :snapshots, :state, :state=,
15
- :symbolize_keys, :tags, :tags=, :wait_for,
15
+ :symbolize_keys, :tags, :tags=, :type, :wait_for,
16
16
  :to => :adaptee
17
17
  field :dsl_volume, Ironfan::Dsl::Volume
18
18
 
@@ -265,11 +265,14 @@ module Ironfan
265
265
  end.compact.map(&:name)
266
266
 
267
267
  if cloud.flavor_info[:placement_groupable]
268
- 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"
269
- description[:placement] = { 'groupName' => cloud.placement_group.to_s }
268
+ description[:placement_group] = cloud.placement_group.to_s
269
+ elsif cloud.placement_group
270
+ Chef::Application.fatal!("A placement group was set but #{cloud.flavor} does not support placement!")
270
271
  end
271
272
  if cloud.flavor_info[:ebs_optimizable]
272
273
  description[:ebs_optimized] = cloud.ebs_optimized
274
+ elsif cloud.ebs_optimized
275
+ Chef::Application.fatal!("ebs_optimized set but #{cloud.flavor} does not support ebs optimization!")
273
276
  end
274
277
  description
275
278
  end
@@ -290,6 +293,8 @@ module Ironfan
290
293
  end
291
294
  hsh['Ebs.SnapshotId'] = volume.snapshot_id if volume.snapshot_id.present?
292
295
  hsh['Ebs.VolumeSize'] = volume.size.to_s if volume.size.present?
296
+ hsh['Ebs.VolumeType'] = volume.type if volume.type.present?
297
+ hsh['Ebs.Iops'] = volume.iops if volume.type == 'io1'
293
298
  hsh['Ebs.DeleteOnTermination'] = (not volume.keep).to_s
294
299
  else next
295
300
  end
@@ -1,3 +1,3 @@
1
1
  module Ironfan
2
- VERSION = '6.0.8'
2
+ VERSION = '6.0.9'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ironfan
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.8
4
+ version: 6.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-24 00:00:00.000000000 Z
12
+ date: 2014-07-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
@@ -332,18 +332,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
332
  - - ! '>='
333
333
  - !ruby/object:Gem::Version
334
334
  version: '0'
335
- segments:
336
- - 0
337
- hash: 770393223121845941
338
335
  required_rubygems_version: !ruby/object:Gem::Requirement
339
336
  none: false
340
337
  requirements:
341
338
  - - ! '>='
342
339
  - !ruby/object:Gem::Version
343
340
  version: '0'
344
- segments:
345
- - 0
346
- hash: 770393223121845941
347
341
  requirements: []
348
342
  rubyforge_project:
349
343
  rubygems_version: 1.8.25