def poll():
"""
Iterates over all the active services in the database and attempt to execute that service's functionality.
The success or failure of the service and any error messages are stored in the database.
"""
for service in execute_db_query('select * from service where service_active = 1'):
sleep(2)
# Grab the service from the database
row = execute_db_query('select * from service_type join service ON (service_type.service_type_id = service.service_type_id) where service.service_type_id = ?', [service['service_type_id']])[0]
if row:
type = row['service_type_name']
# Perform DNS Request
if type == 'dns':
poll_dns.delay(timeout, service['service_id'], service['service_connection'], service['service_request'], service['service_expected_result'])
# Perform HTTP(S) Request
elif type == 'http' or type == 'https':
poll_web.delay(timeout, service['service_id'], row['service_type_name'], service['service_connection'], service['service_request'], service['service_expected_result'])
# Perform FTP Request
elif type == 'ftp':
poll_ftp.delay(timeout, service['service_id'], service['service_connection'], service['service_request'], service['service_expected_result'])
# Perform SMTP request to send mail, POP3 to retrieve it back
elif type == 'mail':
poll_mail.delay(timeout, service['service_id'], service['service_connection'], service['service_request'], service['service_expected_result'])
评论列表
文章目录