def find_free_mac
addr_hash = {}
DefaultExecutor::new do |executor|
addresses = (@mappings/'/addresses/address').collect { |a| CondorAddress.new(:ip => a.text.strip, :mac => a[:mac]) }
addresses.each do |address|
addr_hash[address.mac] = address.ip
end
executor.instances.each do |instance|
instance.public_addresses.each do |public_address|
if addr_hash.key?(public_address.mac)
addr_hash.delete(public_address.mac)
end
end
end
end
raise "No available MACs to assign to instance." if addr_hash.empty?
return addr_hash.keys.first
end