Sha256: ca31c111c2c0a21816ed5edfe19690cf261adbf09bd33ac6463ae96fd5d944c2

Contents?: true

Size: 1.56 KB

Versions: 43

Compression:

Stored size: 1.56 KB

Contents

module Rudy::AWS
  module EC2
    
    class Zone < Storable
      
      field :name
      field :region
      field :state  
      
      def liner_note
        "%-10s  %9s  %s" % [self.name, self.region, self.state]
      end
      
      def to_s(titles=false)
        str = titles ? "%-20s   %s#{$/}" % ['name', 'region', 'state'] : ""
        str << liner_note
      end

    end
    
    class Zones
      include Rudy::AWS::ObjectBase
      include Rudy::AWS::EC2::Base
      
      def list(*names)
        zones = list_as_hash(names)
        zones &&= zones.values
        zones
      end
      
      def list_as_hash(*names)
        names = names.flatten
        zlist = @ec2.describe_availability_zones(:zone_name => names)
        return unless zlist['availabilityZoneInfo'].is_a?(Hash)
        zones = {}
        zlist['availabilityZoneInfo']['item'].each do |zhash| 
          zon = Zones.from_hash(zhash)
          zones[zon.name] = zon
        end
        zones
      end

      def self.from_hash(h)
        zone = Rudy::AWS::EC2::Zone.new
        zone.name = h['zoneName']
        zone.region = h['regionName']
        zone.state = h['zoneState']
        zone
      end
      
      def any?
        zones = list || []
        !zones.empty?
      end
      
      def get(name)
        zones = list(name) || []
        return if zones.empty?
        zones.first
      end
      
      def zone?(name)
        begin
          kp = get(name)
          kp.is_a?(Rudy::AWS::EC2::Zone)
        rescue => ex
          false
        end
      end
      
    end
    
  end
end


Version data entries

43 entries across 43 versions & 3 rubygems

Version Path
sabat-rudy-0.8.0 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.0 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.1 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.2 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.3 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.4 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.5 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.6 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.7 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.6.8 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.7.0 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.7.1 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.7.2 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.7.3 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.7.4 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.7.5 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.7.6 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.8.0 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.8.1 lib/rudy/aws/ec2/zone.rb
solutious-rudy-0.8.2 lib/rudy/aws/ec2/zone.rb