Я пытаюсь написать локальную проверку Python, которая отправляет XML-запрос в службу WSDL и получает ответ в виде XML. Сценарий отлично работает на сервере (Ubuntu 18.04.2 LTS Server) и печатает результаты, которые я хочу. Но check_mk (установленный на другом сервере) не читает этот вывод полностью.
Сервер, на котором я хотел бы запустить скрипт, запускает Python 2.7.15rc1 на Ubuntu 18.04.2 LTS, но сервер check_mk запускает Python 2.7.5 на CentOS Linux 7 (Core). Также я заметил, что один и тот же скрипт работает на сервере check_mk не так, как я ожидаю. Я должен изменить блок try-exc, чтобы скрипт работал на сервере Check_MK.
#!/usr/bin/python
import requests, base64, re
xml_file = 'request.xml'
hdr = {'Content-Type' : 'text/xml',
'Authorization' : 'Basic somestring')
}
with open(xml_file) as xml:
req = requests.post('http://192.168.39.17:8080/GatewayWebservicesBean?wsdl', data=xml, headers=hdr)
scode = req.status_code
try:
resp = re.search(r'<message>(.*?)</message>', req.content).group(1)
except AttributeError:
print '2 gw_check c=1;0;1;0 Cannot Access to Gateway! Status Code: %s' %scode #Check_MK doesn't read this output
else:
if resp == 'Access':
print '0 eagw_check c=0;0;1;0 OK - Gateway works well'
else:
print '2 eagw_check c=1;0;1;0 Please check internal system! Respond from internal system: %s' %resp