@startuml
!define RESULT result
!define CONCAT_RESULTS concat_results
!define TMP_ENTRY tmp_entry
start
:Начинаем проходить по элементам RESULT;
:Создаем массив CONCAT_RESULTS;
:Создаем словарь TMP_ENTRY\nв которм будет собираться правило\nпо шаблону ace_template;
note
ace_template = {
"rule_id": 0,
"enabled": True,
"rule_numbers": [],
"action": "",
"source": [],
"destination": [],
"destination_service": "",
"source_service": "",
"hit_count": 0,
"users": [],
"logging": "",
"logging_interval": "",
"time_range": "",
"description": "",
"raw_entry": "",
"raw_entries": [],
"hash": "",
"protocol": "",
}
endnote
repeat
:Берем следующий элемент RESULT;
if (RESULT entry = ACE)
:Записываем в поля TMP_ENTRY данные из RESULT entry
согласно правилам ace;
note
_fill_template_with_ace_data()
endnote
:Добавяем TMP_ENTRY в CONCAT_RESULTS;
:Сбрасываем ace_template в исходное значение;
elseif (RESULT = remark)
:Записываем в поля TMP_ENTRY данные из RESULT entry
согласно правилам remark;
note right
_fill_template_with_remark_data()
endnote
endif
repeat while (В RESULT есть еще элементы?)
:Возвращаем CONCAT_RESULTS;
stop
@enduml