diff options
author | Lukas Reschke <lukas@statuscode.ch> | 2017-05-12 12:30:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-12 12:30:17 +0200 |
commit | 22dff1974f11d9f1f9954b22ad05a983ec6b98b7 (patch) | |
tree | 55a9bdd972c39073d88b2132169719af23e7f7f3 | |
parent | 16d84815c7a72ef2af81146055185531f03ba4b9 (diff) | |
parent | e6a0ad470115e902b2c82d5694b9c4bd00167f35 (diff) | |
download | nextcloud-server-22dff1974f11d9f1f9954b22ad05a983ec6b98b7.tar.gz nextcloud-server-22dff1974f11d9f1f9954b22ad05a983ec6b98b7.zip |
Merge pull request #4824 from nextcloud/log-connection-problems-appfetcher
Log connectiong problems while fetching data from appstore
-rw-r--r-- | lib/private/App/AppStore/Fetcher/AppFetcher.php | 10 | ||||
-rw-r--r-- | lib/private/App/AppStore/Fetcher/CategoryFetcher.php | 8 | ||||
-rw-r--r-- | lib/private/App/AppStore/Fetcher/Fetcher.php | 12 | ||||
-rw-r--r-- | tests/lib/App/AppStore/Fetcher/AppFetcherTest.php | 7 | ||||
-rw-r--r-- | tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php | 3 | ||||
-rw-r--r-- | tests/lib/App/AppStore/Fetcher/FetcherBase.php | 4 |
6 files changed, 36 insertions, 8 deletions
diff --git a/lib/private/App/AppStore/Fetcher/AppFetcher.php b/lib/private/App/AppStore/Fetcher/AppFetcher.php index 2e181d754f1..63f63aaf695 100644 --- a/lib/private/App/AppStore/Fetcher/AppFetcher.php +++ b/lib/private/App/AppStore/Fetcher/AppFetcher.php @@ -26,23 +26,27 @@ use OC\Files\AppData\Factory; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Http\Client\IClientService; use OCP\IConfig; +use OCP\ILogger; class AppFetcher extends Fetcher { /** * @param Factory $appDataFactory * @param IClientService $clientService * @param ITimeFactory $timeFactory - * @param IConfig $config; + * @param IConfig $config + * @param ILogger $logger */ public function __construct(Factory $appDataFactory, IClientService $clientService, ITimeFactory $timeFactory, - IConfig $config) { + IConfig $config, + ILogger $logger) { parent::__construct( $appDataFactory, $clientService, $timeFactory, - $config + $config, + $logger ); $this->fileName = 'apps.json'; diff --git a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php index 4c786652833..8c3c963462c 100644 --- a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php +++ b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php @@ -25,6 +25,7 @@ use OC\Files\AppData\Factory; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Http\Client\IClientService; use OCP\IConfig; +use OCP\ILogger; class CategoryFetcher extends Fetcher { /** @@ -32,16 +33,19 @@ class CategoryFetcher extends Fetcher { * @param IClientService $clientService * @param ITimeFactory $timeFactory * @param IConfig $config + * @param ILogger $logger */ public function __construct(Factory $appDataFactory, IClientService $clientService, ITimeFactory $timeFactory, - IConfig $config) { + IConfig $config, + ILogger $logger) { parent::__construct( $appDataFactory, $clientService, $timeFactory, - $config + $config, + $logger ); $this->fileName = 'categories.json'; $this->endpointUrl = 'https://apps.nextcloud.com/api/v1/categories.json'; diff --git a/lib/private/App/AppStore/Fetcher/Fetcher.php b/lib/private/App/AppStore/Fetcher/Fetcher.php index ccf5162ed82..02c55ac9d91 100644 --- a/lib/private/App/AppStore/Fetcher/Fetcher.php +++ b/lib/private/App/AppStore/Fetcher/Fetcher.php @@ -22,12 +22,14 @@ namespace OC\App\AppStore\Fetcher; use OC\Files\AppData\Factory; +use GuzzleHttp\Exception\ConnectException; use OCP\AppFramework\Http; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Files\IAppData; use OCP\Files\NotFoundException; use OCP\Http\Client\IClientService; use OCP\IConfig; +use OCP\ILogger; abstract class Fetcher { const INVALIDATE_AFTER_SECONDS = 300; @@ -40,6 +42,8 @@ abstract class Fetcher { protected $timeFactory; /** @var IConfig */ protected $config; + /** @var Ilogger */ + protected $logger; /** @var string */ protected $fileName; /** @var string */ @@ -52,15 +56,18 @@ abstract class Fetcher { * @param IClientService $clientService * @param ITimeFactory $timeFactory * @param IConfig $config + * @param ILogger $logger */ public function __construct(Factory $appDataFactory, IClientService $clientService, ITimeFactory $timeFactory, - IConfig $config) { + IConfig $config, + ILogger $logger) { $this->appData = $appDataFactory->get('appstore'); $this->clientService = $clientService; $this->timeFactory = $timeFactory; $this->config = $config; + $this->logger = $logger; } /** @@ -153,6 +160,9 @@ abstract class Fetcher { $responseJson = $this->fetch($ETag, $content); $file->putContent(json_encode($responseJson)); return json_decode($file->getContent(), true)['data']; + } catch (ConnectException $e) { + $this->logger->logException($e, ['app' => 'appstoreFetcher']); + return []; } catch (\Exception $e) { return []; } diff --git a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php index f3769fc09c3..2efecef4dc7 100644 --- a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php +++ b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php @@ -32,6 +32,7 @@ use OCP\Http\Client\IClient; use OCP\Http\Client\IClientService; use OCP\Http\Client\IResponse; use OCP\IConfig; +use OCP\ILogger; use Test\TestCase; class AppFetcherTest extends TestCase { @@ -43,6 +44,8 @@ class AppFetcherTest extends TestCase { protected $timeFactory; /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ protected $config; + /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ + protected $logger; /** @var AppFetcher */ protected $fetcher; /** @var string */ @@ -64,6 +67,7 @@ EOD; $this->clientService = $this->createMock(IClientService::class); $this->timeFactory = $this->createMock(ITimeFactory::class); $this->config = $this->createMock(IConfig::class); + $this->logger = $this->createMock(ILogger::class); $this->config ->expects($this->at(0)) @@ -74,7 +78,8 @@ EOD; $factory, $this->clientService, $this->timeFactory, - $this->config + $this->config, + $this->logger ); } diff --git a/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php b/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php index 6143da662dc..a1ce718520f 100644 --- a/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php +++ b/tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php @@ -33,7 +33,8 @@ class CategoryFetcherTest extends FetcherBase { $this->appDataFactory, $this->clientService, $this->timeFactory, - $this->config + $this->config, + $this->logger ); } diff --git a/tests/lib/App/AppStore/Fetcher/FetcherBase.php b/tests/lib/App/AppStore/Fetcher/FetcherBase.php index 3d89ae942ab..bd19141ea9f 100644 --- a/tests/lib/App/AppStore/Fetcher/FetcherBase.php +++ b/tests/lib/App/AppStore/Fetcher/FetcherBase.php @@ -32,6 +32,7 @@ use OCP\Http\Client\IClient; use OCP\Http\Client\IClientService; use OCP\Http\Client\IResponse; use OCP\IConfig; +use OCP\ILogger; use Test\TestCase; abstract class FetcherBase extends TestCase { @@ -45,6 +46,8 @@ abstract class FetcherBase extends TestCase { protected $timeFactory; /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ protected $config; + /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ + protected $logger; /** @var Fetcher */ protected $fetcher; /** @var string */ @@ -63,6 +66,7 @@ abstract class FetcherBase extends TestCase { $this->clientService = $this->createMock(IClientService::class); $this->timeFactory = $this->createMock(ITimeFactory::class); $this->config = $this->createMock(IConfig::class); + $this->logger = $this->createMock(ILogger::class); } public function testGetWithAlreadyExistingFileAndUpToDateTimestampAndVersion() { |