Sha256: 21860b809af4bd7b99d273f8fd85f597a7a776da0d576a3d590a2d8bfa3a69d4

Contents?: true

Size: 1.63 KB

Versions: 21

Compression:

Stored size: 1.63 KB

Contents

require 'fog/core/model'

module Fog
  module Compute
    class XenServer

      class VIF < Fog::Model
        # API Reference here:
        # http://docs.vmd.citrix.com/XenServer/6.2.0/1.0/en_gb/api/?c=VIF

        identity :reference

        attribute :mac,                :aliases => :MAC
        attribute :uuid
        attribute :allowed_operations
        attribute :current_operations
        attribute :currently_attached
        attribute :device
        attribute :ipv4_allowed
        attribute :ipv6_allowed
        attribute :locking_mode
        attribute :mac_autogenerated,  :aliases => :MAC_autogenerated
        attribute :__metrics,          :aliases => :metrics
        attribute :other_config
        attribute :qos_algorithm_params
        attribute :qos_algorithm_type
        attribute :qos_supported_algorithms
        attribute :runtime_properties
        attribute :mtu,                :aliases => :MTU
        attribute :__network,          :aliases => :network
        attribute :status_code
        attribute :status_detail
        attribute :__vm,               :aliases => :VM


        def destroy
          service.destroy_vif reference
        end

        def network
          service.networks.get __network
        end

        def server
          service.servers.get __vm
        end

        def save
          requires :server
          raise ArgumentError.new('network is required for this operation') \
            unless attributes[:__network]
          ref = service.create_vif attributes[:server], attributes[:__network]
          merge_attributes service.vifs.get(ref).attributes
        end

      end

    end
  end
end

Version data entries

21 entries across 21 versions & 3 rubygems

Version Path
fog-xenserver-0.0.1.alpha2 lib/fog/xenserver/models/compute/vif.rb
fog-xenserver-0.0.1.alpha lib/fog/xenserver/models/compute/vif.rb
fog-1.22.0 lib/fog/xenserver/models/compute/vif.rb
fog-1.21.0 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.20.0.20140305101839 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.20.0.20140305101305 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.19.0.20140212012611 lib/fog/xenserver/models/compute/vif.rb
fog-1.20.0 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.19.0.20140110004459 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.19.0.20140110003812 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.19.0.20140109202555 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.19.0.20140107192102 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.19.0.20140107142106 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.19.0.20131219203941 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.18.0.20131219193542 lib/fog/xenserver/models/compute/vif.rb
fog-1.19.0 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.18.0.20131219033443 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.18.0.20131219032002 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.18.0.20131219030716 lib/fog/xenserver/models/compute/vif.rb
fog-maestrodev-1.18.0.20131219022322 lib/fog/xenserver/models/compute/vif.rb