code: def manage_action_return(self, action):
          
          # Maybe our workers send us something else than an action
          # if so, just add this in other queues and return
          # todo: test a class instance
          if action.__class__.my_type not in ['check', 'notification', 'eventhandler']:
              self.add(action)
              return
  
          # Ok, it's a result. Get the concerned scheduler uuid
          scheduler_uuid = action.my_scheduler
          logger.debug("Got action return: %s / %s", scheduler_uuid, action.uuid)
  
          try:
              # Now that we know where to put the action result, we do not need any reference to
              # the scheduler nor the worker
              del action.my_scheduler
              del action.my_worker
          except AttributeError:  # pragma: no cover, simple protection
              logger.error("AttributeError Got action return: %s / %s", scheduler_uuid, action)
  
          # And we remove it from the actions queue of the scheduler too
          try:
              del self.schedulers[scheduler_uuid].actions[action.uuid]
          except KeyError as exp:
              logger.error("KeyError del scheduler action: %s / %s - %s",
                           scheduler_uuid, action.uuid, str(exp))
  
          # We tag it as "return wanted", and move it in the wait return queue
          try:
              self.schedulers[scheduler_uuid].wait_homerun[action.uuid] = action
          except KeyError:  # pragma: no cover, simple protection
              logger.error("KeyError Add home run action: %s / %s - %s",
                           scheduler_uuid, action.uuid, str(exp))
docs: Manage action return from Workers
          We just put them into the corresponding sched
          and we clean unused properties like my_scheduler
  
          :param action: the action to manage
          :type action: alignak.action.Action
          :return: None