Вызовы к API из кода обработчиков плагинов
Вызовы к API ispmanager можно делать несколькими способами, (они подробно описаны здесь), внутри кода плагинов предпочтительней использовать утилиту mgrctl - ее преимущества описаны выше.
По умолчанию mgrctl возвращает данные в виде текста (пример вызова для функции webdomain.edit - форма создания нового сайта - первые строки вывода):
ssl_port=443
ssi=on
basedir=on
log_access=on
log_error=on
show_params=yes
...
Пример текстового вывода для списка (функция netactconn - список активных подключений):
key=ihttpd->85297 appname=ihttpd count=1
key=sshd->523147 appname=sshd count=1
Если в вашем обработчике удобнее работать с другими форматами, то можно использовать опцию -o devel для получения XML или -o json для получения JSON.
Утилите mgrctl можно передать параметры запроса в формате имя_параметра=значение_параметра. C помощью параметра sok=ok можно отправить данные формы для выполнения соответствующей операции.
Параметр su=имя_пользователя позволяет выполнить функцию от лица определенного пользователя (код плагинов выполняется от лица суперадминистратора root и поэтому mgrctl в коде плагина будет выполняться по умолчанию от root).
Примеры вызовов утилиты mgrctl:
- Получить данные сайта example.com в формате JSON:
/usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain.edit elid=example.com -o json
- Создать сайт с именем example.com и email администратора admin@example.com, получить результат операции в формате XML:
/usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain.edit name=example.com sok=ok "email=admin@example.com" -o devel
- Получить в текстовом формате список всех баз данных, доступных пользователю с именем vasya:
/usr/local/mgr5/sbin/mgrctl -m ispmgr db su=vasya
Пример использования API ispmanager в плагине: вывод списка БД
Также полезный способ получать параметры для вызова стандартных функций ispmanager описан тут.