зеркало из https://github.com/nextcloud/server.git
remove InstallCoreBundle repair step
- core bundle was empty and thus removed - all former apps installed this way are shipped Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
Родитель
759eaee5ed
Коммит
a7af25e1d9
|
@ -40,7 +40,6 @@ use OCP\Collaboration\Resources\IManager;
|
|||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\IRepairStep;
|
||||
use OC\App\AppStore\Bundles\BundleFetcher;
|
||||
use OC\Avatar\AvatarManager;
|
||||
use OC\DB\Connection;
|
||||
use OC\DB\ConnectionAdapter;
|
||||
|
@ -75,7 +74,6 @@ use OC\Repair\NC24\AddTokenCleanupJob;
|
|||
use OC\Repair\OldGroupMembershipShares;
|
||||
use OC\Repair\Owncloud\CleanPreviews;
|
||||
use OC\Repair\Owncloud\DropAccountTermsTable;
|
||||
use OC\Repair\Owncloud\InstallCoreBundle;
|
||||
use OC\Repair\Owncloud\MigrateOauthTables;
|
||||
use OC\Repair\Owncloud\MoveAvatars;
|
||||
use OC\Repair\Owncloud\SaveAccountsTableData;
|
||||
|
@ -193,11 +191,6 @@ class Repair implements IOutput {
|
|||
new MigrateOauthTables(\OC::$server->get(Connection::class)),
|
||||
new FixMountStorages(\OC::$server->getDatabaseConnection()),
|
||||
new UpdateLanguageCodes(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()),
|
||||
new InstallCoreBundle(
|
||||
\OC::$server->query(BundleFetcher::class),
|
||||
\OC::$server->getConfig(),
|
||||
\OC::$server->query(Installer::class)
|
||||
),
|
||||
new AddLogRotateJob(\OC::$server->getJobList()),
|
||||
new ClearFrontendCaches(\OC::$server->getMemCacheFactory(), \OC::$server->query(JSCombiner::class)),
|
||||
new ClearGeneratedAvatarCache(\OC::$server->getConfig(), \OC::$server->query(AvatarManager::class)),
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Julius Härtl <jus@bitgrid.net>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OC\Repair\Owncloud;
|
||||
|
||||
use OC\App\AppStore\Bundles\BundleFetcher;
|
||||
use OC\Installer;
|
||||
use OCP\IConfig;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\IRepairStep;
|
||||
|
||||
class InstallCoreBundle implements IRepairStep {
|
||||
/** @var BundleFetcher */
|
||||
private $bundleFetcher;
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
/** @var Installer */
|
||||
private $installer;
|
||||
|
||||
/**
|
||||
* @param BundleFetcher $bundleFetcher
|
||||
* @param IConfig $config
|
||||
* @param Installer $installer
|
||||
*/
|
||||
public function __construct(BundleFetcher $bundleFetcher,
|
||||
IConfig $config,
|
||||
Installer $installer) {
|
||||
$this->bundleFetcher = $bundleFetcher;
|
||||
$this->config = $config;
|
||||
$this->installer = $installer;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName() {
|
||||
return 'Install new core bundle components';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function run(IOutput $output) {
|
||||
$versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0');
|
||||
|
||||
if (version_compare($versionFromBeforeUpdate, '12.0.0.14', '>')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$defaultBundle = $this->bundleFetcher->getDefaultInstallationBundle();
|
||||
foreach ($defaultBundle as $bundle) {
|
||||
try {
|
||||
$this->installer->installAppBundle($bundle);
|
||||
$output->info('Successfully installed core app bundle.');
|
||||
} catch (\Exception $e) {
|
||||
$output->warning('Could not install core app bundle: ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,142 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Test\Repair\Owncloud;
|
||||
|
||||
use OC\App\AppStore\Bundles\Bundle;
|
||||
use OC\App\AppStore\Bundles\BundleFetcher;
|
||||
use OC\Installer;
|
||||
use OC\Repair\Owncloud\InstallCoreBundle;
|
||||
use OCP\IConfig;
|
||||
use OCP\Migration\IOutput;
|
||||
use Test\TestCase;
|
||||
|
||||
class InstallCoreBundleTest extends TestCase {
|
||||
/** @var BundleFetcher|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $bundleFetcher;
|
||||
/** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $config;
|
||||
/** @var Installer|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $installer;
|
||||
/** @var InstallCoreBundle */
|
||||
private $installCoreBundle;
|
||||
|
||||
public function setUp(): void {
|
||||
parent::setUp();
|
||||
$this->bundleFetcher = $this->createMock(BundleFetcher::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->installer = $this->createMock(Installer::class);
|
||||
|
||||
$this->installCoreBundle = new InstallCoreBundle(
|
||||
$this->bundleFetcher,
|
||||
$this->config,
|
||||
$this->installer
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetName() {
|
||||
$this->assertSame('Install new core bundle components', $this->installCoreBundle->getName());
|
||||
}
|
||||
|
||||
public function testRunOlder() {
|
||||
$this->config
|
||||
->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('version', '0.0.0')
|
||||
->willReturn('12.0.0.15');
|
||||
$this->bundleFetcher
|
||||
->expects($this->never())
|
||||
->method('getDefaultInstallationBundle');
|
||||
/** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $output */
|
||||
$output = $this->createMock(IOutput::class);
|
||||
$output
|
||||
->expects($this->never())
|
||||
->method('info');
|
||||
$output
|
||||
->expects($this->never())
|
||||
->method('warning');
|
||||
|
||||
$this->installCoreBundle->run($output);
|
||||
}
|
||||
|
||||
public function testRunWithException() {
|
||||
$this->config
|
||||
->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('version', '0.0.0')
|
||||
->willReturn('12.0.0.14');
|
||||
$bundle = $this->createMock(Bundle::class);
|
||||
$this->bundleFetcher
|
||||
->expects($this->once())
|
||||
->method('getDefaultInstallationBundle')
|
||||
->willReturn([
|
||||
$bundle,
|
||||
]);
|
||||
$this->installer
|
||||
->expects($this->once())
|
||||
->method('installAppBundle')
|
||||
->with($bundle)
|
||||
->willThrowException(new \Exception('ExceptionText'));
|
||||
/** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $output */
|
||||
$output = $this->createMock(IOutput::class);
|
||||
$output
|
||||
->expects($this->never())
|
||||
->method('info');
|
||||
$output
|
||||
->expects($this->once())
|
||||
->method('warning')
|
||||
->with('Could not install core app bundle: ExceptionText');
|
||||
|
||||
$this->installCoreBundle->run($output);
|
||||
}
|
||||
|
||||
public function testRun() {
|
||||
$this->config
|
||||
->expects($this->once())
|
||||
->method('getSystemValue')
|
||||
->with('version', '0.0.0')
|
||||
->willReturn('12.0.0.14');
|
||||
$bundle = $this->createMock(Bundle::class);
|
||||
$this->bundleFetcher
|
||||
->expects($this->once())
|
||||
->method('getDefaultInstallationBundle')
|
||||
->willReturn([
|
||||
$bundle,
|
||||
]);
|
||||
$this->installer
|
||||
->expects($this->once())
|
||||
->method('installAppBundle')
|
||||
->with($bundle);
|
||||
/** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $output */
|
||||
$output = $this->createMock(IOutput::class);
|
||||
$output
|
||||
->expects($this->once())
|
||||
->method('info')
|
||||
->with('Successfully installed core app bundle.');
|
||||
$output
|
||||
->expects($this->never())
|
||||
->method('warning');
|
||||
|
||||
$this->installCoreBundle->run($output);
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче