From 5a43e7a2ea0cf7af35c100cb67e4a53566cbc496 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 03 Feb 2012 05:58:01 -0500
Subject: [PATCH] - Implemented new backup and restore functions for websites and databases (see also FS#1389) - Added "actions" framework in server to replace the functions provided by the core modules - Moved system update function from remoteactins core module to software update plugin.
---
server/plugins-available/software_update_plugin.inc.php | 34 ++++++++++++++++++++++++++++------
1 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/server/plugins-available/software_update_plugin.inc.php b/server/plugins-available/software_update_plugin.inc.php
index 55feaee..a6b7162 100644
--- a/server/plugins-available/software_update_plugin.inc.php
+++ b/server/plugins-available/software_update_plugin.inc.php
@@ -1,7 +1,7 @@
<?php
/*
-Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007-2012, 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() {
+ public function onInstall() {
global $conf;
return true;
@@ -47,29 +47,31 @@
This function is called when the plugin is loaded
*/
- function onLoad() {
+ public function onLoad() {
global $app;
/*
Register for the events
*/
- //* Mailboxes
$app->plugins->registerEvent('software_update_inst_insert',$this->plugin_name,'process');
//$app->plugins->registerEvent('software_update_inst_update',$this->plugin_name,'process');
//$app->plugins->registerEvent('software_update_inst_delete',$this->plugin_name,'process');
+ //* Register for actions
+ $app->plugins->registerAction('os_update',$this->plugin_name,'os_update');
+
}
- function set_install_status($inst_id, $status) {
+ private function set_install_status($inst_id, $status) {
global $app;
$app->db->query("UPDATE software_update_inst SET status = '{$status}' WHERE software_update_inst_id = '{$inst_id}'");
$app->dbmaster->query("UPDATE software_update_inst SET status = '{$status}' WHERE software_update_inst_id = '{$inst_id}'");
}
- function process($event_name,$data) {
+ public function process($event_name,$data) {
global $app, $conf;
//* Get the info of the package:
@@ -271,6 +273,26 @@
}
}
+
+ //* Operating system update
+ public function os_update($action_name,$data) {
+ global $app;
+
+ //** Debian and compatible Linux distributions
+ if(file_exists('/etc/debian_version')) {
+ exec("aptitude update");
+ exec("aptitude safe-upgrade -y");
+ $app->log('Execeuted Debian / Ubuntu update',LOGLEVEL_DEBUG);
+ }
+
+ //** Gentoo Linux
+ if(file_exists('/etc/gentoo-release')) {
+ exec("glsa-check -f --nocolor affected");
+ $app->log('Execeuted Gentoo update',LOGLEVEL_DEBUG);
+ }
+
+ return 'ok';
+ }
} // end class
--
Gitblit v1.9.1