Алгоритм открытия услуги


После заказа и оплаты услуги BILLmanager начинает процесс её открытия, который состоит из нескольких этапов: 

Проверка доменного имени

Проверяется указано или нет доменное имя при заказе. Если клиент оставил поле Доменное имя пустым, BILLmanager генерирует домен на основе шаблона, указанного в настройках тарифа. Когда домен генерируется автоматически, система "запоминает", что его необходимо создать на сервере для бесплатного доменного имени.

Назначение IP-адреса

Если услуге необходим выделенный IP-адрес, то выполняется назначение IP из пула адресов панели управления Plesk: Инструменты и настройкиИнструменты и ресурсыIP-адреса

Создание пользователя

Отправляется API-запрос в Plesk для создания пользователя. В качестве параметров передаются:

  • логин новой учётной записи;
  • пароль учётной записи. Генерируется автоматически;
  • тарифный план на стороне Plesk;
  • лимиты на использование ресурсов в рамках создаваемой подписки;
  • "Параметры хостинга" из Plesk — набор параметров из настроек тарифного плана на стороне Plesk. 

После выполнения запроса в базе данных биллинговой системы сохраняется информация о домене, сервере доменных имён, IP-адресе, идентификаторе (id) услуги, а также логин и пароль учётной записи

Обработка результата создания пользователя

Создание пользователя в Plesk может завершиться одним из следующих ответов:

  • ошибка "ERROR Error: Type: 'exists' Object: 'user' Value: '<имя пользователя>'". Означает, что учётная запись с таким именем уже создана в системе. В таком случае будет использоваться существующая учётная запись; 
  • ошибка "ERROR Error: type: 'Plesk server result error. Error code: 1007. Error message: Incorrect name <имя домена>. This domain name already exists.'". Означает, что пользователь создаётся с WWW-доменом, который уже существует. В таком случае операция создания пользователя будет остановлена;
  • сообщение OK. Означает, что пользователь был создан успешно. 

Если биллинговая система не получила от Plesk ни сигнала об успешном завершении операции, ни явной ошибки, то BILLmanager 10 раз с интервалом в 1 секунду обращается к Plesk и просматривает список всех пользователей на наличие создаваемого. Если пользователь обнаруживается — операция считается завершённой успешно. В противном случае операция создания пользователя завершается ошибкой: Операция "повисает" в разделе Текущие операции с пометкой об ошибке. 

Активация услуги

Статус услуги в BILLmanager меняется на Активен. Клиенту отправляется письмо об открытии услуги.

Создание бесплатного доменного имени

Чтобы создать запись поддомена, выполняется API-запрос (domain.record.edit) к серверу бесплатного доменного имени. 

Синхронизация


Модуль обработки Plesk выполняет синхронизацию статуса и ресурсов (лимитов/ограничений) услуги после каждого изменения на стороне биллинговой системы. Соответствие услуги в BILLmanager с подпиской в Plesk происходит по имени пользователя. То есть значение поля Имя пользователя в разделе Товары/УслугиВиртуальный хостинг соответствует имени учётной записи в Plesk.

За синхронизацию статуса и ресурсов услуги отвечает задание планировщика cron processing.syncserver.cron. 

Синхронизация статуса услуги

При синхронизации статуса услуг выбирается весь список услуг в биллинговой системе, подключенных к обработчику Plesk, сравнивается статус услуги в BILLmanager и состояние подписки в Plesk.

Если в BILLmanager услуга имеет статус Активен, а в Plesk соответствующая подписка приостановлена, то биллинговая система активирует подписку. Если в BILLmanager услуга в статусе Остановлен, а в Plesk подписка активна, то отправляется запрос на приостановку подписки. 

Остановка подписки на стороне панели управления Plesk повлечёт за собой остановку соответствующей услуги в биллинговой системе. 

Синхронизация статуса выполняется каждый день. 

Синхронизация ресурсов

Значения ресурсов услуги на стороне BILLmanager должны совпадать с ограничениями подписки на стороне Plesk. Если значения ресурсов не совпадают, то BILLmanager выполняет API-запрос к Plesk и меняет ограничения подписки на те, которые установлены в биллинговой системе. 

Сбор статистики


Модуль обработки Plesk поддерживает сбор статистики по некоторым ресурсам. Статистика всегда собирается за предыдущий день

За сбор статистики отвечает задание планировщика cron — statdaily.cron.

Логирование


Лог взаимодействия биллинговой системы с Plesk записывается в файл  /usr/local/mgr5/var/pmplesk.log

В логе можно определить выполняемые операции по следующим записям:

'processing/pmplesk --runningoperation <код текущей операции> --command open' — открытие услуги.

'processing/pmplesk --runningoperation <код текущей операции>  --command close'  закрытие услуги.

'processing/pmplesk --command sync_server --module <код модуля обработки>' — синхронизация данных.

'processing/pmplesk --command stat --module <код модуля обработки>' — сбор статистики.