34 lines
1.8 KiB
Text
34 lines
1.8 KiB
Text
@startuml
|
||
!define RESULT <font color="blue">result</font>
|
||
!define UNPARSED_RESULT <font color="green">unparsed_result</font>
|
||
|
||
start
|
||
:Получаем данные, обработанные\nTextFSM со списком правил ACL <font color="red">acl_entries</font>;
|
||
:Создаем два результирующих массива:
|
||
- RESULT для хранения хороших результатов
|
||
- UNPARSED_RESULT для хранения необработанных;
|
||
:Начинаем итерацию по <font color="red">acl_entries</font>;
|
||
repeat
|
||
:Берем следующий элемент из <font color="red">acl_entries</font> - <font color="purple">acl_entry</font>;
|
||
:Проверяем его содержание и в зависимости от\nнего обрабатываем соответственно;
|
||
if (<font color="purple">acl_entry</font> = ACL header)
|
||
:Пропускам элемент;
|
||
elseif (<font color="purple">acl_entry</font> = unparsed ACE)
|
||
:Записываем в список UNPARSED_RESULT;
|
||
elseif (<font color="purple">acl_entry</font> = ACE)
|
||
:Обрабатываем правило;
|
||
note
|
||
_parse_remark_acl_entry()
|
||
end note
|
||
:Добавляем обработанный результат в <font color="blue">results</font>;
|
||
elseif (<font color="purple">acl_entry</font> = Remark)
|
||
:Обрабатываем согласно правилам\nработы c Remark;
|
||
note
|
||
_parse_ace_acl_entry()
|
||
end note
|
||
:Добавляем обработанный результат в <font color="blue">results</font>;
|
||
endif
|
||
repeat while (В <font color="red">acl_entries</font> есть еще элементы?)
|
||
:Возвращаем RESULT, UNPARSED_RESULT;
|
||
stop
|
||
@enduml
|