code: def setup_new_conf(self):
          # pylint: disable=too-many-branches
          
          # Execute the base class treatment...
          super(Satellite, self).setup_new_conf()
  
          # ...then our own specific treatment!
          with self.conf_lock:
              logger.info("Received a new configuration")
  
              # self_conf is our own configuration from the alignak environment
              # self_conf = self.cur_conf['self_conf']
  
              # Now manage modules
              if not self.have_modules:
                  try:
                      self.modules = unserialize(self.cur_conf['modules'], no_load=True)
                  except AlignakClassLookupException as exp:  # pragma: no cover, simple protection
                      logger.error('Cannot un-serialize modules configuration '
                                   'received from arbiter: %s', exp)
                  if self.modules:
                      logger.info("I received some modules configuration: %s", self.modules)
                      self.have_modules = True
  
                      for module in self.modules:
                          if module.name not in self.q_by_mod:
                              self.q_by_mod[module.name] = {}
  
                      self.do_load_modules(self.modules)
                      # and start external modules too
                      self.modules_manager.start_external_instances()
                  else:
                      logger.info("I do not have modules")
  
              # Initialize connection with all our satellites
              logger.info("Initializing connection with my satellites:")
              my_satellites = self.get_links_of_type(s_type='')
              for satellite in list(my_satellites.values()):
                  logger.info("- : %s/%s", satellite.type, satellite.name)
                  if not self.daemon_connection_init(satellite):
                      logger.error("Satellite connection failed: %s", satellite)
  
          # Now I have a configuration!
          self.have_conf = True
docs: Setup the new configuration received from Arbiter
  
          This function calls the base satellite treatment and manages the configuration needed
          for a simple satellite daemon that executes some actions (eg. poller or reactionner):
          - configure the passive mode
          - configure the workers
          - configure the tags
          - configure the modules
  
          :return: None