Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorValdis Murzins <valdis.murzins@zabbix.com>2021-05-10 19:45:44 +0300
committerValdis Murzins <valdis.murzins@zabbix.com>2021-05-10 19:45:44 +0300
commit547d16cf62c4e7a5ca044793cc61c64b9cdb5cdf (patch)
treee354ab2b513effe5799f5ab80eeb1d78fbac3c3a /ui
parent6b0795a027cbb4607ea762be6b143eb9b14708d8 (diff)
A......... [ZBXNEXT-6411] fixed template renaming for UUID generation; fixed graph UUID generation
Diffstat (limited to 'ui')
-rwxr-xr-xui/include/classes/import/converters/C52ImportConverter.php45
-rw-r--r--ui/tests/unit/include/classes/import/converters/C52ImportConverterTest.php6
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')]
]
]
];