Restart a work spec.

        This calls :meth:`idle_all_workers`, then moves all finished
        jobs back into the available queue.

        .. deprecated:: 0.4.5
            See :meth:`idle_all_workers` for problems with that method.
            This also ignores failed jobs and work unit dependencies.
            In practice, whatever generated a set of work units
            initially can recreate them easily enough.

def reset_all(self, work_spec_name):
        '''Restart a work spec.

        This calls :meth:`idle_all_workers`, then moves all finished
        jobs back into the available queue.

        .. deprecated:: 0.4.5
            See :meth:`idle_all_workers` for problems with that method.
            This also ignores failed jobs and work unit dependencies.
            In practice, whatever generated a set of work units
            initially can recreate them easily enough.

        '''
        self.idle_all_workers()
        with self.registry.lock(identifier=self.worker_id) as session:
            session.move_all(WORK_UNITS_ + work_spec_name + _FINISHED,
                             WORK_UNITS_ + work_spec_name)
            session.reset_priorities(WORK_UNITS_ + work_spec_name, 0)