...
render_reply (только after)
reject_on_error (!)
Спецификации фильтров
...
https://gitlab.com/latera/hard/blob/master/conf/specs.yml.template
...
title | podryad-rad-ran:/etc/hydra/hard/plugins/base-ran-rad-by-login.yml |
---|---|
collapse | true |
В конфигурации любого настроенного фильтра, в секции specs
, могут быть описаны его спецификации — примеры входных данных и результатов их обработки фильтром. Агент HARD при запуске тестирует все активные, то есть участвующие хотя бы в одном стэке обработки запросов, фильтры, для которых задана спецификация. На вход фильтра подаются данные, указанные в секции input
спецификации, а результат обработки сравнивается с заданным в секции expected
. Если обнаруживается несоответствие, генерируется ошибка с указанием наименования проблемной спецификации (ключ name
) и отличий вывода фильтра от ожидаемого значения. Запуск агента при возникновении ошибки прекращается.
Code Block | ||
---|---|---|
| ||
plugins: filters: set_value_before: fix_doubledduplicated_acct-session-id_attribute: condition: ' $context.has_tag?("accounting") and $request.RAD_REQUEST.try("Acct-Session-Id", "").to_s() != $request.RAD_REQUEST.try("Acct-Session-Id", "")' destination: $request.RAD_REQUEST.Acct-Session-Id value_expression: $request.RAD_REQUEST.Acct-Session-Id[0] specs: - name: fix_doubledduplicated_acct-session-id_attribute input: tags: [accounting] request: RAD_REQUEST: Acct-Session-Id: - '5746ECB0-00000027' - '5746ECB0-00000027' expected: tags: [accounting] request: RAD_REQUEST: Acct-Session-Id: '5746ECB0-00000027' - name: pass_through_correct_acct-session-id_attribute input: tags: [accounting] request: RAD_REQUEST: Acct-Session-Id: '5746ECB0-00000027' expected: tags: [accounting] request: RAD_REQUEST: Acct-Session-Id: '5746ECB0-00000027' |
Jira
condition
, заменить оператор !=
на, к примеру, ==
, то фильтр не изменит входных данные и возникнет ошибка:Code Block |
---|
25.11.2016 18:01:17.291 13384/Worker#1 MainThread ERROR Failed filter spec "fix_duplicate_acct-session-id_attribute" with diff
--- a
+++ b
{
'RAD_REQUEST': {
-'Acct-Session-Id': ['5746ECB0-00000027', '5746ECB0-00000027'],
+'Acct-Session-Id': '5746ECB0-00000027',
},
} |