diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2020-02-12 13:31:11 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2020-02-12 16:52:45 +0100 |
commit | d06ef07a97a9ca8826d9c47c925f633c145683a7 (patch) | |
tree | 98c2beb6ae57824468de59b5b83849941de4a9b4 | |
parent | e2e42d4ffd2b07c32fde1a36c64e48de334cac56 (diff) | |
download | nextcloud-server-d06ef07a97a9ca8826d9c47c925f633c145683a7.tar.gz nextcloud-server-d06ef07a97a9ca8826d9c47c925f633c145683a7.zip |
disable timeout on app install via cli
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r-- | lib/private/Installer.php | 19 | ||||
-rw-r--r-- | lib/private/Server.php | 3 | ||||
-rw-r--r-- | tests/lib/InstallerTest.php | 12 |
3 files changed, 23 insertions, 11 deletions
diff --git a/lib/private/Installer.php b/lib/private/Installer.php index 790bec0ddd5..b3919f22d03 100644 --- a/lib/private/Installer.php +++ b/lib/private/Installer.php @@ -70,6 +70,8 @@ class Installer { private $apps = null; /** @var bool|null - for caching the result of the ready status */ private $isInstanceReadyForUpdates = null; + /** @var bool */ + private $isCLI; /** * @param AppFetcher $appFetcher @@ -78,16 +80,20 @@ class Installer { * @param ILogger $logger * @param IConfig $config */ - public function __construct(AppFetcher $appFetcher, - IClientService $clientService, - ITempManager $tempManager, - ILogger $logger, - IConfig $config) { + public function __construct( + AppFetcher $appFetcher, + IClientService $clientService, + ITempManager $tempManager, + ILogger $logger, + IConfig $config, + bool $isCLI + ) { $this->appFetcher = $appFetcher; $this->clientService = $clientService; $this->tempManager = $tempManager; $this->logger = $logger; $this->config = $config; + $this->isCLI = $isCLI; } /** @@ -270,8 +276,9 @@ class Installer { // Download the release $tempFile = $this->tempManager->getTemporaryFile('.tar.gz'); + $timeout = $this->isCLI ? 0 : 120; $client = $this->clientService->newClient(); - $client->get($app['releases'][0]['download'], ['save_to' => $tempFile, 'timeout' => 120]); + $client->get($app['releases'][0]['download'], ['save_to' => $tempFile, 'timeout' => $timeout]); // Check if the signature actually matches the downloaded content $certificate = openssl_get_publickey($app['certificate']); diff --git a/lib/private/Server.php b/lib/private/Server.php index caaacab0a0a..d6c8e57d696 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -1272,7 +1272,8 @@ class Server extends ServerContainer implements IServerContainer { $c->getHTTPClientService(), $c->getTempManager(), $c->getLogger(), - $c->getConfig() + $c->getConfig(), + \OC::$CLI ); }); diff --git a/tests/lib/InstallerTest.php b/tests/lib/InstallerTest.php index 01a2506270a..4530784e8e2 100644 --- a/tests/lib/InstallerTest.php +++ b/tests/lib/InstallerTest.php @@ -57,7 +57,8 @@ class InstallerTest extends TestCase { \OC::$server->getHTTPClientService(), \OC::$server->getTempManager(), \OC::$server->getLogger(), - $config + $config, + false ); $installer->removeApp(self::$appid); } @@ -68,7 +69,8 @@ class InstallerTest extends TestCase { $this->clientService, $this->tempManager, $this->logger, - $this->config + $this->config, + false ); } @@ -78,7 +80,8 @@ class InstallerTest extends TestCase { \OC::$server->getHTTPClientService(), \OC::$server->getTempManager(), \OC::$server->getLogger(), - \OC::$server->getConfig() + \OC::$server->getConfig(), + false ); $installer->removeApp(self::$appid); \OC::$server->getConfig()->setSystemValue('appstoreenabled', $this->appstore); @@ -101,7 +104,8 @@ class InstallerTest extends TestCase { \OC::$server->getHTTPClientService(), \OC::$server->getTempManager(), \OC::$server->getLogger(), - \OC::$server->getConfig() + \OC::$server->getConfig(), + false ); $this->assertNull(\OC::$server->getConfig()->getAppValue('testapp', 'enabled', null), 'Check that the app is not listed before installation'); $this->assertSame('testapp', $installer->installApp(self::$appid)); |