Vesta.class.php~ 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <?php
  2. /**
  3. *
  4. * @author vesta, http://vestacp.com/
  5. * @copyright vesta 2010
  6. */
  7. class Vesta {
  8. // ====================== IP ===========================
  9. const V_LIST_SYS_IPS = 'v_list_sys_ips';
  10. // adding
  11. const V_ADD_SYS_IP = 'v_add_sys_ip';
  12. const V_ADD_SYS_USER_IP = 'v_add_sys_user_ip';
  13. // changing
  14. const V_CHANGE_SYS_IP_OWNER = 'v_change_sys_ip_owner';
  15. const V_CHANGE_SYS_IP_NAME = 'v_change_sys_ip_name';
  16. // deleting
  17. const V_DEL_SYS_IP = 'v_del_sys_ip';
  18. // service
  19. const V_UPD_SYS_IP = 'v_upd_sys_ip';
  20. const V_LIST_SYS_INTERFACES = 'v_list_sys_interfaces';
  21. // ======================= DNS =========================
  22. const V_LIST_DNS_DOMAINS = 'v_list_dns_domains';
  23. const V_LIST_DNS_DOMAIN_RECORDS = 'v_list_dns_domain';
  24. // adding
  25. const V_ADD_DNS_DOMAIN = 'v_add_dns_domain';
  26. const V_ADD_DNS_DOMAIN_RECORD = 'v_add_dns_domain_record';
  27. // changing
  28. const V_CHANGE_DNS_DOMAIN_IP = 'v_change_dns_domain_ip';
  29. const V_CHANGE_DNS_DOMAIN_SOA = 'v_change_dns_domain_soa';
  30. const V_CHANGE_DNS_DOMAIN_TPL = 'v_change_dns_domain_tpl';
  31. const V_CHANGE_DNS_DOMAIN_TTL = 'v_change_dns_domain_ttl';
  32. const V_CHANGE_DNS_DOMAIN_EXP = 'v_change_dns_domain_exp';
  33. const V_CHANGE_DNS_DOMAIN_RECORD = 'v_change_dns_domain_record';
  34. // deleting
  35. const V_DEL_DNS_DOMAIN = 'v_del_dns_domain';
  36. const V_DEL_DNS_DOMAIN_RECORD = 'v_del_dns_domain_record';
  37. // ======================= CRON =========================
  38. const V_LIST_CRON_JOBS = 'v_list_sys_cron';
  39. // adding
  40. const V_ADD_CRON_JOB = 'v_add_sys_cron';
  41. const V_ADD_SYS_USER_REPORTS = 'v_add_sys_user_reports';
  42. // changing
  43. const V_CHANGE_CRON_JOB = 'v_change_sys_cron_job';
  44. const V_SUSPEND_CRON_JOB = 'v_suspend_sys_cron_job';
  45. const V_SUSPEND_CRON_JOBS = 'v_suspend_sys_cron_jobs';
  46. const V_UNSUSPEND_CRON_JOB = 'v_unsuspend_sys_cron_job';
  47. const V_UNSUSPEND_CRON_JOBS = 'v_unsuspend_sys_cron_jobs';
  48. // deleting
  49. const V_DEL_CRON_JOB = 'v_del_sys_cron';
  50. const V_DEL_SYS_USER_REPORTS = 'v_del_sys_user_reports';
  51. // ======================= USER =========================
  52. const V_LIST_SYS_USERS = 'v_list_sys_users';
  53. // adding
  54. const V_ADD_SYS_USER = 'v_add_sys_user';
  55. // changing
  56. const V_CHANGE_SYS_USER_CONTACT = 'v_change_sys_user_contact';
  57. const V_CHANGE_SYS_USER_NS = 'v_change_sys_user_ns';
  58. const V_CHANGE_SYS_USER_PACKAGE = 'v_change_sys_user_package';
  59. const V_CHANGE_SYS_USER_PASSWORD = 'v_change_sys_user_password';
  60. const V_CHANGE_SYS_USER_SHELL = 'v_change_sys_user_shell';
  61. const V_CHANGE_SYS_USER_ROLE = 'v_change_sys_user_role';
  62. // deleting
  63. const V_DEL_SYS_USER = 'v_del_sys_user';
  64. // ======================= WEB_DOMAIN =========================
  65. const V_LIST_WEB_DOMAINS = 'v_list_web_domains';
  66. const V_LIST_WEB_DOMAINS_ALIAS = 'v_list_web_domains_alias';
  67. const V_LIST_WEB_DOMAINS_ELOG = 'v_list_web_domains_elog';
  68. const V_LIST_WEB_DOMAINS_PROXY = 'v_list_web_domains_proxy';
  69. const V_LIST_WEB_DOMAINS_SSL = 'v_list_web_domains_ssl';
  70. const V_LIST_WEB_DOMAINS_STATS = 'v_list_web_domains_stats';
  71. const V_LIST_WEB_TEMPLATES = 'v_list_web_templates';
  72. // adding
  73. const V_ADD_WEB_DOMAIN = 'v_add_web_domain';
  74. const V_ADD_WEB_DOMAIN_ALIAS = 'v_add_web_domain_alias';
  75. // changing
  76. const V_ADD_WEB_DOMAIN_STAT = 'v_add_web_domain_stat';
  77. const V_ADD_WEB_DOMAIN_STAT_AUTH = 'v_add_web_domain_stat_auth';
  78. const V_ADD_WEB_DOMAIN_SSL = 'v_add_web_domain_ssl';
  79. const V_ADD_WEB_DOMAIN_ELOG = 'v_add_web_domain_elog';
  80. const V_ADD_WEB_DOMAIN_CGI = 'v_add_web_domain_cgi';
  81. const V_CHANGE_WEB_DOMAIN_IP = 'v_change_web_domain_ip';
  82. const V_CHANGE_WEB_DOMAIN_SSLCERT = 'v_change_web_domain_sslcert';
  83. const V_CHANGE_WEB_DOMAIN_SSLHOME = 'v_change_web_domain_sslhome';
  84. const V_CHANGE_WEB_DOMAIN_TPL = 'v_change_web_domain_tpl';
  85. const V_DEL_WEB_DOMAIN_CGI = 'v_del_web_domain_cgi';
  86. const V_DEL_WEB_DOMAIN_ELOG = 'v_del_web_domain_elog';
  87. const V_DEL_WEB_DOMAIN_SSL = 'v_del_web_domain_ssl';
  88. const V_DEL_WEB_DOMAIN_STAT = 'v_del_web_domain_stat';
  89. const V_DEL_WEB_DOMAIN_STAT_AUTH = 'v_del_web_domain_stat_auth';
  90. const V_DEL_WEB_DOMAIN_ALIAS = 'v_del_web_domain_alias';
  91. const V_SUSPEND_WEB_DOMAIN = 'v_suspend_web_domain';
  92. const V_SUSPEND_WEB_DOMAINS = 'v_suspend_web_domains';
  93. const V_UNSUSPEND_WEB_DOMAIN = 'v_unsuspend_web_domain';
  94. const V_UNSUSPEND_WEB_DOMAINS = 'v_unsuspend_web_domains';
  95. const V_UPD_WEB_DOMAIN_DISK = 'v_upd_web_domain_disk';
  96. const V_UPD_WEB_DOMAINS_DISK = 'v_upd_web_domains_disk';
  97. const V_UPD_WEB_DOMAIN_TRAFF = 'v_upd_web_domain_traff';
  98. const V_UPD_WEB_DOMAINS_TRAFF = 'v_upd_web_domains_traff';
  99. // deleting
  100. const V_DEL_WEB_DOMAIN = 'v_del_web_domain';
  101. // ======================= DB =========================
  102. // list
  103. const V_LIST_DB_BASES = 'v_list_db_bases';
  104. const V_LIST_DB_HOSTS = 'v_list_db_hosts';
  105. // adding
  106. const V_ADD_DB_BASE = 'v_add_db_base';
  107. const V_ADD_DB_HOST = 'v_add_db_host';
  108. // changing
  109. const V_SUSPEND_DB_BASE = 'v_suspend_db_base';
  110. const V_SUSPEND_DB_BASES = 'v_suspend_db_bases';
  111. const V_UNSUSPEND_DB_BASE = 'v_unsuspend_db_base';
  112. const V_UNSUSPEND_DB_BASES = 'v_unsuspend_db_bases';
  113. const V_CHANGE_DB_PASSWORD = 'v_change_db_password';
  114. // deleting
  115. const V_DEL_DB_BASE = 'v_del_db_base';
  116. const V_DEL_DB_HOST = 'v_del_db_host';
  117. // service
  118. const V_UPD_DB_BASE_DISK = 'v_upd_db_base_disk';
  119. const V_UPD_DB_BASES_DISK = 'v_upd_db_bases_disk';
  120. // ======================================================
  121. const PARAM_DELIMETER = ' ';
  122. /**
  123. *
  124. */
  125. static function execute($cmd_command, $parameters=array()) {
  126. $r = new Request();
  127. $debug = $r->getParameter("debug", FALSE);
  128. if (!isset($cmd_command)) {
  129. throw new ProtectionException('No function name passed into Vesta::execute'); // TODO: move msg to Messages::
  130. }
  131. $params = array(
  132. 'sudo' => Config::get('sudo_path'),
  133. 'functions' => Config::get('vesta_functions_path'),
  134. 'parameters' => implode("' '", $parameters),
  135. // 'reply' => Config::get('response_type')
  136. );
  137. $cmd = "{$params['sudo']} {$params['functions']}{$cmd_command} '{$params['parameters']}' {$params['reply']}";
  138. // /usr/bin/sudo /usr/local/vesta/bin/v_list_sys_users vesta json
  139. exec($cmd, $output, $return);
  140. $result = 0;
  141. $result = array('status' => TRUE,
  142. 'data' => '',
  143. 'error_code' => '',
  144. 'error_message' => ''
  145. );
  146. if($debug)
  147. {
  148. $result['debug'] = array(
  149. "cmd" => $cmd,
  150. "output" => $output,
  151. "return" => $return
  152. );
  153. if($debug == 2)
  154. {
  155. echo '<p>'.$cmd;
  156. echo '<br> output: '; print_r($output);
  157. echo '<br> return: '.$return;
  158. echo '</p>';
  159. }
  160. }
  161. if(!!(int)$return)
  162. {
  163. $result['status'] = FALSE;
  164. $result['error_code'] = (int)$return;
  165. $result['error_message'] = implode('', $output);
  166. }
  167. else
  168. {
  169. $result['data'] = json_decode(implode('', $output), true);
  170. }
  171. return $result;
  172. }
  173. }