13 use Zend\Mvc\Controller\AbstractActionController;
14 use Zend\View\Model\JsonModel;
24 private $backupHandler;
38 private $directoryList;
56 \
Magento\Framework\Setup\BackupRollback::class,
59 $this->directoryList = $directoryList;
60 $this->fileSystem = $fileSystem;
70 $view = new \Zend\View\Model\ViewModel;
71 $view->setTemplate(
'/error/404.phtml');
72 $this->getResponse()->setStatusCode(\
Zend\Http\Response::STATUS_CODE_404);
83 $params = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
88 if (isset(
$params[
'options'][
'code']) &&
$params[
'options'][
'code']) {
89 $totalSize += $this->backupHandler->getFSDiskSpace();
91 if (isset(
$params[
'options'][
'media']) &&
$params[
'options'][
'media']) {
95 $totalSize += $this->backupHandler->getDBDiskSpace();
97 $this->fileSystem->validateAvailableDiscSpace($backupDir, $totalSize);
105 return new JsonModel(
108 'error' => $e->getMessage()
121 $params = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
125 if (isset(
$params[
'options'][
'code']) &&
$params[
'options'][
'code']) {
126 $backupFiles[] = $this->backupHandler->codeBackup($time);
128 if (isset(
$params[
'options'][
'media']) &&
$params[
'options'][
'media']) {
131 if (isset(
$params[
'options'][
'db']) &&
$params[
'options'][
'db']) {
132 $backupFiles[] = $this->backupHandler->dbBackup($time);
134 return new JsonModel(
137 'files' => $backupFiles
141 return new JsonModel(
144 'error' => $e->getMessage()
__construct(\Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider, \Magento\Setup\Model\WebLogger $logger, \Magento\Framework\App\Filesystem\DirectoryList $directoryList, \Magento\Framework\Backup\Filesystem $fileSystem)
const DEFAULT_BACKUP_DIRECTORY
const RESPONSE_TYPE_SUCCESS
const RESPONSE_TYPE_ERROR
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]