Конфигурирование сервисов

При установке системы через amanitabar install в рабочее окружение копируется файл config.defaul.yml из папки с исходным кодом проекта (см. приложение)

Для изменения конфигурационных настроек нужно использовать утилиту amanitabar:

root@test % amanitabar config --help
Usage: amanitabar config [OPTIONS] COMMAND [ARGS]...

  Configuration management.

  Options:
    --help  Show this message and exit.

  Commands:
    del   Delete a configuration option.
    set   Set a configuration option.
    show  Show configuration.

Примеры

amanitabar config set ODOO_HOST my.odoo.com
amanitabar config set PINS_PORT /dev/ttyUSB0

Вывод парамтеров конфигурации

Команда config show выводит все параметры, а config show PARAM только параметры, в которых есть PARAM. Пример:

root@test tmp % amanitabar config show ODOO_HOST
ODOO_HOST: 127.0.0.1

Начальная конфигурация

Файл конфигурации, клонируемый при создании рабочего окружения:

AGENT_UID: test
AMANITA_BARRIER_PREFIX: {{ PREFIX }}

GPIO_CMD: /usr/local/bin/gpio

ODOO_HOST: 127.0.0.1
ODOO_PORT: 8069
ODOO_BUS_POLLING_PORT: 8072
ODOO_USER: callpanel_test
ODOO_PASS: callpanel_test
ODOO_DB: barrier
ODOO_SCHEME: http # or https
ODOO_SINGLE_DB: yes
ODOO_BUS_ENABLED: yes
ODOO_SYNC_TIMEOUT: 10

PIPE_ENABLED: yes
PIPE_PATH: /tmp/access_request.pipe

PINS_PORT: /dev/ttyUSB0
PINS_ENABLED: yes
PINS_BAUD_RATE: 9600
PINS_READ_INTERVAL: 0.1 # Seconds to sleep between port read
# Sound files can be chained.
PINS_KEY_PRESS_SOUNDS: ['TnkWDing.wav']
PINS_PIN_ACCEPTED_SOUNDS: ['Go-car.wav']
PINS_BAD_PIN: ['auth-incorrect.wav']

RECORDER_ENTRY_KEEP_DAYS: 15

LANGUAGE: en

AMQP_URI: amqp://guest:guest@localhost:5672/

# Used by alembic
SQLALCHEMY_URL: sqlite:///{{ PREFIX }}/app.db
# Used by nameko-sqlalchemy
DB_URIS: 
  'recorder:Base': sqlite:///{{ PREFIX }}/app.db
  'config:Base': sqlite:///{{ PREFIX }}/app.db
  'keykeeper:Base': sqlite:///{{ PREFIX }}/app.db
  'odoo:Base': sqlite:///{{ PREFIX }}/app.db

REDIS_URIS:
  local: redis://127.0.0.1/1

LOG_FILE: {{ PREFIX }}/amanita_barrier.log

SUPERVISORD_CONF_DIR: {{ SUPERVISORD_CONF_DIR }}
SUPERVISORD_LOG_DIR: {{ SUPERVISORD_LOG_DIR }}

# Logger
LOGGING:
    version: 1
    formatters:
        default:
            format: '%(asctime)s - %(name)s:%(lineno)s - %(levelname)s - %(message)s'
    handlers:
        console:
            class: logging.StreamHandler
            formatter: default
        file:
            class: logging.FileHandler
            filename: amanita_barrier.log
            mode: a
            formatter: default
            level: INFO
        graypy:
            level: ${GRAYLOG_LEVEL:INFO}
            class: graypy.GELFUDPHandler
            host: ${GRAYLOG_HOST:localhost}
            port: ${GRAYLOG_PORT:12201}
            localname: ${GRAYLOG_SOURCE:nameko}
    loggers:
        sqlalchemy.engine.base:
            level: WARNING
        nameko:
            level: INFO
        kombu:
            level: WARNING
    root:
        level: DEBUG
        handlers: [console, file, graypy]

Настройки сервисов

Odoo

Дополнительные настройки Odoo, не включенный в файл по-умолчанию:

  • ODOO_BUS_ENABLED - использовать /longpolling/poll (по-умолчанию = 1). Иногда необходимо отключить поллинг, для этого надо установить это значение в 0.
  • ODOO_SINGLE_DB - так как /longpolling/poll не позволяет выбрать базу, то сервис перед началом поллинга вызывает /web/session/authenticate для выбора базы. В случае, если Odoo работает с одной базой, или используется опция db_filter, можно в целях оптимизации включить режим одной базы ODOO_SINGLE_DB=1.