From 341ef7175af7c8f21d27262b58da8f5bc2c06ef0 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Tue, 08 Jul 2014 08:44:59 -0400 Subject: [PATCH] Merge branch 'master_fixes' into 'master' --- server/mods-available/remoteaction_core_module.inc.php | 108 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 77 insertions(+), 31 deletions(-) diff --git a/server/mods-available/remoteaction_core_module.inc.php b/server/mods-available/remoteaction_core_module.inc.php index ebdd404..0864953 100644 --- a/server/mods-available/remoteaction_core_module.inc.php +++ b/server/mods-available/remoteaction_core_module.inc.php @@ -1,6 +1,6 @@ <?php /* -Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com +Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh, Oliver Vogel www.muv.com All rights reserved. Redistribution and use in source and binary forms, with or without modification, @@ -35,7 +35,7 @@ //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. function onInstall() { - return true; + return false; } /* @@ -45,7 +45,8 @@ /* * Check for actions to execute */ - $this->_execActions(); + //* This module has been replaced by the new action framework. + // $this->_execActions(); } /* @@ -62,8 +63,8 @@ */ global $app; $sql = "UPDATE sys_remoteaction " . - "SET action_state = '" . $app->dbmaster->quote($state) . "' " . - "WHERE action_id = " . intval($id); + "SET action_state = '" . $app->dbmaster->quote($state) . "' " . + "WHERE action_id = " . intval($id); $app->dbmaster->query($sql); /* @@ -79,6 +80,8 @@ /** * This method searches for scheduled actions and exec then */ + + private function _execActions() { global $app; global $conf; @@ -95,16 +98,16 @@ * stop a service, a admin stopped some days before! To avoid this, we ignore * the status (it is only for the interface to show) and use our own maxid */ - include_once (dirname(__FILE__) . "/../lib/remote_action.inc.php"); + include_once SCRIPT_PATH."/lib/remote_action.inc.php"; /* * Get all actions this server should execute */ $sql = "SELECT action_id, action_type, action_param " . - "FROM sys_remoteaction " . - "WHERE server_id = " . $server_id . " ". - " AND action_id > " . intval($maxid_remote_action) . " ". - "ORDER BY action_id"; + "FROM sys_remoteaction " . + "WHERE server_id = " . $server_id . " ". + " AND action_id > " . intval($maxid_remote_action) . " ". + "ORDER BY action_id"; $actions = $app->dbmaster->queryAllRecords($sql); /* @@ -119,13 +122,54 @@ * we stop executing the actions not to waste more time */ return; } + if ($action['action_type'] == 'ispc_update') { /* do the update */ - $this->_doIspCUpdate($action); + // Update function has been removed + // $this->_doIspCUpdate($action); + /* this action takes so much time, + * we stop executing the actions not to waste more time */ + $this->_actionDone($action['action_id'], 'ok'); + } + if ($action['action_type'] == 'openvz_start_vm') { + $veid = intval($action['action_param']); + if($veid > 0) { + exec("vzctl start $veid"); + } + $this->_actionDone($action['action_id'], 'ok'); + } + if ($action['action_type'] == 'openvz_stop_vm') { + $veid = intval($action['action_param']); + if($veid > 0) { + exec("vzctl stop $veid"); + } + $this->_actionDone($action['action_id'], 'ok'); + } + if ($action['action_type'] == 'openvz_restart_vm') { + $veid = intval($action['action_param']); + if($veid > 0) { + exec("vzctl restart $veid"); + } + $this->_actionDone($action['action_id'], 'ok'); + } + if ($action['action_type'] == 'openvz_create_ostpl') { + $parts = explode(':', $action['action_param']); + $veid = intval($parts[0]); + $template_cache_dir = '/vz/template/cache/'; + $template_name = escapeshellcmd($parts[1]); + if($veid > 0 && $template_name != '' && is_dir($template_cache_dir)) { + $command = "vzdump --suspend --compress --stdexcludes --dumpdir $template_cache_dir $veid"; + exec($command); + exec("mv ".$template_cache_dir."vzdump-openvz-".$veid."*.tgz ".$template_cache_dir.$template_name.".tar.gz"); + exec("rm -f ".$template_cache_dir."vzdump-openvz-".$veid."*.log"); + } + $this->_actionDone($action['action_id'], 'ok'); /* this action takes so much time, * we stop executing the actions not to waste more time */ return; } + + } } } @@ -134,31 +178,31 @@ /* * Do the update */ - exec("aptitude update"); - exec("aptitude upgrade -y"); - - //TODO : change this when distribution information has been integrated into server record - if(file_exists('/etc/gentoo-release')) { - exec("glsa-check -f --nocolor affected"); - } - else { - exec("aptitude update"); - exec("aptitude safe-upgrade -y"); - } - - /* + exec("aptitude update"); + exec("aptitude safe-upgrade -y"); + + //TODO : change this when distribution information has been integrated into server record + if(file_exists('/etc/gentoo-release')) { + exec("glsa-check -f --nocolor affected"); + } + else { + exec("aptitude update"); + exec("aptitude safe-upgrade -y"); + } + + /* * All well done! */ $this->_actionDone($action['action_id'], 'ok'); } private function _doIspCUpdate($action) { - + // Ensure that this code is not executed twice as this would cause a loop in case of a failure $this->_actionDone($action['action_id'], 'ok'); - + /* - * Get the version-number of the newest version + * Get the version-number of the newest version */ $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt'); $new_version = trim($new_version); @@ -174,10 +218,10 @@ /* delete the old files (if there are any...) */ exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); exec("rm /tmp/ispconfig3_install -R"); - + /* get the newest version */ exec("wget http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz"); - + /* extract the files */ exec("tar xvfz ISPConfig-" . $new_version . ".tar.gz"); @@ -187,7 +231,7 @@ */ chdir("/tmp/ispconfig3_install/install"); exec("touch autoupdate"); - + /* * do some clean-up */ @@ -203,5 +247,7 @@ */ //$this->_actionDone($action['action_id'], 'ok'); } + } -?> \ No newline at end of file + +?> -- Gitblit v1.9.1