summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2017-05-12 12:30:17 +0200
committerGitHub <noreply@github.com>2017-05-12 12:30:17 +0200
commit22dff1974f11d9f1f9954b22ad05a983ec6b98b7 (patch)
tree55a9bdd972c39073d88b2132169719af23e7f7f3
parent16d84815c7a72ef2af81146055185531f03ba4b9 (diff)
parente6a0ad470115e902b2c82d5694b9c4bd00167f35 (diff)
downloadnextcloud-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.php10
-rw-r--r--lib/private/App/AppStore/Fetcher/CategoryFetcher.php8
-rw-r--r--lib/private/App/AppStore/Fetcher/Fetcher.php12
-rw-r--r--tests/lib/App/AppStore/Fetcher/AppFetcherTest.php7
-rw-r--r--tests/lib/App/AppStore/Fetcher/CategoryFetcherTest.php3
-rw-r--r--tests/lib/App/AppStore/Fetcher/FetcherBase.php4
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() {