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