Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Предварительная подготовка

Необходимо создать пользователя в mongodb (при установке из deb пакета это делается автоматически)

Code Block
root@server:~# mongo --eval "db.addUser({ user: \"hard\", pwd: \"hard\", roles: [ \"userAdminAnyDatabase\" ] })" hard_cache || exit 0

Особенности работы

1. При старте все конфигурационные файлы объединяются в один, пользовательский конфиг переопределяет системный.

...

4. При обработке аккаунтинг-update пакетов, данные помещаются в кэш mongo db в коллекцию accounting_data. Загрузка данных аккаунтинга (cdr и трафика) в биллинг выполняется отдельным скриптом, который запускается коммандой ./init/hard.sh batch (в опции -f можно указать дирректорию с пользовательскими настройками). Данный скрипт должен периодически запускаться через cron.

Принцип обработки запроса

  1. Поступает запрос на url вида plugin/name
  2. Проверяется наличие существования плагина в приложении и объекта плагина в enabled_plugins
  3. Поиск цепочки вызова в plugins.plugin.name.call_stack, если такая цепочка не найдена, используется plugins.plugin.default.call_stack
  4. Последовательно выполняются фильтры цепочки вызова в прямом порядке
  5. Выполняются обработка запроса (возможно предварительно измененного фильтрами) объектом плагина
  6. Последовательно выполняются фильтры цепочки вызова в обратном порядке
  7. Возвращается результат обработки

...