code: def dispatch(self, test=False):
          if not self.new_to_dispatch:
              raise DispatcherError("Dispatcher cannot dispatch, "
                                    "because no configuration is prepared!")
          if self.first_dispatch_done:
              raise DispatcherError("Dispatcher cannot dispatch, "
                                    "because the configuration is still dispatched!")
          if self.dispatch_ok:
              logger.info("Dispatching is already done and ok...")
              return
          logger.info("Trying to send configuration to the satellites...")
          self.dispatch_ok = True
          for link in self.arbiters:
              if link == self.arbiter_link:
                  continue
              if not link.active:
                  continue
              if not link.spare:
                  continue
              if link.configuration_sent:
                  logger.debug("Arbiter %s already sent!", link.name)
                  continue
              if not link.reachable:
                  logger.debug("Arbiter %s is not reachable to receive its configuration",
                               link.name)
                  continue
              logger.info("Sending configuration to the arbiter %s", link.name)
              logger.debug("- %s", link.cfg)
              link.put_conf(link.cfg, test=test)
              link.configuration_sent = True
              logger.info("- sent")
              link.do_not_run()
          for link in self.schedulers:
              if link.configuration_sent:
                  logger.debug("Scheduler %s already sent!", link.name)
                  continue
              if not link.active:
                  continue
              if not link.reachable:
                  logger.debug("Scheduler %s is not reachable to receive its configuration",
                               link.name)
                  continue
              logger.info("Sending configuration to the scheduler %s", link.name)
              logger.debug("- %s", link.cfg)
              link.put_conf(link.cfg, test=test)
              link.configuration_sent = True
              logger.info("- sent")
          for link in self.satellites:
              if link.configuration_sent:
                  logger.debug("%s %s already sent!", link.type, link.name)
                  continue
              if not link.active:
                  continue
              if not link.reachable:
                  logger.warning("%s %s is not reachable to receive its configuration",
                                 link.type, link.name)
                  continue
              logger.info("Sending configuration to the %s %s", link.type, link.name)
              logger.debug("- %s", link.cfg)
              link.put_conf(link.cfg, test=test)
              link.configuration_sent = True
              logger.info("- sent")
          if self.dispatch_ok:
              self.new_to_dispatch = False
              self.first_dispatch_done = True