Sha256: d33ebf461c6323a6d6e4b3401a3b702f8d4743e6a18cd32c6667476d78700d66
Contents?: true
Size: 1.3 KB
Versions: 2
Compression:
Stored size: 1.3 KB
Contents
module OVIRT class Interface < BaseObject attr_reader :name, :mac, :interface, :network, :vm 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 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 def persisted? @persisted || !!id end 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] rescue nil) @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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rbovirt-0.0.24 | lib/ovirt/interface.rb |
rbovirt-0.0.23 | lib/ovirt/interface.rb |