try to fix github actions with new install/froxlor.sql.php; migrate update-functions into class

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2022-04-28 17:42:41 +02:00
parent 6cc8ab0fb4
commit 450c682e7f
8 changed files with 152 additions and 189 deletions

View File

@@ -19,7 +19,7 @@ jobs:
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
tools: composer:v2 tools: composer:v2
extensions: mbstring, xml, ctype, pdo_mysql, mysql, curl, json, zip, session, filter, posix, openssl, fileinfo, bcmath extensions: mbstring, xml, ctype, pdo_mysql, mysql, curl, json, zip, session, filter, posix, openssl, fileinfo, bcmath, gmp
- name: Install tools - name: Install tools
run: sudo apt-get install -y ant run: sudo apt-get install -y ant
@@ -43,7 +43,8 @@ jobs:
run: | run: |
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'froxlor010'@'%' IDENTIFIED BY 'fr0xl0r.TravisCI';" mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'froxlor010'@'%' IDENTIFIED BY 'fr0xl0r.TravisCI';"
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON froxlor010.* TO 'froxlor010'@'%';" mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON froxlor010.* TO 'froxlor010'@'%';"
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI froxlor010 < install/froxlor.sql php -r "echo include('install/froxlor.sql.php');" > /tmp/froxlor.sql
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI froxlor010 < /tmp/froxlor.sql
- name: Run testing - name: Run testing
run: ant quick-build run: ant quick-build

View File

@@ -19,7 +19,7 @@ jobs:
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
tools: composer:v2 tools: composer:v2
extensions: mbstring, xml, ctype, pdo_mysql, mysql, curl, json, zip, session, filter, posix, openssl, fileinfo, bcmath extensions: mbstring, xml, ctype, pdo_mysql, mysql, curl, json, zip, session, filter, posix, openssl, fileinfo, bcmath, gmp
- name: Install tools - name: Install tools
run: sudo apt-get install -y ant run: sudo apt-get install -y ant
@@ -44,14 +44,16 @@ jobs:
run: | run: |
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'froxlor010'@'%' IDENTIFIED WITH mysql_native_password BY 'fr0xl0r.TravisCI';" mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'froxlor010'@'%' IDENTIFIED WITH mysql_native_password BY 'fr0xl0r.TravisCI';"
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON froxlor010.* TO 'froxlor010'@'%';" mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON froxlor010.* TO 'froxlor010'@'%';"
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI froxlor010 < install/froxlor.sql php -r "echo include('install/froxlor.sql.php');" > /tmp/froxlor.sql
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI froxlor010 < /tmp/froxlor.sql
- name: Setup database (5.7) - name: Setup database (5.7)
if: matrix.mysql-version == '5.7' if: matrix.mysql-version == '5.7'
run: | run: |
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'froxlor010'@'%' IDENTIFIED BY 'fr0xl0r.TravisCI';" mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'froxlor010'@'%' IDENTIFIED BY 'fr0xl0r.TravisCI';"
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON froxlor010.* TO 'froxlor010'@'%';" mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON froxlor010.* TO 'froxlor010'@'%';"
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI froxlor010 < install/froxlor.sql php -r "echo include('install/froxlor.sql.php');" > /tmp/froxlor.sql
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI froxlor010 < /tmp/froxlor.sql
- name: Run testing - name: Run testing
run: ant quick-build run: ant quick-build

View File

@@ -1,64 +0,0 @@
language: php
dist: bionic
services:
- docker
php:
- 7.3
branches:
only:
- master
- namespaces
matrix:
include:
- php: 7.3
env: "DOCKER_MYSQL_TYPE=mysql DOCKER_MYSQL_VERSION=5.6"
- php: 7.3
env: "DOCKER_MYSQL_TYPE=mysql DOCKER_MYSQL_VERSION=5.7"
- php: 7.3
env: "DOCKER_MYSQL_TYPE=mysql DOCKER_MYSQL_VERSION=8.0 STARTCMD='mysqld --default-authentication-plugin=mysql_native_password'"
- php: 7.3
env: "DOCKER_MYSQL_TYPE=mariadb DOCKER_MYSQL_VERSION=10.3"
- php: 7.3
env: "DOCKER_MYSQL_TYPE=mariadb DOCKER_MYSQL_VERSION=10.4"
addons:
apt:
update: true
before_install:
- export MYSQL_DATABASE=froxlor010
- docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=fr0xl0r.TravisCI -e MYSQL_DATABASE=$MYSQL_DATABASE -p 3306:3306 $DOCKER_MYSQL_TYPE:$DOCKER_MYSQL_VERSION $STARTCMD
- sudo apt-get install -y ant
- >
export tries=0;
export max_tries=20;
while [[ true ]]; do
tries=$((tries + 1));
echo "waiting for database server to start up... [$tries]";
sleep 5;
# Now see that today's table is there, which would indicate that the cron job ran.
mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -s -e 'SHOW VARIABLES LIKE "%version%";'
look_exit=$?;
if [[ "$look_exit" = "0" ]]; then echo "Database server successfully started"; break; fi;
if [[ "$tries" -ge "$max_tries" ]]; then echo "Database server did not start in time"; exit 1; break; fi;
done;
install:
- mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE DATABASE IF NOT EXISTS froxlor010;"
- mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "CREATE USER 'froxlor010'@'%' IDENTIFIED BY 'fr0xl0r.TravisCI';"
- mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI -e "GRANT ALL ON froxlor010.* TO 'froxlor010'@'%';"
- mysql -h 127.0.0.1 --protocol=TCP -u root -pfr0xl0r.TravisCI froxlor010 < install/froxlor.sql
script:
- ant phpunit-no-coverage
notifications:
irc: "irc.libera.chat#froxlor"
webhooks:
urls:
- https://webhooks.gitter.im/e/bdf91d1c3f745e51f796
on_success: always
on_failure: always
on_start: never

View File

@@ -1,84 +0,0 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2010 the Froxlor Team (see authors).
*
* For the full copyright and license information, please view the COPYING
* file that was distributed with this source code. You can also view the
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
*
* @copyright (c) the authors
* @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Functions
*
*/
/**
* Function showUpdateStep
*
* stores and logs the current update progress
*
* @param string $task
* @param bool $needs_status (if false, a linebreak will be added)
*
* @return void
*/
function showUpdateStep($task = null, $needs_status = true)
{
global $update_tasks, $task_counter;
set_time_limit(30);
// output
$update_tasks[$task_counter] = ['title' => $task, 'result' => 0];
if (!$needs_status) {
$task_counter++;
}
\Froxlor\FroxlorLogger::getInstanceOf()->logAction(\Froxlor\FroxlorLogger::ADM_ACTION, LOG_WARNING, $task);
}
/**
* Function lastStepStatus
*
* outputs status of the last update-step
*
* @param int $status (0 = success, 1 = warning, 2 = failure)
* @param string $message
* @param string $additional_info
*
* @return string formatted output and log-entry
*/
function lastStepStatus(int $status = -1, string $message = '', string $additional_info = '')
{
global $update_tasks, $task_counter;
$update_tasks[$task_counter]['result_txt'] = $message ?? 'OK';
$update_tasks[$task_counter]['result_desc'] = $additional_info ?? '';
switch ($status) {
case 0:
break;
case 1:
$update_tasks[$task_counter]['result'] = 2;
break;
case 2:
$update_tasks[$task_counter]['result'] = 1;
break;
default:
$update_tasks[$task_counter]['result'] = -1;
break;
}
$task_counter++;
if ($status == -1 || $status == 2) {
\Froxlor\FroxlorLogger::getInstanceOf()->logAction(\Froxlor\FroxlorLogger::ADM_ACTION, LOG_WARNING, 'Attention - last update task failed!!!');
} elseif ($status == 0 || $status == 1) {
\Froxlor\FroxlorLogger::getInstanceOf()->logAction(\Froxlor\FroxlorLogger::ADM_ACTION, LOG_WARNING, 'Success');
}
}

View File

@@ -23,8 +23,10 @@
* @license http://files.froxlor.org/misc/COPYING.txt GPLv2 * @license http://files.froxlor.org/misc/COPYING.txt GPLv2
*/ */
use Froxlor\Froxlor;
use Froxlor\Database\Database; use Froxlor\Database\Database;
use Froxlor\Settings; use Froxlor\Settings;
use Froxlor\Install\Update;
if (!defined('_CRON_UPDATE')) { if (!defined('_CRON_UPDATE')) {
if (!defined('AREA') || (defined('AREA') && AREA != 'admin') || !isset($userinfo['loginname']) || (isset($userinfo['loginname']) && $userinfo['loginname'] == '')) { if (!defined('AREA') || (defined('AREA') && AREA != 'admin') || !isset($userinfo['loginname']) || (isset($userinfo['loginname']) && $userinfo['loginname'] == '')) {
@@ -34,21 +36,21 @@ if (!defined('_CRON_UPDATE')) {
} }
// last 0.10.x release // last 0.10.x release
if (\Froxlor\Froxlor::isFroxlorVersion('0.10.99')) { if (Froxlor::isFroxlorVersion('0.10.99')) {
showUpdateStep("Updating from 0.10.99 to 0.11.0-dev1", false); Update::showUpdateStep("Updating from 0.10.99 to 0.11.0-dev1", false);
showUpdateStep("Removing unused table"); Update::showUpdateStep("Removing unused table");
Database::query("DROP TABLE IF EXISTS `panel_sessions`;"); Database::query("DROP TABLE IF EXISTS `panel_sessions`;");
Database::query("DROP TABLE IF EXISTS `panel_languages`;"); Database::query("DROP TABLE IF EXISTS `panel_languages`;");
lastStepStatus(0); Update::lastStepStatus(0);
showUpdateStep("Updating froxlor - theme"); Update::showUpdateStep("Updating froxlor - theme");
Database::query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `theme` = 'Froxlor' WHERE `theme` <> 'Froxlor';"); Database::query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `theme` = 'Froxlor' WHERE `theme` <> 'Froxlor';");
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `theme` = 'Froxlor' WHERE `theme` <> 'Froxlor';"); Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `theme` = 'Froxlor' WHERE `theme` <> 'Froxlor';");
Settings::Set('panel.default_theme', 'Froxlor'); Settings::Set('panel.default_theme', 'Froxlor');
lastStepStatus(0); Update::lastStepStatus(0);
showUpdateStep("Creating new tables and fields"); Update::showUpdateStep("Creating new tables and fields");
Database::query("DROP TABLE IF EXISTS `panel_usercolumns`;"); Database::query("DROP TABLE IF EXISTS `panel_usercolumns`;");
$sql = "CREATE TABLE `panel_usercolumns` ( $sql = "CREATE TABLE `panel_usercolumns` (
`adminid` int(11) NOT NULL default '0', `adminid` int(11) NOT NULL default '0',
@@ -60,10 +62,10 @@ if (\Froxlor\Froxlor::isFroxlorVersion('0.10.99')) {
KEY customerid (customerid) KEY customerid (customerid)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;"; ) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;";
Database::query($sql); Database::query($sql);
lastStepStatus(0); Update::lastStepStatus(0);
showUpdateStep("Cleaning up old files"); Update::showUpdateStep("Cleaning up old files");
$to_clean = array( $to_clean = array(
"install/lib", "install/lib",
"install/lng", "install/lng",
@@ -93,22 +95,22 @@ if (\Froxlor\Froxlor::isFroxlorVersion('0.10.99')) {
} }
} }
if ($exec_allowed) { if ($exec_allowed) {
lastStepStatus(0); Update::lastStepStatus(0);
} else { } else {
if (empty($del_list)) { if (empty($del_list)) {
// none of the files existed // none of the files existed
lastStepStatus(0); Update::lastStepStatus(0);
} else { } else {
lastStepStatus(1, 'manual commands needed', 'Please run the following commands manually:<br><pre>' . $del_list . '</pre>'); Update::lastStepStatus(1, 'manual commands needed', 'Please run the following commands manually:<br><pre>' . $del_list . '</pre>');
} }
} }
showUpdateStep("Adding new settings"); Update::showUpdateStep("Adding new settings");
$panel_settings_mode = isset($_POST['panel_settings_mode']) ? (int) $_POST['panel_settings_mode'] : 0; $panel_settings_mode = isset($_POST['panel_settings_mode']) ? (int) $_POST['panel_settings_mode'] : 0;
Settings::AddNew("panel.settings_mode", $panel_settings_mode); Settings::AddNew("panel.settings_mode", $panel_settings_mode);
lastStepStatus(0); Update::lastStepStatus(0);
showUpdateStep("Adjusting existing settings"); Update::showUpdateStep("Adjusting existing settings");
Settings::Set('system.passwordcryptfunc', PASSWORD_DEFAULT); Settings::Set('system.passwordcryptfunc', PASSWORD_DEFAULT);
// remap default-language // remap default-language
$lang_map = [ $lang_map = [
@@ -122,11 +124,11 @@ if (\Froxlor\Froxlor::isFroxlorVersion('0.10.99')) {
'&#268;esk&aacute; republika' => 'cs' '&#268;esk&aacute; republika' => 'cs'
]; ];
Settings::Set('panel.standardlanguage', $lang_map[Settings::Get('panel_standardlanguage')] ?? 'en'); Settings::Set('panel.standardlanguage', $lang_map[Settings::Get('panel_standardlanguage')] ?? 'en');
lastStepStatus(0); Update::lastStepStatus(0);
if (\Froxlor\Froxlor::isFroxlorVersion('0.10.99')) { if (Froxlor::isFroxlorVersion('0.10.99')) {
showUpdateStep("Updating from 0.10.99 to 0.11.0-dev1", false); Update::showUpdateStep("Updating from 0.10.99 to 0.11.0-dev1", false);
\Froxlor\Froxlor::updateToVersion('0.11.0-dev1'); Froxlor::updateToVersion('0.11.0-dev1');
} }
} }

View File

@@ -23,6 +23,9 @@
* @license http://files.froxlor.org/misc/COPYING.txt GPLv2 * @license http://files.froxlor.org/misc/COPYING.txt GPLv2
*/ */
use Froxlor\Froxlor;
use Froxlor\FileDir;
/** /**
* Function getPreConfig * Function getPreConfig
* *
@@ -38,7 +41,7 @@ function getPreConfig($current_version, $current_db_version): array
{ {
$has_preconfig = false; $has_preconfig = false;
include_once \Froxlor\FileDir::makeCorrectFile(dirname(__FILE__) . '/preconfig/0.11/preconfig_0.11.inc.php'); include_once FileDir::makeCorrectFile(dirname(__FILE__) . '/preconfig/0.11/preconfig_0.11.inc.php');
$return['section_011'] = [ $return['section_011'] = [
'title' => '0.11.x updates', 'title' => '0.11.x updates',
'fields' => [] 'fields' => []
@@ -69,9 +72,9 @@ function getPreConfig($current_version, $current_db_version): array
function versionInUpdate($current_version, $version_to_check) function versionInUpdate($current_version, $version_to_check)
{ {
if (!\Froxlor\Froxlor::isFroxlor()) { if (!Froxlor::isFroxlor()) {
return true; return true;
} }
return \Froxlor\Froxlor::versionCompare2($current_version, $version_to_check) == -1; return Froxlor::versionCompare2($current_version, $version_to_check) == -1;
} }

View File

@@ -23,9 +23,12 @@
* @license http://files.froxlor.org/misc/COPYING.txt GPLv2 * @license http://files.froxlor.org/misc/COPYING.txt GPLv2
*/ */
use Froxlor\Froxlor;
use Froxlor\Filedir;
use Froxlor\FroxlorLogger; use Froxlor\FroxlorLogger;
use Froxlor\UI\Response;
require_once __DIR__ . '/lib/updateFunctions.php'; use Froxlor\Database\IntegrityCheck;
use Froxlor\Install\Update;
if (!defined('_CRON_UPDATE')) { if (!defined('_CRON_UPDATE')) {
if (!defined('AREA') || (defined('AREA') && AREA != 'admin') || !isset($userinfo['loginname']) || (isset($userinfo['loginname']) && $userinfo['loginname'] == '')) { if (!defined('AREA') || (defined('AREA') && AREA != 'admin') || !isset($userinfo['loginname']) || (isset($userinfo['loginname']) && $userinfo['loginname'] == '')) {
@@ -41,35 +44,35 @@ $filelog = FroxlorLogger::getInstanceOf(array(
// if first writing does not work we'll stop, tell the user to fix it // if first writing does not work we'll stop, tell the user to fix it
// and then let him try again. // and then let him try again.
try { try {
$filelog->logAction(\Froxlor\FroxlorLogger::ADM_ACTION, LOG_WARNING, '-------------- START LOG --------------'); $filelog->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, '-------------- START LOG --------------');
} catch (Exception $e) { } catch (Exception $e) {
\Froxlor\UI\Response::standard_error('exception', $e->getMessage()); Response::standard_error('exception', $e->getMessage());
} }
if (\Froxlor\Froxlor::isFroxlor()) { if (Froxlor::isFroxlor()) {
// will be filled and increased by the update include-files below // will be filled and increased by the update include-files below
$update_tasks = []; $update_tasks = [];
$task_counter = 0; $task_counter = 0;
include_once(\Froxlor\FileDir::makeCorrectFile(dirname(__FILE__) . '/updates/froxlor/0.11/update_0.11.inc.php')); include_once(FileDir::makeCorrectFile(dirname(__FILE__) . '/updates/froxlor/0.11/update_0.11.inc.php'));
// Check Froxlor - database integrity (only happens after all updates are done, so we know the db-layout is okay) // Check Froxlor - database integrity (only happens after all updates are done, so we know the db-layout is okay)
showUpdateStep("Checking database integrity"); Update::showUpdateStep("Checking database integrity");
$integrity = new \Froxlor\Database\IntegrityCheck(); $integrity = new IntegrityCheck();
if (!$integrity->checkAll()) { if (!$integrity->checkAll()) {
lastStepStatus(1, 'Monkeys ate the integrity'); Update::lastStepStatus(1, 'Monkeys ate the integrity');
showUpdateStep("Trying to remove monkeys, feeding bananas"); Update::showUpdateStep("Trying to remove monkeys, feeding bananas");
if (!$integrity->fixAll()) { if (!$integrity->fixAll()) {
lastStepStatus(2, 'failed', 'Some monkeys just would not move, you should contact team@froxlor.org'); Update::lastStepStatus(2, 'failed', 'Some monkeys just would not move, you should contact team@froxlor.org');
} else { } else {
lastStepStatus(0, 'Integrity restored'); Update::lastStepStatus(0, 'Integrity restored');
} }
} else { } else {
lastStepStatus(0); Update::lastStepStatus(0);
} }
$filelog->logAction(\Froxlor\FroxlorLogger::ADM_ACTION, LOG_WARNING, '--------------- END LOG ---------------'); $filelog->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, '--------------- END LOG ---------------');
unset($filelog); unset($filelog);
} }

View File

@@ -0,0 +1,100 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2010 the Froxlor Team (see authors).
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you can also view it online at
* http://files.froxlor.org/misc/COPYING.txt
*
* @copyright the authors
* @author Froxlor team <team@froxlor.org>
* @license http://files.froxlor.org/misc/COPYING.txt GPLv2
*/
namespace Froxlor\Install;
use Froxlor\FroxlorLogger;
class Update
{
/**
* Function showUpdateStep
*
* stores and logs the current update progress
*
* @param string $task
* @param bool $needs_status (if false, a linebreak will be added)
*
* @return void
*/
public static function showUpdateStep($task = null, $needs_status = true)
{
global $update_tasks, $task_counter;
set_time_limit(30);
// output
$update_tasks[$task_counter] = ['title' => $task, 'result' => 0];
if (!$needs_status) {
$task_counter++;
}
FroxlorLogger::getInstanceOf()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, $task);
}
/**
* Function lastStepStatus
*
* outputs status of the last update-step
*
* @param int $status (0 = success, 1 = warning, 2 = failure)
* @param string $message
* @param string $additional_info
*
* @return string formatted output and log-entry
*/
public static function lastStepStatus(int $status = -1, string $message = '', string $additional_info = '')
{
global $update_tasks, $task_counter;
$update_tasks[$task_counter]['result_txt'] = $message ?? 'OK';
$update_tasks[$task_counter]['result_desc'] = $additional_info ?? '';
switch ($status) {
case 0:
break;
case 1:
$update_tasks[$task_counter]['result'] = 2;
break;
case 2:
$update_tasks[$task_counter]['result'] = 1;
break;
default:
$update_tasks[$task_counter]['result'] = -1;
break;
}
$task_counter++;
if ($status == -1 || $status == 2) {
FroxlorLogger::getInstanceOf()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, 'Attention - last update task failed!!!');
} elseif ($status == 0 || $status == 1) {
FroxlorLogger::getInstanceOf()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, 'Success');
}
}
}