Sha256: 9583dddd73263580f8a01c573a1fd07100107341bc95b717802330ca3af2bbf0

Contents?: true

Size: 805 Bytes

Versions: 2

Compression:

Stored size: 805 Bytes

Contents

require 'open-uri'

class Pipette
  module Ec2

    def ec2
      @ec2 ||= RightAws::Ec2.new(opts[:access_key], opts[:secret_access_key])
    end

    def create_volume(size)
      say_with_time "Creating new volume of size #{size}G" do
        res = ec2.create_volume(nil, size, zone)
        res[:aws_id]
      end
    end

    def mount_volume(volume_id, mount_point)
      say_with_time "Mounting #{volume_id} at #{mount_point}" do
        res = ec2.attach_volume(volume_id, instance_id, mount_point)
        res[:aws_device]
      end
    end

    def zone
      @zone ||= meta("placement/availability-zone")
    end

    def instance_id
      @instance_id ||= meta("instance-id")
    end

    def meta(path)
      open("http://169.254.169.254/latest/meta-data/#{path}").read.strip
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pipette-0.1.1 lib/pipette/ec2.rb
pipette-0.1.0 lib/pipette/ec2.rb