]> source.dussan.org Git - nextcloud-server.git/commitdiff
dont try to register background jobs if we haven't upgraded yet
authorRobin Appelman <icewind@owncloud.com>
Fri, 13 Dec 2013 12:30:29 +0000 (13:30 +0100)
committerVincent Petry <pvince81@owncloud.com>
Fri, 13 Dec 2013 16:15:18 +0000 (17:15 +0100)
lib/base.php
lib/public/backgroundjob.php

index d361b7768f9a143b23d344ba98acd8b06df33831..d3e483f49485f01c5400edc385bc5f52c3952ccc 100644 (file)
@@ -131,8 +131,8 @@ class OC {
                        OC::$THIRDPARTYROOT = rtrim(dirname(OC::$SERVERROOT), '/');
                } else {
                        throw new Exception('3rdparty directory not found! Please put the ownCloud 3rdparty'
-                               .' folder in the ownCloud folder or the folder above.'
-                               .' You can also configure the location in the config.php file.');
+                               . ' folder in the ownCloud folder or the folder above.'
+                               . ' You can also configure the location in the config.php file.');
                }
                // search the apps folder
                $config_paths = OC_Config::getValue('apps_paths', array());
@@ -156,7 +156,7 @@ class OC {
 
                if (empty(OC::$APPSROOTS)) {
                        throw new Exception('apps directory not found! Please put the ownCloud apps folder in the ownCloud folder'
-                               .' or the folder above. You can also configure the location in the config.php file.');
+                               . ' or the folder above. You can also configure the location in the config.php file.');
                }
                $paths = array();
                foreach (OC::$APPSROOTS as $path) {
@@ -176,7 +176,8 @@ class OC {
 
        public static function checkConfig() {
                if (file_exists(OC::$SERVERROOT . "/config/config.php")
-                       and !is_writable(OC::$SERVERROOT . "/config/config.php")) {
+                       and !is_writable(OC::$SERVERROOT . "/config/config.php")
+               ) {
                        $defaults = new OC_Defaults();
                        if (self::$CLI) {
                                echo "Can't write into config directory!\n";
@@ -188,7 +189,7 @@ class OC {
                                OC_Template::printErrorPage(
                                        "Can't write into config directory!",
                                        'This can usually be fixed by '
-                                               .'<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">giving the webserver write access to the config directory</a>.'
+                                       '<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">giving the webserver write access to the config directory</a>.'
                                );
                        }
                }
@@ -254,31 +255,42 @@ class OC {
                }
        }
 
-       public static function checkUpgrade($showTemplate = true) {
+       /**
+        * check if the instance needs to preform an upgrade
+        *
+        * @return bool
+        */
+       public static function needUpgrade() {
                if (OC_Config::getValue('installed', false)) {
                        $installedVersion = OC_Config::getValue('version', '0.0.0');
                        $currentVersion = implode('.', OC_Util::getVersion());
-                       if (version_compare($currentVersion, $installedVersion, '>')) {
-                               if ($showTemplate && !OC_Config::getValue('maintenance', false)) {
-                                       OC_Config::setValue('theme', '');
-                                       $minimizerCSS = new OC_Minimizer_CSS();
-                                       $minimizerCSS->clearCache();
-                                       $minimizerJS = new OC_Minimizer_JS();
-                                       $minimizerJS->clearCache();
-                                       OC_Util::addScript('config'); // needed for web root
-                                       OC_Util::addScript('update');
-                                       $tmpl = new OC_Template('', 'update.admin', 'guest');
-                                       $tmpl->assign('version', OC_Util::getVersionString());
-                                       $tmpl->printPage();
-                                       exit();
-                               } else {
-                                       return true;
-                               }
-                       }
+                       return version_compare($currentVersion, $installedVersion, '>');
+               } else {
                        return false;
                }
        }
 
+       public static function checkUpgrade($showTemplate = true) {
+               if (self::needUpgrade()) {
+                       if ($showTemplate && !OC_Config::getValue('maintenance', false)) {
+                               OC_Config::setValue('theme', '');
+                               $minimizerCSS = new OC_Minimizer_CSS();
+                               $minimizerCSS->clearCache();
+                               $minimizerJS = new OC_Minimizer_JS();
+                               $minimizerJS->clearCache();
+                               OC_Util::addScript('config'); // needed for web root
+                               OC_Util::addScript('update');
+                               $tmpl = new OC_Template('', 'update.admin', 'guest');
+                               $tmpl->assign('version', OC_Util::getVersionString());
+                               $tmpl->printPage();
+                               exit();
+                       } else {
+                               return true;
+                       }
+               }
+               return false;
+       }
+
        public static function initTemplateEngine() {
                // Add the stuff we need always
                OC_Util::addScript("jquery-1.10.0.min");
@@ -462,7 +474,7 @@ class OC {
                        // OC_Util::getInstanceId() for namespacing. See #5409.
                        try {
                                self::$loader->setMemoryCache(\OC\Memcache\Factory::createLowLatency('Autoloader'));
-                       } catch(\Exception $ex) {
+                       } catch (\Exception $ex) {
                        }
                }
                OC_Util::isSetLocaleWorking();
@@ -507,7 +519,7 @@ class OC {
                if (count($errors) > 0) {
                        if (self::$CLI) {
                                foreach ($errors as $error) {
-                                       echo $error['error']."\n";
+                                       echo $error['error'] . "\n";
                                        echo $error['hint'] . "\n\n";
                                }
                        } else {
@@ -602,13 +614,9 @@ class OC {
         * register hooks for the cache
         */
        public static function registerCacheHooks() {
-               if (OC_Config::getValue('installed', false)) { //don't try to do this before we are properly setup
-                       // register cache cleanup jobs
-                       try { //if this is executed before the upgrade to the new backgroundjob system is completed it will throw an exception
-                               \OCP\BackgroundJob::registerJob('OC\Cache\FileGlobalGC');
-                       } catch (Exception $e) {
+               if (OC_Config::getValue('installed', false) && !self::needUpgrade()) { //don't try to do this before we are properly setup
+                       \OCP\BackgroundJob::registerJob('OC\Cache\FileGlobalGC');
 
-                       }
                        // NOTE: This will be replaced to use OCP
                        $userSession = \OC_User::getUserSession();
                        $userSession->listen('postLogin', '\OC\Cache\File', 'loginListener');
@@ -619,14 +627,9 @@ class OC {
         * register hooks for the cache
         */
        public static function registerLogRotate() {
-               if (OC_Config::getValue('installed', false) && OC_Config::getValue('log_rotate_size', false)) {
+               if (OC_Config::getValue('installed', false) && OC_Config::getValue('log_rotate_size', false) && !self::needUpgrade()) {
                        //don't try to do this before we are properly setup
-                       // register cache cleanup jobs
-                       try { //if this is executed before the upgrade to the new backgroundjob system is completed it will throw an exception
-                               \OCP\BackgroundJob::registerJob('OC\Log\Rotate', OC_Config::getValue("datadirectory", OC::$SERVERROOT.'/data').'/owncloud.log');
-                       } catch (Exception $e) {
-
-                       }
+                       \OCP\BackgroundJob::registerJob('OC\Log\Rotate', OC_Config::getValue("datadirectory", OC::$SERVERROOT . '/data') . '/owncloud.log');
                }
        }
 
@@ -653,7 +656,7 @@ class OC {
         * register hooks for sharing
         */
        public static function registerShareHooks() {
-               if(\OC_Config::getValue('installed')) {
+               if (\OC_Config::getValue('installed')) {
                        OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser');
                        OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup');
                        OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup');
@@ -676,7 +679,7 @@ class OC {
                }
 
                $request = OC_Request::getPathInfo();
-               if(substr($request, -3) !== '.js') {// we need these files during the upgrade
+               if (substr($request, -3) !== '.js') { // we need these files during the upgrade
                        self::checkMaintenanceMode();
                        self::checkUpgrade();
                }
@@ -794,12 +797,10 @@ class OC {
                // auth possible via apache module?
                if (OC::tryApacheAuth()) {
                        $error[] = 'apacheauthfailed';
-               }
-               // remember was checked after last login
+               } // remember was checked after last login
                elseif (OC::tryRememberLogin()) {
                        $error[] = 'invalidcookie';
-               }
-               // logon via web form
+               } // logon via web form
                elseif (OC::tryFormLogin()) {
                        $error[] = 'invalidpassword';
                        if ( OC_Config::getValue('log_authfailip', false) ) {
index 1788c4e293da4775e805369f54b64e2baf46cc89..a7f54491dfabf16f047f0a54e04baf39e0b6dfd1 100644 (file)
@@ -45,6 +45,7 @@ use \OC\BackgroundJob\JobList;
 class BackgroundJob {
        /**
         * get the execution type of background jobs
+        *
         * @return string
         *
         * This method returns the type how background jobs are executed. If the user
@@ -56,6 +57,7 @@ class BackgroundJob {
 
        /**
         * sets the background jobs execution type
+        *
         * @param string $type execution type
         * @return boolean
         *
@@ -83,8 +85,10 @@ class BackgroundJob {
         * @return true
         */
        public static function addRegularTask($klass, $method) {
-               self::registerJob('OC\BackgroundJob\Legacy\RegularJob', array($klass, $method));
-               return true;
+               if (!\OC::needUpgrade()) {
+                       self::registerJob('OC\BackgroundJob\Legacy\RegularJob', array($klass, $method));
+                       return true;
+               }
        }
 
        /**