mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-11 07:11:04 +01:00
Soften a possible cluster search setup fatal
Summary: Ref T12450. The way that config repair and setup issues interact is kind of complicated, and if `cluster.search` is invalid we may end up using `cluster.search` before we repair it. I poked at things for a bit but wasn't confident I could get it to consistently repair before we use it without doing a big messy change. The only thing that really matters is whether "type" is valid or not, so just put a slightly softer/more-tailored check in for that. Test Plan: - With `"type": "elastic"`, loaded setup issues. - Before patch: hard fatal. - After patch: softer fatal with more useful messaging. {F4321048} Reviewers: chad Reviewed By: chad Maniphest Tasks: T12450 Differential Revision: https://secure.phabricator.com/D17576
This commit is contained in:
parent
5f939dcce0
commit
88798354e8
2 changed files with 13 additions and 1 deletions
|
@ -4,7 +4,7 @@ final class PhabricatorClusterSearchConfigOptionType
|
|||
extends PhabricatorConfigJSONOptionType {
|
||||
|
||||
public function validateOption(PhabricatorConfigOption $option, $value) {
|
||||
self::validateClusterSearchConfigValue($value);
|
||||
self::validateValue($value);
|
||||
}
|
||||
|
||||
public static function validateValue($value) {
|
||||
|
|
|
@ -186,6 +186,18 @@ class PhabricatorSearchService
|
|||
$refs = array();
|
||||
|
||||
foreach ($services as $config) {
|
||||
|
||||
// Normally, we've validated configuration before we get this far, but
|
||||
// make sure we don't fatal if we end up here with a bogus configuration.
|
||||
if (!isset($engines[$config['type']])) {
|
||||
throw new Exception(
|
||||
pht(
|
||||
'Configured search engine type "%s" is unknown. Valid engines '.
|
||||
'are: %s.',
|
||||
$config['type'],
|
||||
implode(', ', array_keys($engines))));
|
||||
}
|
||||
|
||||
$engine = $engines[$config['type']];
|
||||
$cluster = new self($engine);
|
||||
$cluster->setConfig($config);
|
||||
|
|
Loading…
Reference in a new issue