from threading import Thread
import time
+from doctor_tests.common.constants import Inspector
from doctor_tests.identity_auth import get_session
from doctor_tests.monitor.base import BaseMonitor
def report_error(self, hostname):
self.log.info('sample monitor report error......')
- data = [
- {
- 'id': 'monitor_sample_id1',
- 'time': datetime.now().isoformat(),
- 'type': self.event_type,
- 'details': {
- 'hostname': hostname,
- 'status': 'down',
- 'monitor': 'monitor_sample',
- 'monitor_event_id': 'monitor_sample_event1'
- },
+ data = {
+ 'time': datetime.now().isoformat(),
+ 'type': self.event_type,
+ 'details': {
+ 'hostname': hostname,
+ 'status': 'down',
+ 'monitor': 'monitor_sample',
+ 'monitor_event_id': 'monitor_sample_event1'
},
- ]
+ }
auth_token = self.session.get_token() if \
- self.conf.inspector.type != 'sample' else None
+ self.conf.inspector.type != 'sample' else None
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Auth-Token': auth_token,
}
-
- url = '%s%s' % (self.inspector_url, 'events') \
- if self.inspector_url.endswith('/') else \
- '%s%s' % (self.inspector_url, '/events')
- requests.put(url, data=json.dumps(data), headers=headers)
+ if self.conf.inspector.type != Inspector.VITRAGE:
+ requests.put(self.inspector_url,
+ data=json.dumps([data]),
+ headers=headers)
+ else:
+ requests.post(self.inspector_url,
+ data=json.dumps(data),
+ headers=headers)
class Pinger(Thread):
sock.sendto(self.ICMP_ECHO_MESSAGE, (self.ip_addr, 0))
sock.recv(4096)
except socket.timeout:
- self.log.info("doctor monitor detected at %s" % time.time())
+ detected_time = time.time()
+ self.log.info("doctor monitor detected at %s" % detected_time)
+ self.monitor.detected_time = detected_time
self.monitor.report_error(self.hostname)
self.log.info("ping timeout, quit monitoring...")
self._stopped = True