# File lib/deltacloud/drivers/condor/ip_agents/default.rb, line 47
    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]) }

        # Make an address hash to speed up the inner loop.
        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