Skip to content

Commit de9f9cd

Browse files
committed
[FEATURE] Show offline storages as warning in UniqueStorageTest or error, if only offline on foreign
1 parent d4fcb7b commit de9f9cd

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

Classes/Testing/Tests/Fal/UniqueStorageTargetTest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,13 @@ public function run()
6868
$affectedStorages = array();
6969
$failedUploads = array();
7070

71+
$skippedStorages = array();
72+
$foreignOffline = array();
73+
7174
foreach ($keys as $key) {
7275
$storageObject = $resourceFactory->getStorageObject($key, $storages['local'][$key]);
7376
if (!$storageObject->isOnline()) {
77+
$skippedStorages[] = $storageObject->getName();
7478
continue;
7579
}
7680
$driverProperty = new PropertyReflection(get_class($storageObject), 'driver');
@@ -82,6 +86,7 @@ public function run()
8286
$foreignDriver->setStorageUid($storages['foreign'][$key]['uid']);
8387
$foreignDriver->initialize();
8488
if (!$foreignDriver->isOnline()) {
89+
$foreignOffline[] = $storageObject->getName();
8590
continue;
8691
}
8792

@@ -117,12 +122,27 @@ public function run()
117122
$messages = array_merge($messages, $affectedStorages);
118123
}
119124

125+
if (!empty($foreignOffline)) {
126+
$messages[] = 'fal.foreign_offline_storages';
127+
$messages = array_merge($messages, $foreignOffline);
128+
}
129+
120130
if (!empty($messages)) {
131+
if (!empty($skippedStorages)) {
132+
$messages[] = 'fal.offline_storage_names';
133+
$messages = array_merge($messages, $skippedStorages);
134+
}
121135
return new TestResult(
122136
'fal.storage_targets_test_error',
123137
TestResult::ERROR,
124138
$messages
125139
);
140+
} elseif (!empty($skippedStorages)) {
141+
return new TestResult(
142+
'fal.storage_targets_test_skipped',
143+
TestResult::WARNING,
144+
array_merge(array('fal.offline_storage_names'), $skippedStorages)
145+
);
126146
}
127147

128148
return new TestResult('fal.storage_targets_okay');

Resources/Private/Language/de.locallang.testing.xlf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,18 @@
427427
<source>The unique storage target test failed.</source>
428428
<target state="translated">Der Zieldateisystemtest schlug fehl.</target>
429429
</trans-unit>
430+
<trans-unit id="fal.storage_targets_test_skipped">
431+
<source>The unique storage target has skipped one or more storages, because they are offline.</source>
432+
<target state="translated">Der Zieldateisystemtest konnte nicht auf alle Storages angewendet werden, weil mindestens eine offline ist.</target>
433+
</trans-unit>
434+
<trans-unit id="fal.offline_storage_names">
435+
<source>Following Storages are offline:</source>
436+
<target state="translated">Folgende Storages sind offline:</target>
437+
</trans-unit>
438+
<trans-unit id="fal.foreign_offline_storages">
439+
<source>Following Storages are offline only on foreign:</source>
440+
<target state="translated">Folgende Storages sind auf dem entfernten System offline:</target>
441+
</trans-unit>
430442
<trans-unit id="fal.storage_targets_same">
431443
<source>One or more storages on local have the same file system target as the corresponding storage on foreign.</source>
432444
<target state="translated">Eine oder mehrere lokale FAL Storages haben das selbe Dateisystem zum Ziel wie die dazugehörige entfernte FAL Storage(s).</target>

Resources/Private/Language/locallang.testing.xlf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,15 @@
341341
<trans-unit id="fal.storage_targets_test_error">
342342
<source>The unique storage target test failed.</source>
343343
</trans-unit>
344+
<trans-unit id="fal.storage_targets_test_skipped">
345+
<source>The unique storage target has skipped one or more storages, because they are offline.</source>
346+
</trans-unit>
347+
<trans-unit id="fal.offline_storage_names">
348+
<source>Following Storages are offline:</source>
349+
</trans-unit>
350+
<trans-unit id="fal.foreign_offline_storages">
351+
<source>Following Storages are offline only on foreign:</source>
352+
</trans-unit>
344353
<trans-unit id="fal.storage_targets_same">
345354
<source>One or more storages on local have the same file system target as the corresponding storage on foreign.</source>
346355
</trans-unit>

0 commit comments

Comments
 (0)