diff options
author | Valdis Murzins <valdis.murzins@zabbix.com> | 2021-05-10 19:45:44 +0300 |
---|---|---|
committer | Valdis Murzins <valdis.murzins@zabbix.com> | 2021-05-10 19:45:44 +0300 |
commit | 547d16cf62c4e7a5ca044793cc61c64b9cdb5cdf (patch) | |
tree | e354ab2b513effe5799f5ab80eeb1d78fbac3c3a /ui | |
parent | 6b0795a027cbb4607ea762be6b143eb9b14708d8 (diff) |
A......... [ZBXNEXT-6411] fixed template renaming for UUID generation; fixed graph UUID generation
Diffstat (limited to 'ui')
-rwxr-xr-x | ui/include/classes/import/converters/C52ImportConverter.php | 45 | ||||
-rw-r--r-- | ui/tests/unit/include/classes/import/converters/C52ImportConverterTest.php | 6 |
2 files changed, 33 insertions, 18 deletions
diff --git a/ui/include/classes/import/converters/C52ImportConverter.php b/ui/include/classes/import/converters/C52ImportConverter.php index da8930cc542..f15f043bbdd 100755 --- a/ui/include/classes/import/converters/C52ImportConverter.php +++ b/ui/include/classes/import/converters/C52ImportConverter.php @@ -122,14 +122,8 @@ class C52ImportConverter extends CConverter { * @return array */ private static function convertTemplates(array $templates): array { - $old_name_match = '/Template (APP|App|DB|Module|Net|OS|SAN|Server|Tel|VM) (?<mapped_name>.{3,})/'; - foreach ($templates as &$template) { - $short_template_name = $template['template']; - if (preg_match($old_name_match, $short_template_name, $match)) { - $short_template_name = $match['mapped_name']; - } - + $short_template_name = self::prepareTemplateName($template['template']); $template['uuid'] = generateUuidV4($short_template_name); if (array_key_exists('items', $template)) { @@ -585,7 +579,6 @@ class C52ImportConverter extends CConverter { $expression_converter = new C52TriggerExpressionConverter(); $event_name_converter = new C52EventNameConverter(); - $old_name_match = '/Template (APP|App|DB|Module|Net|OS|SAN|Server|Tel|VM) (?<mapped_name>.{3,})/'; $expression_parser = new CExpressionParser(); foreach ($triggers as &$trigger) { @@ -620,9 +613,7 @@ class C52ImportConverter extends CConverter { if ($expression_parser->parse($new_trigger_expression) == CParser::PARSE_SUCCESS) { foreach ($expression_parser->getResult()->getHosts() as $old_name) { - $new_name = preg_match($old_name_match, $old_name, $match) - ? $match['mapped_name'] - : $old_name; + $new_name = self::prepareTemplateName($old_name); $new_trigger_expression = triggerExpressionReplaceHost($new_trigger_expression, $old_name, $new_name); } } @@ -634,9 +625,7 @@ class C52ImportConverter extends CConverter { if ($expression_parser->parse($new_trigger_recovery_expression) == CParser::PARSE_SUCCESS) { foreach ($expression_parser->getResult()->getHosts() as $old_name) { - $new_name = preg_match($old_name_match, $old_name, $match) - ? $match['mapped_name'] - : $old_name; + $new_name = self::prepareTemplateName($old_name); $new_trigger_recovery_expression = triggerExpressionReplaceHost($new_trigger_recovery_expression, $old_name, $new_name ); @@ -665,14 +654,17 @@ class C52ImportConverter extends CConverter { */ private static function convertGraphs(array $graphs): array { $result = []; - $old_name_match = '/Template (APP|App|DB|Module|Net|OS|SAN|Server|Tel|VM) (?<mapped_name>.{3,})/'; foreach ($graphs as $graph) { - $templates_names = array_column($graph['graph_items'], 'host'); $seed = [$graph['name']]; + $templates_names = []; + + foreach ($graph['graph_items'] as $graph_item) { + $templates_names[] = $graph_item['item']['host']; + } foreach ($templates_names as $template_name) { - $seed[] = preg_match($old_name_match, $template_name, $match) ? $match['mapped_name'] : $template_name; + $seed[] = self::prepareTemplateName($template_name); } $graph['uuid'] = generateUuidV4(implode('/', $seed)); @@ -682,4 +674,23 @@ class C52ImportConverter extends CConverter { return $result; } + + /** + * Rename template name to be used for UUID generation. + * + * @static + * + * @param string $template_name + * + * @return string + */ + private static function prepareTemplateName(string $template_name): string { + $old_name_match = '/Template (APP|App|DB|Module|Net|OS|SAN|Server|Tel|VM) (?<mapped_name>.{3,})/'; + + $new_template_name = preg_match($old_name_match, $template_name, $match) + ? $match['mapped_name'] + : $template_name; + + return str_replace('SNMPv2', 'SNMP', $new_template_name); + } } diff --git a/ui/tests/unit/include/classes/import/converters/C52ImportConverterTest.php b/ui/tests/unit/include/classes/import/converters/C52ImportConverterTest.php index 7ddc51881e2..99580b6dccc 100644 --- a/ui/tests/unit/include/classes/import/converters/C52ImportConverterTest.php +++ b/ui/tests/unit/include/classes/import/converters/C52ImportConverterTest.php @@ -456,6 +456,8 @@ class C52ImportConverterTest extends CImportConverterTest { ['template' => 'Template OS ab'], ['template' => 'Template OS abc'], ['template' => 'Template MODULE abc'], + ['template' => 'Template OS SNMPv2'], + ['template' => 'Template OS ab SNMPv1'] ] ], [ @@ -463,7 +465,9 @@ class C52ImportConverterTest extends CImportConverterTest { ['template' => 'Template OS', 'uuid' => generateUuidV4('Template OS')], ['template' => 'Template OS ab', 'uuid' => generateUuidV4('Template OS ab')], ['template' => 'Template OS abc', 'uuid' => generateUuidV4('abc')], - ['template' => 'Template MODULE abc', 'uuid' => generateUuidV4('Template MODULE abc')] + ['template' => 'Template MODULE abc', 'uuid' => generateUuidV4('Template MODULE abc')], + ['template' => 'Template OS ab', 'uuid' => generateUuidV4('SNMP')], + ['template' => 'Template OS ab', 'uuid' => generateUuidV4('ab SNMP')] ] ] ]; |