Exemple #1
0
 public function getController(\Request $request)
 {
     $cmd = $request->shiftCommand();
     if ($cmd == 'admin' && \Current_User::isDeity()) {
         $admin = new \pulse\PulseAdminController($this);
         return $admin;
     } else {
         if (!\Settings::get('pulse', 'allow_web_access')) {
             exit('Web access to pulse is not allowed.');
         }
         try {
             PulseController::runSchedules($request);
         } catch (Exception\PulseException $e) {
             PulseFactory::logError($e->getMessage() . "\n" . $e->getFile() . ':' . $e->getLine());
             exit('Error: ' . $e->getMessage());
         } catch (\Exception $e) {
             PulseFactory::logError($e->getMessage() . "\n" . $e->getFile() . ':' . $e->getLine());
             exit('An error occurred outside the scope of Pulse.');
         }
         exit;
     }
 }
 public static function runSchedules(\Request $request)
 {
     if ($request->isVar('hash')) {
         $schedule_hash = $request->getVar('hash');
         if (preg_match('/\\W/', $schedule_hash)) {
             throw new Exception\PulseException('Improper schedule hash');
         }
         $schedule = PulseFactory::pullReadyScheduleByHash($schedule_hash);
         if (empty($schedule)) {
             throw new Exception\PulseException('Schedule hash not found: ' . $schedule_hash);
         } else {
             $schedules[] = $schedule;
         }
     } elseif ($request->isVar('schedule_module')) {
         if ($request->isVar('name')) {
             $schedule_name = $request->getVar('name');
         } else {
             $schedule_name = null;
         }
         $schedule_module = $request->getVar('schedule_module');
         $schedules = PulseFactory::pullReadySchedulesByModule($schedule_module, $schedule_name);
     } elseif ($request->isVar('name')) {
         $schedule_name = $request->getVar('name');
         $schedules = PulseFactory::pullReadySchedulesByName($schedule_name);
     } else {
         $schedules = PulseFactory::pullReadySchedules();
     }
     if (empty($schedules)) {
         exit("No schedules run.\n");
     }
     $completed = PulseFactory::walkSchedules($schedules);
     if (!empty($completed)) {
         foreach ($completed as $sch_id) {
             echo "Schedule #{$sch_id} completed.\n";
         }
     }
     exit;
 }
Exemple #3
0
 public static function walkSchedules(array $schedules)
 {
     $schedules_completed = null;
     $error_occurred = false;
     foreach ($schedules as $job) {
         $schedule = new PulseSchedule();
         $schedule->setVars($job);
         try {
             PulseFactory::executeSchedule($schedule);
             $schedules_completed[] = $schedule->getId();
         } catch (\Exception $e) {
             self::logError($e->getMessage());
             PulseFactory::errorConditionSet($schedule);
             $error_occurred = true;
         }
     }
     if ($error_occurred) {
         throw new Exception\PulseException('One or more errors occurred during schedule execution.');
     } else {
         return $schedules_completed;
     }
 }