Browse Source

Merge pull request #19430 from nextcloud/fix/17808/remove-timeout-appinstall

disable timeout on app install via cli
tags/v19.0.0beta1
blizzz 4 years ago
parent
commit
6bf0c1f4c3
No account linked to committer's email address
3 changed files with 23 additions and 11 deletions
  1. 13
    6
      lib/private/Installer.php
  2. 2
    1
      lib/private/Server.php
  3. 8
    4
      tests/lib/InstallerTest.php

+ 13
- 6
lib/private/Installer.php View File

@@ -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']);

+ 2
- 1
lib/private/Server.php View File

@@ -1272,7 +1272,8 @@ class Server extends ServerContainer implements IServerContainer {
$c->getHTTPClientService(),
$c->getTempManager(),
$c->getLogger(),
$c->getConfig()
$c->getConfig(),
\OC::$CLI
);
});


+ 8
- 4
tests/lib/InstallerTest.php View File

@@ -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));

Loading…
Cancel
Save