Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2019-03-08 15:36:11 +0300
committerRoeland Jago Douma <roeland@famdouma.nl>2019-03-27 15:34:36 +0300
commit689b7c19de215d12afee05a3e340cea70ba3a6f6 (patch)
tree321d9d35ca1ed3feee973354cebcc007fd110cad /settings
parentc1fa96596a571d08f0ecf908648e87e1501dd253 (diff)
Show a setup warning in case S3 object storage is used as primary storage
* checks for at least 50 GB of free space Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'settings')
-rw-r--r--settings/Controller/CheckSetupController.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/settings/Controller/CheckSetupController.php b/settings/Controller/CheckSetupController.php
index b86f25a7fea..70dfadd196f 100644
--- a/settings/Controller/CheckSetupController.php
+++ b/settings/Controller/CheckSetupController.php
@@ -642,6 +642,42 @@ Raw output
return $pendingColumns;
}
+ protected function isEnoughTempSpaceAvailableIfS3PrimaryStorageIsUsed(): bool {
+ $objectStore = $this->config->getSystemValue('objectstore', null);
+ $objectStoreMultibucket = $this->config->getSystemValue('objectstore_multibucket', null);
+
+ if (!isset($objectStoreMultibucket) && !isset($objectStore)) {
+ return true;
+ }
+
+ if (isset($objectStoreMultibucket['class']) && $objectStoreMultibucket['class'] !== 'OC\\Files\\ObjectStore\\S3') {
+ return true;
+ }
+
+ if (isset($objectStore['class']) && $objectStore['class'] !== 'OC\\Files\\ObjectStore\\S3') {
+ return true;
+ }
+
+ $tempPath = sys_get_temp_dir();
+ if (!is_dir($tempPath)) {
+ $this->logger->error('Error while checking the temporary PHP path - it was not properly set to a directory. value: ' . $tempPath);
+ return false;
+ }
+ $freeSpaceInTemp = disk_free_space($tempPath);
+ if ($freeSpaceInTemp === false) {
+ $this->logger->error('Error while checking the available disk space of temporary PHP path - no free disk space returned. temporary path: ' . $tempPath);
+ return false;
+ }
+
+ $freeSpaceInTempInGB = $freeSpaceInTemp / 1024 / 1024 / 1024;
+ if ($freeSpaceInTempInGB > 50) {
+ return true;
+ }
+
+ $this->logger->warning('Checking the available space in the temporary path resulted in ' . round($freeSpaceInTempInGB, 1) . ' GB instead of the recommended 50GB. Path: ' . $tempPath);
+ return false;
+ }
+
/**
* @return DataResponse
*/
@@ -684,6 +720,7 @@ Raw output
'recommendedPHPModules' => $this->hasRecommendedPHPModules(),
'pendingBigIntConversionColumns' => $this->hasBigIntConversionPendingColumns(),
'isMysqlUsedWithoutUTF8MB4' => $this->isMysqlUsedWithoutUTF8MB4(),
+ 'isEnoughTempSpaceAvailableIfS3PrimaryStorageIsUsed' => $this->isEnoughTempSpaceAvailableIfS3PrimaryStorageIsUsed(),
]
);
}