BpConfig: Only list each involved configuration once

This commit is contained in:
Johannes Meyer 2019-02-25 08:19:39 +01:00
parent 6ae4cf745c
commit 6f3ffe48e2
2 changed files with 9 additions and 9 deletions

View file

@ -608,16 +608,17 @@ class BpConfig
return $this->importedConfigs[$name];
}
public function listInvolvedConfigs(&$usedConfigs = null)
public function listInvolvedConfigs(&$configs = null)
{
$configs = [];
foreach ($this->importedNodes as $node) {
$config = $node->getBpConfig();
$configs[] = $config;
if ($configs === null) {
$configs[$this->getName()] = $this;
}
if (! isset($usedConfigs[$node->getConfigName()])) {
$usedConfigs[$config->getName()] = true;
$configs = array_merge($configs, $config->listInvolvedConfigs($usedConfigs));
foreach ($this->importedNodes as $node) {
if (! isset($configs[$node->getConfigName()])) {
$config = $node->getBpConfig();
$configs[$node->getConfigName()] = $config;
$config->listInvolvedConfigs($configs);
}
}

View file

@ -94,7 +94,6 @@ class MonitoringState
Benchmark::measure('Retrieved states for ' . count($serviceStatus) . ' services in ' . $config->getName());
$configs = $config->listInvolvedConfigs();
$configs[] = $config;
foreach ($configs as $cfg) {
foreach ($serviceStatus as $row) {
$this->handleDbRow($row, $cfg);