CRON.class.php 6.4 KB

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