code: def priority_run_or_raise(self, hosts, function, attempts=1):
          
          return self._run(hosts,
                           function,
                           self.workqueue.priority_enqueue_or_raise,
                           False,
                           attempts)
docs: Like priority_run(), but if a host is already in the queue, the
          existing host is moved to the top of the queue instead of enqueuing
          the new one.
  
          :type  hosts: string|list(string)|Host|list(Host)
          :param hosts: A hostname or Host object, or a list of them.
          :type  function: function
          :param function: The function to execute.
          :type  attempts: int
          :param attempts: The number of attempts on failure.
          :rtype:  object
          :return: A task object, or None if all hosts were duplicates.