示例#1
0
    public function testAddToNotExistingFile()
    {
        unlink($this->tmpStatusFilePath);
        $this->assertFalse(file_exists($this->tmpStatusFilePath), "Precondition failed.");
        $status = new \Magento\Update\Status($this->tmpStatusFilePath);
        $statusUpdate = <<<STATUS_UPDATE
Praesent blandit dolor.
Sed non quam.
STATUS_UPDATE;
        $status->add($statusUpdate, $this->tmpStatusFilePath);
        $this->verifyAddedStatus($statusUpdate, $this->tmpStatusFilePath, 1);
    }
<?php

/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
require_once __DIR__ . '/app/bootstrap.php';
$status = new \Magento\Update\Status();
$statusMessage = $status->get(10);
$isUpdateInProgress = $status->isUpdateInProgress();
/** TODO: Section below is added for demo purposes */
$status->add("Message #" . rand(1, 1000));
if (!$statusMessage) {
    $statusMessage = 'Please wait for job processing to start.';
}
$statusMessage = str_replace("\n", "<br />", $statusMessage);
//$isUpdateInProgress = (bool)rand(0, 1);
/** TODO: End of section added for demo */
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    /* Ajax request processing */
    echo json_encode(['statusMessage' => $statusMessage, 'isUpdateInProgress' => $isUpdateInProgress]);
} else {
    include __DIR__ . '/app/code/Magento/Update/view/templates/status.phtml';
}
示例#3
0
header('X-XSS-Protection: ' . $xssHeaderValue);
$status = new \Magento\Update\Status();
$isUpdateInProgress = $status->isUpdateInProgress();
$statusMessage = '';
$statusMessage .= $status->get();
$statusMessage = str_replace("\n", "<br />", $statusMessage);
$queue = new \Magento\Update\Queue();
$pending = !$status->isUpdateInProgress() && !$queue->isEmpty() && !$status->isUpdateError();
if (isset($_SERVER['PATH_INFO']) && !empty($_SERVER['PATH_INFO'])) {
    if ($_SERVER['PATH_INFO'] === '/rollback' && file_exists(MAGENTO_BP . '/var/.update_error.flag')) {
        try {
            $queue->clear();
            $backupInfo = new \Magento\Update\Backup\BackupInfo();
            $backupPaths = $backupInfo->getBackupFilePaths();
            if (isset($backupPaths['error'])) {
                $status->add('WARNING: There is a problem with backup files! Performing rollback from these' . ' files may cause the Magento application to be unstable', \Psr\Log\LogLevel::WARNING);
                foreach ($backupPaths['error'] as $error) {
                    $status->add($error, \Psr\Log\LogLevel::WARNING);
                }
                unset($backupPaths['error']);
            }
            foreach (array_values($backupPaths) as $backupPath) {
                $queue->addJobs(['jobs' => ['name' => $backupPath['type'], 'params' => ['backup_file_name' => $backupPath['filename']]]]);
            }
            $status->setUpdateError(false);
        } catch (\Exception $e) {
            $status->setUpdateError(true);
            $status->add('Error in Rollback:' . $e->getMessage(), \Psr\Log\LogLevel::ERROR);
        }
    } elseif ($_SERVER['PATH_INFO'] === '/status') {
        $complete = !$status->isUpdateInProgress() && $queue->isEmpty() && !$status->isUpdateError();
require_once __DIR__ . '/app/bootstrap.php';
$status = new \Magento\Update\Status();
$cronReadinessChecker = new \Magento\Update\CronReadinessCheck();
if (!$cronReadinessChecker->runReadinessCheck()) {
    exit('Cron readiness check failed');
}
if ($status->isUpdateInProgress()) {
    exit('Cron is already in progress...');
}
if ($status->isUpdateError()) {
    exit('There was an error in previous Updater jobs...');
}
$backupDirectory = BACKUP_DIR;
if (!file_exists($backupDirectory)) {
    if (!mkdir($backupDirectory)) {
        $status->add(sprintf('Backup directory "%s" cannot be created.', $backupDirectory));
        exit;
    }
    chmod($backupDirectory, 0770);
}
try {
    $status->setUpdateInProgress();
} catch (\RuntimeException $e) {
    $status->add($e->getMessage());
    exit;
}
$jobQueue = new \Magento\Update\Queue();
try {
    while (!empty($jobQueue->peek()) && strpos($jobQueue->peek()[\Magento\Update\Queue::KEY_JOB_NAME], 'setup:') === false) {
        $job = $jobQueue->popQueuedJob();
        $status->add(sprintf('Job "%s" has been started', $job));
header('X-Frame-Options: SAMEORIGIN');
$status = new \Magento\Update\Status();
$isUpdateInProgress = $status->isUpdateInProgress();
$statusMessage = '';
$statusMessage .= $status->get();
$statusMessage = str_replace("\n", "<br />", $statusMessage);
$queue = new \Magento\Update\Queue();
$pending = !$status->isUpdateInProgress() && !$queue->isEmpty() && !$status->isUpdateError();
if (isset($_SERVER['PATH_INFO']) && !empty($_SERVER['PATH_INFO'])) {
    if ($_SERVER['PATH_INFO'] === '/rollback' && file_exists(MAGENTO_BP . '/var/.update_error.flag')) {
        try {
            $queue->clear();
            $backupInfo = new \Magento\Update\Backup\BackupInfo();
            $backupPaths = $backupInfo->getBackupFilePaths();
            if (isset($backupPaths['error'])) {
                $status->add('WARNING: There is a problem with backup files! Performing rollback from these' . ' files may cause the Magento application to be unstable');
                foreach ($backupPaths['error'] as $error) {
                    $status->add($error);
                }
                unset($backupPaths['error']);
            }
            foreach (array_values($backupPaths) as $backupPath) {
                $queue->addJobs(['jobs' => ['name' => $backupPath['type'], 'params' => ['backup_file_name' => $backupPath['filename']]]]);
            }
            $status->setUpdateError(false);
        } catch (\Exception $e) {
            $status->setUpdateError(true);
            $status->add('Error in Rollback:' . $e->getMessage());
        }
    } elseif ($_SERVER['PATH_INFO'] === '/status') {
        $complete = !$status->isUpdateInProgress() && $queue->isEmpty() && !$status->isUpdateError();
示例#6
0
 */
require_once __DIR__ . '/app/bootstrap.php';
/**
 * Update cron exit codes
 */
const UPDATE_CRON_NORMAL_EXIT = 0;
const UPDATE_CRON_EXIT_WITH_ERROR = 1;
$status = new \Magento\Update\Status();
$cronReadinessChecker = new \Magento\Update\CronReadinessCheck();
$notification = 'update-cron: Please check var/log/update.log for execution summary.' . PHP_EOL;
if (!$cronReadinessChecker->runReadinessCheck()) {
    print $notification;
    exit(UPDATE_CRON_EXIT_WITH_ERROR);
}
if ($status->isUpdateInProgress()) {
    $status->add('Update is already in progress.', \Psr\Log\LogLevel::WARNING);
    print $notification;
    exit(UPDATE_CRON_EXIT_WITH_ERROR);
}
if ($status->isUpdateError()) {
    $status->add('There was an error in previous Update attempt.');
    print $notification;
    exit(UPDATE_CRON_EXIT_WITH_ERROR);
}
$backupDirectory = BACKUP_DIR;
if (!file_exists($backupDirectory)) {
    if (!mkdir($backupDirectory)) {
        $status->add(sprintf('Backup directory, "%s" cannot be created.', $backupDirectory), \Psr\Log\LogLevel::ERROR);
        print $notification;
        exit(UPDATE_CRON_EXIT_WITH_ERROR);
    }