Populate the node poll.

        :param size: the number of node to create.

def initialize(self, size=2):
        """Populate the node poll.

        :param size: the number of node to create.
        """
        # The IP should be in this range, this is the default DHCP range used by the introspection.
        # inspection_iprange = 192.0.2.100,192.0.2.120
        for i in range(0, size):
            self.nodes.append(
                Baremetal(
                    self.nova_api,
                    self.neutron,
                    self._keypair,
                    self._key_filename,
                    self._security_groups,
                    name='baremetal_%d' % i))
        with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
            for bm_node in self.nodes:
                future = executor.submit(
                    bm_node.deploy,
                    'ipxe.usb',
                    '192.0.2.%d' % self._idx,
                    flavor='m1.large')
                self._idx += 1
                bm_node._future = future
            for bm_node in self.nodes:
                bm_node._future.result()
                pm_addr = self.bmc.register_host(bm_node.name)
                self.instackenv.append({
                    "pm_type": "pxe_ipmitool",
                    "mac": [bm_node.mac],
                    # TODO(Gonéri): We should get these informations from the baremetal node's flavor
                    "cpu": "4",
                    "memory": "8196",
                    "disk": "80",
                    "arch": "x86_64",
                    "pm_user": "admin",
                    "pm_password": "password",
                    "pm_addr": pm_addr
                })
        self.bmc.ssh_pool.stop_all()