mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 01:30:50 -04:00
Merge pull request #41311 from nextcloud/fix/improve-setup-checks-api
Improve setup checks API
This commit is contained in:
commit
3e6642ab0b
5 changed files with 41 additions and 6 deletions
|
|
@ -75,12 +75,12 @@ class PhpModules implements ISetupCheck {
|
|||
$missingRequiredModules = $this->getMissingModules(self::REQUIRED_MODULES);
|
||||
if (!empty($missingRequiredModules)) {
|
||||
return SetupResult::error(
|
||||
$this->l10n->t('This instance is missing some required PHP modules. It is required to install them: %s', implode(', ', $missingRequiredModules)),
|
||||
$this->l10n->t('This instance is missing some required PHP modules. It is required to install them: %s.', implode(', ', $missingRequiredModules)),
|
||||
$this->urlGenerator->linkToDocs('admin-php-modules')
|
||||
);
|
||||
} elseif (!empty($missingRecommendedModules)) {
|
||||
return SetupResult::info(
|
||||
$this->l10n->t('This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s', implode(', ', $missingRecommendedModules)),
|
||||
$this->l10n->t('This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s.', implode(', ', $missingRecommendedModules)),
|
||||
$this->urlGenerator->linkToDocs('admin-php-modules')
|
||||
);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ class SetupChecks extends Base {
|
|||
default:
|
||||
foreach ($results as $category => $checks) {
|
||||
$output->writeln("\t{$category}:");
|
||||
foreach ($checks as $title => $check) {
|
||||
foreach ($checks as $check) {
|
||||
$styleTag = match ($check->getSeverity()) {
|
||||
'success' => 'info',
|
||||
'error' => 'error',
|
||||
|
|
@ -74,7 +74,7 @@ class SetupChecks extends Base {
|
|||
"\t\t".
|
||||
($styleTag !== null ? "<{$styleTag}>" : '').
|
||||
"{$emoji} ".
|
||||
$title.
|
||||
($check->getName() ?? $check::class).
|
||||
($description !== null ? ': '.$description : '').
|
||||
($styleTag !== null ? "</{$styleTag}>" : ''),
|
||||
$verbosity
|
||||
|
|
@ -83,7 +83,7 @@ class SetupChecks extends Base {
|
|||
}
|
||||
}
|
||||
foreach ($results as $category => $checks) {
|
||||
foreach ($checks as $title => $check) {
|
||||
foreach ($checks as $check) {
|
||||
if ($check->getSeverity() !== 'success') {
|
||||
return self::FAILURE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,9 +47,10 @@ class SetupCheckManager implements ISetupCheckManager {
|
|||
$setupCheckObject = Server::get($setupCheck->getService());
|
||||
$this->logger->debug('Running check '.get_class($setupCheckObject));
|
||||
$setupResult = $setupCheckObject->run();
|
||||
$setupResult->setName($setupCheckObject->getName());
|
||||
$category = $setupCheckObject->getCategory();
|
||||
$results[$category] ??= [];
|
||||
$results[$category][$setupCheckObject->getName()] = $setupResult;
|
||||
$results[$category][$setupCheckObject::class] = $setupResult;
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,11 +36,13 @@ namespace OCP\SetupCheck;
|
|||
interface ISetupCheck {
|
||||
/**
|
||||
* @since 28.0.0
|
||||
* @return string Category id, one of security/system/accounts, or a custom one which will be merged in system
|
||||
*/
|
||||
public function getCategory(): string;
|
||||
|
||||
/**
|
||||
* @since 28.0.0
|
||||
* @return string Translated name to display to the user
|
||||
*/
|
||||
public function getName(): string;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,11 @@ class SetupResult implements \JsonSerializable {
|
|||
public const WARNING = 'warning';
|
||||
public const ERROR = 'error';
|
||||
|
||||
/**
|
||||
* @param string $name Translated name to display to the user
|
||||
*/
|
||||
private ?string $name = null;
|
||||
|
||||
/**
|
||||
* @brief Private constructor, use success()/info()/warning()/error() instead
|
||||
* @param self::SUCCESS|self::INFO|self::WARNING|self::ERROR $severity
|
||||
|
|
@ -51,6 +56,8 @@ class SetupResult implements \JsonSerializable {
|
|||
|
||||
/**
|
||||
* @brief Create a success result object
|
||||
* @param ?string $description Translated detailed description to display to the user
|
||||
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
|
||||
* @since 28.0.0
|
||||
*/
|
||||
public static function success(?string $description = null, ?string $linkToDoc = null): self {
|
||||
|
|
@ -59,6 +66,8 @@ class SetupResult implements \JsonSerializable {
|
|||
|
||||
/**
|
||||
* @brief Create an info result object
|
||||
* @param ?string $description Translated detailed description to display to the user
|
||||
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
|
||||
* @since 28.0.0
|
||||
*/
|
||||
public static function info(?string $description = null, ?string $linkToDoc = null): self {
|
||||
|
|
@ -67,6 +76,8 @@ class SetupResult implements \JsonSerializable {
|
|||
|
||||
/**
|
||||
* @brief Create a warning result object
|
||||
* @param ?string $description Translated detailed description to display to the user
|
||||
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
|
||||
* @since 28.0.0
|
||||
*/
|
||||
public static function warning(?string $description = null, ?string $linkToDoc = null): self {
|
||||
|
|
@ -75,6 +86,8 @@ class SetupResult implements \JsonSerializable {
|
|||
|
||||
/**
|
||||
* @brief Create an error result object
|
||||
* @param ?string $description Translated detailed description to display to the user
|
||||
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
|
||||
* @since 28.0.0
|
||||
*/
|
||||
public static function error(?string $description = null, ?string $linkToDoc = null): self {
|
||||
|
|
@ -100,6 +113,24 @@ class SetupResult implements \JsonSerializable {
|
|||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the name for the setup check
|
||||
*
|
||||
* @since 28.0.0
|
||||
*/
|
||||
public function getName(): ?string {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Set the name from the setup check
|
||||
*
|
||||
* @since 28.0.0
|
||||
*/
|
||||
public function setName(string $name): void {
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a link to the doc for the explanation.
|
||||
*
|
||||
|
|
@ -116,6 +147,7 @@ class SetupResult implements \JsonSerializable {
|
|||
*/
|
||||
public function jsonSerialize(): array {
|
||||
return [
|
||||
'name' => $this->name,
|
||||
'severity' => $this->severity,
|
||||
'description' => $this->description,
|
||||
'linkToDoc' => $this->linkToDoc,
|
||||
|
|
|
|||
Loading…
Reference in a new issue