import elasticsearch
import datetime
import smtplib
from email.message import EmailMessage


if __name__ == '__main__': 
    hosts = '192.168.17.11'
    port = 80
    user = 'zhouyujiang'
    passwd = '8tM9JDN2LVxM'
    http_auth = (user, passwd)
    es = elasticsearch.Elasticsearch(hosts=hosts, port=port, http_auth=http_auth)
    
    send_email_status = ['yellow', 'red']
    
    status_dict  = es.cat.health(format='json')
    
    email_group=['hanye@csm.com.cn','litao@csm.com.cn','zhouyujiang@csm.com.cn',
                 'gengdi@csm.com.cn']
        
    csm_mail_service = 'mail.csm.com.cn'
    sender = 'zhouyujiang@csm.com.cn'
    
    
    if status_dict[0]['status'] in send_email_status:
            date_str = str(datetime.datetime.now())[0:10]
    
            email_subj = '[CCR-ES集群{status}预警] {date}'.format(date=date_str,
                                                             status=status_dict[0]['status'])
            email_msg_body = 'CCR-ES集群{status}预警\ncat_health:\n{status_dict}'.format(status_dict=status_dict[0],
                                                                                            status=status_dict[0]['status'])
            email_msg = EmailMessage()
            email_msg.set_content(email_msg_body)
            email_msg['Subject'] = email_subj
            email_msg['From'] = sender
            email_msg['to'] = email_group
    
            server = smtplib.SMTP(host=csm_mail_service)
            server.send_message(email_msg)
            server.quit()
    else:
        print('ok')