From d06ef07a97a9ca8826d9c47c925f633c145683a7 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 12 Feb 2020 13:31:11 +0100 Subject: [PATCH] disable timeout on app install via cli Signed-off-by: Arthur Schiwon --- lib/private/Installer.php | 19 +++++++++++++------ lib/private/Server.php | 3 ++- 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 790bec0ddd..b3919f22d0 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 caaacab0a0..d6c8e57d69 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 01a2506270..4530784e8e 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));