'Called at the beginning of a scheduler cycle to refresh all process
information.'

def refresh(self):

    self._reset()
    self._drop_old_pidfiles()
    pidfile_paths = [pidfile_id.path for pidfile_id in self._registered_pidfile_info]
    all_results = self._call_all_drones('refresh', pidfile_paths)
    for (drone, results_list) in all_results.iteritems():
        results = results_list[0]
        for process_info in results['autoserv_processes']:
            self._add_autoserv_process(drone, process_info)
        for process_info in results['parse_processes']:
            self._add_process(drone, process_info)
        self._process_pidfiles(drone, results['pidfiles'], self._pidfiles)
        self._process_pidfiles(drone, results['pidfiles_second_read'], self._pidfiles_second_read)
        self._compute_active_processes(drone)
        if drone.enabled:
            self._enqueue_drone(drone)
