Skip to content

Commit 2805b8e

Browse files
committed
MC-33297: ES validation fails during install on Cloud
1 parent 053ced8 commit 2805b8e

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

app/code/Magento/Elasticsearch/Setup/InstallConfig.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
namespace Magento\Elasticsearch\Setup;
99

10+
use Magento\Framework\App\Config\ReinitableConfigInterface;
1011
use Magento\Framework\App\Config\Storage\WriterInterface;
1112
use Magento\Framework\Exception\InputException;
1213
use Magento\Setup\Model\SearchConfigOptionsList;
@@ -36,18 +37,26 @@ class InstallConfig implements InstallConfigInterface
3637
*/
3738
private $configWriter;
3839

40+
/**
41+
* @var ReinitableConfigInterface
42+
*/
43+
private $reinitableConfig;
44+
3945
/**
4046
* @param WriterInterface $configWriter
4147
* @param ConnectionValidator $validator
48+
* @param ReinitableConfigInterface $reinitableConfig
4249
* @param array $searchConfigMapping
4350
*/
4451
public function __construct(
4552
WriterInterface $configWriter,
4653
ConnectionValidator $validator,
54+
ReinitableConfigInterface $reinitableConfig,
4755
array $searchConfigMapping = []
4856
) {
4957
$this->configWriter = $configWriter;
5058
$this->validator = $validator;
59+
$this->reinitableConfig = $reinitableConfig;
5160
$this->searchConfigMapping = array_merge($this->searchConfigMapping, $searchConfigMapping);
5261
}
5362

@@ -63,6 +72,7 @@ public function configure(array $inputOptions)
6372
$configKey = $this->searchConfigMapping[$inputKey];
6473
$this->configWriter->save(self::CATALOG_SEARCH . $configKey, $inputValue);
6574
}
75+
$this->reinitableConfig->reinit();
6676
$searchEngine = $inputOptions[SearchConfigOptionsList::INPUT_KEY_SEARCH_ENGINE] ?? null;
6777
if (!$this->validator->validate($searchEngine)) {
6878
throw new InputException(

app/code/Magento/Elasticsearch/Test/Unit/Setup/InstallConfigTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,11 @@ public function testConfigureValidateFail()
112112

113113
$this->installConfig->configure($inputOptions);
114114
}
115+
116+
public function testConfigureWithEmptyInput()
117+
{
118+
$this->configWriterMock->expects($this->never())->method('save');
119+
$this->validatorMock->expects($this->once())->method('validate')->with(null)->willReturn(true);
120+
$this->installConfig->configure([]);
121+
}
115122
}

setup/src/Magento/Setup/Test/Unit/Model/SearchConfigOptionsListTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
namespace Magento\Setup\Test\Unit\Model;
99

10-
use Magento\Framework\Setup\Option\FlagConfigOption;
1110
use Magento\Framework\Setup\Option\SelectConfigOption;
1211
use Magento\Framework\Setup\Option\TextConfigOption;
1312
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
@@ -49,7 +48,7 @@ public function testGetOptionsList()
4948
$this->assertEquals('elasticsearch-port', $optionsList[2]->getName());
5049

5150
$this->assertArrayHasKey(3, $optionsList);
52-
$this->assertInstanceOf(FlagConfigOption::class, $optionsList[3]);
51+
$this->assertInstanceOf(TextConfigOption::class, $optionsList[3]);
5352
$this->assertEquals('elasticsearch-enable-auth', $optionsList[3]->getName());
5453

5554
$this->assertArrayHasKey(4, $optionsList);

0 commit comments

Comments
 (0)