code: def prepare_satellites(self, satellites):
          
          for sat_type in ["scheduler", "reactionner", "poller", "broker", "receiver"]:
              # We get potential TYPE at realm level first
              for sat_link_uuid in getattr(self, "%ss" % sat_type):
                  if sat_link_uuid not in satellites:
                      continue
                  sat_link = satellites[sat_link_uuid]
  
                  # Found our declared satellite in the provided satellites
                  if sat_link.active and not sat_link.spare:
                      # Generic increment : realm.nb_TYPE += 1
                      setattr(self, "nb_%ss" % sat_type, getattr(self, "nb_%ss" % sat_type) + 1)
                      break
                  else:
                      self.add_error("Realm %s, satellite %s declared in the realm is not found "
                                     "in the allowed satellites!" % (self.name, sat_link.name))
                      logger.error("Satellite %s declared in the realm %s not found "
                                   "in the allowed satellites!", sat_link.name, self.name)
  
          logger.info(" Realm %s: (in/potential) (schedulers:%d/%d) (pollers:%d/%d) "
                      "(reactionners:%d/%d) (brokers:%d/%d) (receivers:%d/%d)", self.name,
                      self.nb_schedulers, len(self.potential_schedulers),
                      self.nb_pollers, len(self.potential_pollers),
                      self.nb_reactionners, len(self.potential_reactionners),
                      self.nb_brokers, len(self.potential_brokers),
                      self.nb_receivers, len(self.potential_receivers))
docs: Update the following attributes of a realm::
  
          * nb_*satellite type*s
          * self.potential_*satellite type*s
  
          (satellite types are scheduler, reactionner, poller, broker and receiver)
  
          :param satellites: dict of SatelliteLink objects
          :type satellites: dict
          :return: None