1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- /**
- * Copyright © 2013-2017 Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- require_once __DIR__ . '/app/bootstrap.php';
- if (PHP_SAPI != 'cli') {
- header('X-Frame-Options: SAMEORIGIN');
- header('X-Content-Type-Options: nosniff');
- if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8') === false) {
- $xssHeaderValue = '1; mode=block';
- } else {
- $xssHeaderValue = '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();
- if ($complete) {
- $status->clear();
- }
- echo json_encode(
- [
- 'statusMessage' => $statusMessage,
- 'isUpdateInProgress' => $isUpdateInProgress,
- 'complete' => $complete,
- 'error' => $status->isUpdateError(),
- 'pending' => $pending,
- ]
- );
- }
- } else {
- if (!file_exists(MAGENTO_BP . '/app/etc/config.php') || !file_exists(MAGENTO_BP . '/app/etc/env.php')) {
- header('Location: ../setup');
- die();
- }
- $type = 'default';
- $titles = [];
- $defaultHeaderTitle = 'Magento Updater';
- if (file_exists(MAGENTO_BP . '/var/.type.json')) {
- $typeFlag = json_decode(file_get_contents(MAGENTO_BP . '/var/.type.json'), true);
- $headerTitle = isset($typeFlag['headerTitle']) ? $typeFlag['headerTitle'] : $defaultHeaderTitle;
- $titles = $typeFlag['titles'];
- } else {
- $headerTitle = $defaultHeaderTitle;
- }
- include __DIR__ . '/app/code/Magento/Update/view/templates/status.phtml';
- }
|