class QemuToolkit::VnicCollection
A collection of vnics. This class keeps track of vnic allocations to devices, so that no vnic will be used twice.
Public Class Methods
new(vnics=[])
click to toggle source
# File lib/qemu-toolkit/vnic_collection.rb, line 10 def initialize(vnics=[]) @vnics = Set.new(vnics) @used = Set.new end
Public Instance Methods
<<(vnic)
click to toggle source
# File lib/qemu-toolkit/vnic_collection.rb, line 15 def << vnic @vnics << vnic end
allocate(via, mac_address=nil)
click to toggle source
# File lib/qemu-toolkit/vnic_collection.rb, line 27 def allocate(via, mac_address=nil) vnic=unused.find { |vnic| (!mac_address || (normalize_mac_address(mac_address) == vnic.macaddr)) && via == vnic.over } @used << vnic vnic end
empty?()
click to toggle source
# File lib/qemu-toolkit/vnic_collection.rb, line 37 def empty? @used.size == @vnics.size end
map(&block)
click to toggle source
# File lib/qemu-toolkit/vnic_collection.rb, line 19 def map &block unused.map(&block) end
normalize_mac_address(mac_address)
click to toggle source
# File lib/qemu-toolkit/vnic_collection.rb, line 41 def normalize_mac_address mac_address Network::MacAddress.new(mac_address) end
unused()
click to toggle source
# File lib/qemu-toolkit/vnic_collection.rb, line 23 def unused @vnics - @used end