6.3. Обработчик управления устройством

Для дополнительного управления у типа устройства можно указать обработчик управления устройством.

На текущий момент главной функцией обработчика является получение текущего uptime устройства. Uptime необходим для определения перезагрузки устройства, чтобы при наступлении такого события Access мог синхронизировать заново все сервисы на этом устройстве.

В конфигурации типа устройства (или в самом устройстве) можно задать параметры выполнения команд:

# Пауза между выполнением команды после ошибки
#manage.error.pause=5
# Пауза между получением uptime
#manage.uptime.pause=120
# Пауза после ошибки, возникшей при получении uptime
#manage.uptime.error.pause=120

С модулем Inet поставляется динамический класс ru.bitel.bgbilling.modules.inet.dyn.device.snmp.SnmpDeviceManager, у него реализован метод uptime, который по SNMP у устройства получает его текущий uptime в секундах.

# Хост для отправки SNMP-запросов (по умолчанию хост, заданный в параметрах устройства Хост/порт)
#snmp.host=
# Порт для отправки SNMP-запросов (по умолчанию 161)
#snmp.port=
# Версия SNMP (по умолчанию 1)
#snmp.version=
# Сommunity (по умолчанию из параметра устройства Сommunity/Secret)
#snmp.community=public
# SNMP OID, из которого извлекается значение uptime (1.3.6.1.2.1.1.3.0)
#snmp.uptimeOid=1.3.6.1.2.1.1.3.0

После привязки обработчика управления устройством с реализованным методом uptime, все устройства с периодичностью manage.uptime.pause будут опрашиваться на время работы после перезагрузки. Для того, чтобы при определении очередной перезагрузки устройства Access выполнил синхронизацию сервисов, в конфигурации типа устройства (или в устройстве) необходимо прописать:

# Синхронизировать ли сервисы при обнаружении перезагрузки, 0 - не синхронизировать (по умолчанию), 1 - синхронизировать
# (для обнаружения перезагрузки в типе устройства должен быть установлен обработчик управления устройством)
#sa.device.sync.onReboot=1
# Вызывать ли при синхронизации для каждого сервиса, 0 - только serviceCreate или 1 (по умолчанию) - 
# сначала serviceCancel, а затем serviceCreate
#sa.device.sync.cancelBeforeCreate=1