Пример #1
0
 function upgrade()
 {
     global $thisstaff, $ost;
     if (!$thisstaff or !$thisstaff->isAdmin() or !$ost) {
         Http::response(403, 'Access Denied');
     }
     $upgrader = new Upgrader($ost->getDBSignature(), TABLE_PREFIX, SQL_DIR);
     //Just report the next action on the first call.
     if (!$_SESSION['ost_upgrader'] || !$_SESSION['ost_upgrader'][$upgrader->getShash()]['progress']) {
         $_SESSION['ost_upgrader'][$upgrader->getShash()]['progress'] = $upgrader->getNextAction();
         Http::response(200, $upgrader->getNextAction());
         exit;
     }
     if ($upgrader->isAborted()) {
         Http::response(416, "We have a problem ... wait a sec.");
         exit;
     }
     if ($upgrader->getNumPendingTasks() && $upgrader->doTasks()) {
         //More pending tasks - doTasks returns the number of pending tasks
         Http::response(200, $upgrader->getNextAction());
         exit;
     } elseif ($ost->isUpgradePending()) {
         if ($upgrader->isUpgradable()) {
             $version = $upgrader->getNextVersion();
             if ($upgrader->upgrade()) {
                 //We're simply reporting progress here - call back will report next action'
                 Http::response(200, "Upgraded to {$version} ... post-upgrade checks!");
                 exit;
             }
         } else {
             //Abort: Upgrade pending but NOT upgradable - invalid or wrong hash.
             $upgrader->abort(sprintf('Upgrade Failed: Invalid or wrong hash [%s]', $ost->getDBSignature()));
         }
     } elseif (!$ost->isUpgradePending()) {
         $upgrader->setState('done');
         session_write_close();
         Http::response(201, "We're done!");
         exit;
     }
     if ($upgrader->isAborted() || $upgrader->getErrors()) {
         Http::response(416, "We have a problem ... wait a sec.");
         exit;
     }
     Http::response(200, $upgrader->getNextAction());
 }
Пример #2
0
 function upgrade()
 {
     global $thisstaff, $ost;
     if (!$thisstaff or !$thisstaff->isAdmin() or !$ost) {
         Http::response(403, 'Access Denied');
     }
     $upgrader = new Upgrader(TABLE_PREFIX, UPGRADE_DIR . 'streams/');
     if ($upgrader->isAborted()) {
         Http::response(416, __("We have a problem ... wait a sec."));
         exit;
     }
     if ($upgrader->getTask() && $upgrader->doTask()) {
         //More pending tasks - doTasks returns the number of pending tasks
         Http::response(200, $upgrader->getNextAction());
         exit;
     } elseif ($ost->isUpgradePending()) {
         if ($upgrader->isUpgradable()) {
             $version = $upgrader->getNextVersion();
             if ($upgrader->upgrade()) {
                 //We're simply reporting progress here - call back will report next action'
                 Http::response(200, sprintf(__("Upgraded to %s ... post-upgrade checks!"), $version));
                 exit;
             }
         } else {
             //Abort: Upgrade pending but NOT upgradable - invalid or wrong hash.
             $upgrader->abort(sprintf(__('Upgrade Failed: Invalid or wrong hash [%s]'), $ost->getDBSignature()));
         }
     } elseif (!$ost->isUpgradePending()) {
         $upgrader->setState('done');
         session_write_close();
         Http::response(201, __("We're done!"));
         exit;
     }
     if ($upgrader->isAborted() || $upgrader->getErrors()) {
         Http::response(416, __("We have a problem ... wait a sec."));
         exit;
     }
     Http::response(200, $upgrader->getNextAction());
 }
Пример #3
0
            } elseif (!$upgrader->isUpgradable()) {
                $errors['err'] = __('The upgrader does NOT support upgrading from the current vesion!');
            } elseif (!$upgrader->check_prereq()) {
                $errors['prereq'] = __('Minimum requirements not met! Refer to Release Notes for more information');
            } elseif (!strcasecmp(basename(CONFIG_FILE), 'settings.php')) {
                $errors['err'] = __('Config file rename required to continue!');
            } else {
                $upgrader->setState('upgrade');
            }
            break;
        case 'upgrade':
            //Manual upgrade.... when JS (ajax) is not supported.
            if ($upgrader->getTask()) {
                $upgrader->doTask();
            } elseif ($ost->isUpgradePending() && $upgrader->isUpgradable()) {
                $upgrader->upgrade();
            } elseif (!$ost->isUpgradePending()) {
                $upgrader->setState('done');
            }
            if ($errors = $upgrader->getErrors()) {
                $upgrader->setState('aborted');
            }
            break;
        default:
            $errors['err'] = __('Unknown action');
    }
}
switch (strtolower($upgrader->getState())) {
    case 'aborted':
        $inc = 'aborted.inc.php';
        break;