示例#1
0
def sendDeployNotice(order_id,mask):
    try:
        config = Email_Config.objects.get(id=1)
        order = Project_Order.objects.get(id=order_id)
    except:
        return False
    content = """<strong>申请人:</strong>{user}<br>                                          
            <strong>更新内容:</strong>{content}<br>
            <strong>工单地址:</strong><a href='{site}/deploy_order/status/{order_id}/'>点击查看工单详情</a><br>
            <strong>授权人:</strong>{auth}<br>
            <strong>状态:</strong>{mask}<br>""".format(order_id=order_id,user=order.order_user,
                                                     site=config.site,auth=order.order_audit,
                                                     content=order.order_content,mask=mask)
    if order.order_status == 2:to_user = order.order_audit
    else: to_user = order.order_user
    CGroups(to_user).send({'text': json.dumps({"title":"你有一条新的工单需要处理<br>","type":"info","messages":content})})
    if order.order_cancel:
        content += "撤销原因:<strong>{order_cancel}</strong>".format(order_cancel=order.order_cancel)
    to_user = User.objects.get(username=to_user).email
    if config.subject:subject = "{sub} {oub} {mask}".format(sub=config.subject,oub=order.order_subject,mask=mask)
    else:subject = "{oub} {mask}".format(mask=mask,oub=order.order_subject)
    if config.cc_user:
        cc_to = config.cc_user
    else:cc_to = None
    base.sendEmail(e_from=config.user,e_to=to_user,cc_to=cc_to,
                   e_host=config.host,e_passwd=config.passwd,
                   e_sub=subject,e_content=content)
    return True
示例#2
0
文件: sched.py 项目: laowa/CMDB-02
def expireAssets(**kw):   
    if kw.has_key('expire') and kw.has_key('user'): 
        try:
            config = Email_Config.objects.get(id=1)
        except Exception ,ex:
            return ex        
        expired = []
        expire_soon = []
        serverList = Assets.objects.raw('SELECT id,management_ip,expire_date,expire_date - CURDATE() as diff from opsmanage_assets where expire_date - CURDATE() is not null;')
        for ds in serverList:
            if  ds.diff < 0:expired.append(ds)
            elif ds.diff >= 0 and ds.diff < kw.has_key('expire'):expire_soon.append(ds)
        if  expired or  expire_soon:
            trs = ''    
            for s in expired + expire_soon:
                tr = '''
                <tr>
                   <td><a href="{url}/assets_view/{sid}/">{host}</a></td>
                   <td>{exdate}</td>
                   <td>{day}</td>
                </tr>'''.format(url=config.site,sid=s.id,host=s.management_ip,exdate=s.expire_date,day=s.diff)
                trs = trs + tr
            table = '''<table border="1" width="600" rules="all">
                         <caption>Assets Expire Alert </caption>
                         <colgroup span="1" width="200"></colgroup>
                         <colgroup span="3" width="400"></colgroup>
                            <tbody align='center'>
                            <tr>
                               <td bgColor=#C0C0C0>主机ip</td>
                               <td bgColor=#C0C0C0>过期日期</td>
                               <td bgColor=#C0C0C0>剩余</td>
                            </tr>
                              %s
                            </tbody>
                        </table> ''' % trs
            content = table + """注:负数表示<strong>按照预警规则</strong>已经过期多少天"""
            try:
                to_user = User.objects.get(username=kw.get('user')).email
            except Exception, ex:
                return ex                                            
            if config.subject:subject = "{sub} 资产过期提醒  【重要】".format(sub=config.subject)
            else:subject = "资产过期提醒  【重要】"
            if config.cc_user:
                cc_to = config.cc_user
            else:cc_to = None
            base.sendEmail(e_from=config.user,e_to=to_user,cc_to=cc_to,
                           e_host=config.host,e_passwd=config.passwd,
                           e_sub=subject,e_content=content)
            return True 
示例#3
0
文件: tasks.py 项目: yy1117/OpsManage
def sendDeployEmail(order_id, mask):
    try:
        config = Email_Config.objects.get(id=1)
        order = Project_Order.objects.get(id=order_id)
    except:
        return False
    content = """申请人:{user}<br>                                          
                                         更新内容:{content}<br>
                                        工单地址:<a href='{site}/deploy_order/status/{order_id}/'>点击查看工单</a><br>
                                        授权人:{auth}<br>""".format(
        order_id=order_id,
        user=order.order_user,
        site=config.site,
        auth=order.order_audit,
        content=order.order_content)
    if order.order_cancel:
        content += "撤销原因:<strong>{order_cancel}</strong>".format(
            order_cancel=order.order_cancel)
    to_user = User.objects.get(username=order.order_audit).email
    if config.subject:
        subject = "{sub} {oub} {mask}".format(sub=config.subject,
                                              oub=order.order_subject,
                                              mask=mask)
    else:
        subject = "{oub} {mask}".format(mask=mask, oub=order.order_subject)
    if config.cc_user:
        cc_to = config.cc_user
    else:
        cc_to = None
    base.sendEmail(e_from=config.user,
                   e_to=to_user,
                   cc_to=cc_to,
                   e_host=config.host,
                   e_passwd=config.passwd,
                   e_sub=subject,
                   e_content=content)
    return True
示例#4
0
def sendEmail(order_id,mask):
    try:
        config = Email_Config.objects.get(id=1)
        order = Project_Order.objects.get(id=order_id)
    except:
        return False
    content = """申请人:{user}<br>                                          
                                         更新内容:{content}<br>
                                        工单地址:<a href='{site}/deploy_order/status/{order_id}/'>点击查看工单</a><br>
                                        授权人:{auth}<br>""".format(order_id=order_id,user=order.order_user,
                                           site=config.site,auth=order.order_audit,
                                           content=order.order_content)
    if order.order_cancel:
        content += "撤销原因:<strong>{order_cancel}</strong>".format(order_cancel=order.order_cancel)
    to_user = User.objects.get(username=order.order_audit).email
    if config.subject:subject = "{sub} {oub} {mask}".format(sub=config.subject,oub=order.order_subject,mask=mask)
    else:subject = "{oub} {mask}".format(mask=mask,oub=order.order_subject)
    if config.cc_user:
        cc_to = config.cc_user
    else:cc_to = None
    base.sendEmail(e_from=config.user,e_to=to_user,cc_to=cc_to,
                   e_host=config.host,e_passwd=config.passwd,
                   e_sub=subject,e_content=content)
    return True
示例#5
0
文件: tasks.py 项目: yy1117/OpsManage
    except Exception, ex:
        return ex
    if config.subject:
        subject = "{sub} {oub} {mask}".format(sub=config.subject,
                                              oub=order.order_desc,
                                              mask=mask)
    else:
        subject = "{oub} {mask}".format(mask=mask, oub=order.order_subject)
    if config.cc_user:
        cc_to = config.cc_user
    else:
        cc_to = None
    base.sendEmail(e_from=config.user,
                   e_to=to_user,
                   cc_to=cc_to,
                   e_host=config.host,
                   e_passwd=config.passwd,
                   e_sub=subject,
                   e_content=content)
    return True


@task
def AnsibleScripts(**kw):
    logId = None
    resource = []
    try:
        if kw.has_key('scripts_id'):
            script = Ansible_Script.objects.get(id=kw.get('scripts_id'))
            filePath = os.getcwd() + str(script.script_file)
            if kw.has_key('hosts'):
示例#6
0
文件: sql.py 项目: amoyx/OpsManage
                                                       order_url=order_url)
 try:
     to_user = User.objects.get(id=order.order_executor)
 except Exception, ex:
     return ex
 if order.order_status == 1:to_username = User.objects.get(id=order.order_executor).username
 else:to_username = User.objects.get(id=order.order_user).username
 #判断是否开启了部署通知
 if group_config.email == 1:CGroups(to_username).send({'text': json.dumps({"title":"你有一条新的工单需要处理<br>","type":"info","messages":content})})
 if order.order_cancel:
     content += "<strong>撤销原因:</strong>{order_cancel}".format(order_cancel=order.order_cancel)
 if email_config.subject:subject = "{sub} {oub} {mask}".format(sub=email_config.subject,oub=order.order_subject,mask=mask)
 else:subject = "{oub} {mask}".format(mask=mask,oub=order.order_subject)
 if email_config.cc_user:
     cc_to = email_config.cc_user
 else:cc_to = None
 if order.order_type==1 and group_config.email == 1:#如果是代码部署并且全局配置开启了邮件通知
     base.sendEmail(e_from=email_config.user,e_to=to_user.email,cc_to=cc_to,
                    e_host=email_config.host,e_passwd=email_config.passwd,
                    e_sub=subject,e_content=content)  
 elif order.order_type==0 and group_config.sql == 1:#如果是SQL部署并且全局配置开启了邮件通知      
     if sql_config.t_email == 1 and order.sql_audit_order.order_db.db_env == 'test': 
         base.sendEmail(e_from=email_config.user,e_to=to_user.email,cc_to=cc_to,
                        e_host=email_config.host,e_passwd=email_config.passwd,
                        e_sub=subject,e_content=content)
     elif sql_config.p_email == 1 and order.sql_audit_order.order_db.db_env == 'prod':
         base.sendEmail(e_from=email_config.user,e_to=to_user.email,cc_to=cc_to,
                        e_host=email_config.host,e_passwd=email_config.passwd,
                        e_sub=subject,e_content=content) 
 else:
     return  '请在全局配置开启相关邮件通知'