Руководство для разработчиков

Вызовы к 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 описан тут.