В настоящее время я пытаюсь создать веб-интерфейс управления для кластера серверов Linux, на котором работает специальный сервис. Идея состоит в том, что веб-сайт управления может RPC кластеры для сбора информации, выполнения задач конфигурации и т. Д.
У меня есть скрипт XMLRPC Python Server, который запущен, и я написал базовый клиент XMLRPC на PHP. Все это работает, но у меня возникают серьезные проблемы, связанные с последовательными ответами на вызовы методов. Иногда я получаю массив XML на глубину, основанный на многословности вывода команды, которую я выполняю, иногда это структура XML. и иногда это просто старая ценность. Тогда я должен иметь дело с ошибками - Кажется, стандарт XMLRPC имеет структуру Fault со значениями «faultCode» и «faultString», на которые он отвечает, и это здорово, потому что это аккуратно, и я могу вытащить эти данные через именованный ключ в XML. Но эту структуру можно получить только в том случае, если ошибка произошла из самой оболочки (например, если вызванная команда имела неверный аргумент), тогда как ошибка, исходящая из команды, должна быть просто обычным XML-ответом.
Как я могу написать надежный веб-сервис вокруг того, что кажется такими разными ответами с сервера XMLRPC? То, что я действительно хотел бы сделать, это иметь один и тот же XML-ответ каждый раз с одинаковыми ключами (returnCode (0 = success,> 1 = error), returnValue / s).
Спасибо за любой совет.