CRON.class.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <?php
  2. /*
  3. * CRON
  4. *
  5. * @author vesta, http://vestacp.com/
  6. * @author Dmitry Malishev <dima.malishev@gmail.com>
  7. * @author Dmitry Naumov-Socolov <naumov.socolov@gmail.com>
  8. * @copyright vesta 2010-2011
  9. */
  10. class CRON extends AjaxHandler
  11. {
  12. /**
  13. * Get CRON entries
  14. *
  15. * @param Request $request
  16. * @return string - Ajax Reply
  17. */
  18. public function getListExecute($request)
  19. {
  20. $_user = 'vesta';
  21. $reply = array();
  22. $result = Vesta::execute(Vesta::V_LIST_CRON_JOBS, array($_user, Config::get('response_type')));
  23. foreach ($result['data'] as $id => $record) {
  24. $reply[$id] = array(
  25. 'CMD' => $record['CMD'],
  26. 'MIN' => $record['MIN'],
  27. 'HOUR' => $record['HOUR'],
  28. 'DAY' => $record['DAY'],
  29. 'MONTH' => $record['MONTH'],
  30. 'WDAY' => $record['WDAY'],
  31. 'SUSPEND' => $record['SUSPEND'],
  32. 'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
  33. );
  34. }
  35. if (!$result['status']) {
  36. $this->errors[] = array($result['error_code'] => $result['error_message']);
  37. }
  38. return $this->reply($result['status'], $reply);
  39. }
  40. /**
  41. * Add CRON entry
  42. *
  43. * @param Request $request
  44. * @return string - Ajax Reply
  45. */
  46. public function addExecute($request)
  47. {
  48. $r = new Request();
  49. $_s = $r->getSpell();
  50. $_user = 'vesta';
  51. $params = array(
  52. 'USER' => $_user,
  53. 'MIN' => $_s['MIN'],
  54. 'HOUR' => $_s['HOUR'],
  55. 'DAY' => $_s['DAY'],
  56. 'MONTH' => $_s['MONTH'],
  57. 'WDAY' => $_s['WDAY'],
  58. 'CMD' => $_s['CMD']
  59. );
  60. $result = Vesta::execute(Vesta::V_ADD_CRON_JOB, $params);
  61. if ($_s['REPORTS']) {
  62. $result = array();
  63. $result = Vesta::execute(Vesta::V_ADD_SYS_USER_REPORTS, array('USER' => $_user));
  64. if (!$result['status']) {
  65. $this->status = FALSE;
  66. $this->errors['REPORTS'] = array($result['error_code'] => $result['error_message']);
  67. }
  68. }
  69. if (!$result['status']) {
  70. $this->errors[] = array($result['error_code'] => $result['error_message']);
  71. }
  72. return $this->reply($result['status'], $result['data']);
  73. }
  74. /**
  75. * Delete CRON entry
  76. *
  77. * @param Request $request
  78. * @return string - Ajax Reply
  79. */
  80. public function delExecute($request)
  81. {
  82. $r = new Request();
  83. $_s = $r->getSpell();
  84. $_user = 'vesta';
  85. $params = array(
  86. 'USER' => $_user,
  87. 'JOB' => $_s['JOB']
  88. );
  89. $result = Vesta::execute(Vesta::V_DEL_CRON_JOB, $params);
  90. if (!$result['status']) {
  91. $this->errors[] = array($result['error_code'] => $result['error_message']);
  92. }
  93. return $this->reply($result['status'], $result['data']);
  94. }
  95. /**
  96. * Change CRON entry
  97. *
  98. * @param Request $request
  99. * @return string - Ajax Reply
  100. */
  101. public function changeExecute($request)
  102. {
  103. $r = new Request();
  104. $_s = $r->getSpell();
  105. $_old = $_s['old'];
  106. $_new = $_s['new'];
  107. $_user = 'vesta';
  108. $_JOB = $_new['JOB'];
  109. $result = array();
  110. $params = array(
  111. 'USER' => $_user,
  112. 'JOB' => $_JOB,
  113. 'MIN' => $_new['MIN'],
  114. 'HOUR' => $_new['HOUR'],
  115. 'DAY' => $_new['DAY'],
  116. 'MONTH' => $_new['MONTH'],
  117. 'WDAY' => $_new['WDAY'],
  118. 'CMD' => $_new['CMD']
  119. );
  120. $result = Vesta::execute(Vesta::V_CHANGE_CRON_JOB, $params);
  121. if (!$result['status']) {
  122. $this->errors[] = array($result['error_code'] => $result['error_message']);
  123. }
  124. return $this->reply($result['status'], $result['data']);
  125. }
  126. /**
  127. * Suspend CRON entry
  128. *
  129. * @param Request $request
  130. * @return string - Ajax Reply
  131. */
  132. public function suspendExecute($request)
  133. {
  134. $r = new Request();
  135. $_s = $r->getSpell();
  136. $_user = 'vesta';
  137. $_JOB = $_s['JOB'];
  138. $params = array(
  139. 'USER' => $_user,
  140. 'JOB' => $_JOB
  141. );
  142. $result = Vesta::execute(Vesta::V_SUSPEND_CRON_JOB, $params);
  143. if (!$result['status']) {
  144. $this->errors[] = array($result['error_code'] => $result['error_message']);
  145. }
  146. return $this->reply($result['status'], $result['data']);
  147. }
  148. /**
  149. * Unsuspend CRON entry
  150. *
  151. * @param Request $request
  152. * @return string - Ajax Reply
  153. */
  154. public function unsuspendExecute($request)
  155. {
  156. $r = new Request();
  157. $_s = $r->getSpell();
  158. $_user = 'vesta';
  159. $_JOB = $_s['JOB'];
  160. $params = array(
  161. 'USER' => $_user,
  162. 'JOB' => $_JOB
  163. );
  164. $result = Vesta::execute(Vesta::V_UNSUSPEND_CRON_JOB, $params);
  165. if (!$result['status']) {
  166. $this->errors[] = array($result['error_code'] => $result['error_message']);
  167. }
  168. return $this->reply($result['status'], $result['data']);
  169. }
  170. /**
  171. * Batch suspend CRON entries
  172. *
  173. * @param Request $request
  174. * @return string - Ajax Reply
  175. */
  176. public function suspendAllExecute($request)
  177. {
  178. $r = new Request();
  179. $_s = $r->getSpell();
  180. $_user = 'vesta';
  181. $_JOB = $_s['JOB'];
  182. $params = array(
  183. 'USER' => $_user
  184. );
  185. $result = Vesta::execute(Vesta::V_SUSPEND_CRON_JOBS, $params);
  186. if (!$result['status']) {
  187. $this->errors[] = array($result['error_code'] => $result['error_message']);
  188. }
  189. return $this->reply($result['status'], $result['data']);
  190. }
  191. /**
  192. * Batch unsuspend CRON entries
  193. *
  194. * @param Request $request
  195. * @return string - Ajax Reply
  196. */
  197. public function unsuspendAllExecute($request)
  198. {
  199. $r = new Request();
  200. $_s = $r->getSpell();
  201. $_user = 'vesta';
  202. $params = array(
  203. 'USER' => $_user
  204. );
  205. $result = Vesta::execute(Vesta::V_UNSUSPEND_CRON_JOBS, $params);
  206. if (!$result['status']) {
  207. $this->errors[] = array($result['error_code'] => $result['error_message']);
  208. }
  209. return $this->reply($result['status'], $result['data']);
  210. }
  211. }