class OVIRT::Interface

Attributes

interface[R]
mac[R]
name[R]
network[R]
vm[R]

Public Class Methods

new(client=nil, xml={}) click to toggle source
# File lib/ovirt/interface.rb, line 6
def initialize(client=nil, xml={})
  if xml.is_a?(Hash)
    super(client, xml[:id], xml[:href], xml[:name])
    @network = xml[:network]
    @persisted = xml[:persisted]
  else
    super(client, xml[:id], xml[:href], (xml/'name').first.text)
    parse_xml_attributes!(xml)
  end
  self
end
to_xml(opts={}) click to toggle source
# File lib/ovirt/interface.rb, line 18
def self.to_xml(opts={})
  builder = Nokogiri::XML::Builder.new do
    nic{
      name_(opts[:name] || "nic-#{Time.now.to_i}")
      if opts[:network]
        network :id => opts[:network]
      else
        network{ name_(opts[:network_name] || 'ovirtmgmt') }
      end
    }
  end
  Nokogiri::XML(builder.to_xml).root.to_s
end

Public Instance Methods

parse_xml_attributes!(xml) click to toggle source
# File lib/ovirt/interface.rb, line 36
def parse_xml_attributes!(xml)
 @mac = (xml/'mac').first[:address] rescue nil #template interfaces doesn't have MAC address.
 @interface = (xml/'interface').first.text
 @network = (xml/'network').first[:id]
 @vm = Link::new(@client, (xml/'vm').first[:id], (xml/'vm').first[:href]) if (xml/'vm') rescue nil
 @template = Link::new(@client, (xml/'template').first[:id], (xml/'template').first[:href]) rescue nil
end
persisted?() click to toggle source
# File lib/ovirt/interface.rb, line 32
def persisted?
  @persisted || !!id
end