'Place nodes on servers (if they don\'t have a server), and
start shell processes'

def placeNodes(self):

    if ((not self.servers) or (not self.topo)):
        return
    nodes = self.topo.nodes()
    placer = self.placement(servers=self.servers, nodes=self.topo.nodes(), hosts=self.topo.hosts(), switches=self.topo.switches(), links=self.topo.links())
    for node in nodes:
        config = self.topo.nodeInfo(node)
        if (('server' in config.keys()) and (config['server'] is None)):
            config['server'] = 'localhost'
        server = config.setdefault('server', placer.place(node))
        if server:
            config.setdefault('serverIP', self.serverIP[server])
        info(('%s:%s    ' % (node, server)))
        key = (None, server)
        (_dest, cfile, _conn) = self.connections.get(key, (None, None, None))
        if cfile:
            config.setdefault('controlPath', cfile)
