Sha256: eab672b2191e2bc5cae7009d7dfabf9d90cc0298697a387d518d6d8019f94f7a

Contents?: true

Size: 778 Bytes

Versions: 9

Compression:

Stored size: 778 Bytes

Contents

module Vcloud
  module Core
    class Vdc

      attr_reader :id

      def initialize(id)
        unless id =~ /^[-0-9a-f]+$/
          raise "vdc id : #{id} is not in correct format"
        end
        @id = id
      end

      def self.get_by_name(name)
        q = Query.new('orgVdc', :filter => "name==#{name}")
        unless res = q.get_all_results
          raise "Error finding vDC by name #{name}"
        end
        raise "vDc #{name} not found" unless res.size == 1
        return self.new(res.first[:href].split('/').last)
      end

      def vcloud_attributes
        Vcloud::Fog::ServiceInterface.new.get_vdc(id)
      end

      def name
        vcloud_attributes[:name]
      end

      def href
        vcloud_attributes[:href]
      end

    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
vcloud-core-0.0.9 lib/vcloud/core/vdc.rb
vcloud-core-0.0.8 lib/vcloud/core/vdc.rb
vcloud-core-0.0.7 lib/vcloud/core/vdc.rb
vcloud-core-0.0.6 lib/vcloud/core/vdc.rb
vcloud-core-0.0.5 lib/vcloud/core/vdc.rb
vcloud-core-0.0.4 lib/vcloud/core/vdc.rb
vcloud-core-0.0.3 lib/vcloud/core/vdc.rb
vcloud-core-0.0.2 lib/vcloud/core/vdc.rb
vcloud-core-0.0.1 lib/vcloud/core/vdc.rb