1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/xenserver/models/compute/vif.rb

52 lines
1.3 KiB
Ruby
Raw Normal View History

2012-04-02 07:25:03 -04:00
require 'fog/core/model'
module Fog
module Compute
class XenServer
2012-04-02 07:25:03 -04:00
class VIF < Fog::Model
# API Reference here:
# http://docs.vmd.citrix.com/XenServer/5.6.0/1.0/en_gb/api/?c=VIF
2012-04-02 07:25:03 -04:00
identity :reference
2012-04-02 07:25:03 -04:00
attribute :mac, :aliases => :MAC
attribute :uuid
attribute :allowed_operations
attribute :currently_attached
attribute :device
attribute :mac_autogenerated, :aliases => :MAC_autogenerated
attribute :metrics
attribute :mtu, :aliases => :MTU
attribute :__network, :aliases => :network
2012-04-02 07:25:03 -04:00
attribute :status_code
attribute :status_detail
attribute :__vm, :aliases => :VM
def destroy
service.destroy_vif reference
end
def network
service.networks.get __network
2012-04-02 07:25:03 -04:00
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
2012-04-02 07:25:03 -04:00
end
2012-04-02 07:25:03 -04:00
end
end
end