def configure_email_settings(request): return_dict = {} url = "edit_email_settings.html" if request.method=="GET": d = mail.load_email_settings() if not d: form = admin_forms.ConfigureEmailForm() else: if d["tls"]: d["tls"] = True else: d["tls"] = False if d["email_alerts"]: d["email_alerts"] = True else: d["email_alerts"] = False form = admin_forms.ConfigureEmailForm(initial = {'email_server':d["server"], 'email_server_port':d["port"], 'tls':d["tls"], 'username':d["username"], 'email_alerts':d["email_alerts"], 'rcpt_list':d["rcpt_list"]}) else: form = admin_forms.ConfigureEmailForm(request.POST) if form.is_valid(): cd = form.cleaned_data d = {} if "email_alerts" in cd: d["email_alerts"] = cd["email_alerts"] else: d["email_alerts"] = False d["server"] = cd["email_server"] d["port"] = cd["email_server_port"] d["username"] = cd["username"] d["pswd"] = cd["pswd"] d["rcpt_list"] = cd["rcpt_list"] if "tls" in cd: d["tls"] = cd["tls"] else: d["tls"] = False #print "Saving : " #print d try: mail.save_email_settings(d) except Exception, e: iv_logging.debug("Exception when trying to save email settings : %s"%e) return django.http.HttpResponseRedirect("/show/email_settings?not_saved=1&err=%s"%str(e)) ret = mail.send_mail(cd["email_server"], cd["email_server_port"], cd["username"], cd["pswd"], cd["tls"], cd["rcpt_list"], "Test email from FractalView", "This is a test email sent by the Fractal View system in order to confirm that your email settings are working correctly.") if ret: return django.http.HttpResponseRedirect("/show/email_settings?saved=1&err=%s"%ret) else: return django.http.HttpResponseRedirect("/show/email_settings?saved=1")
def audit(audit_action, audit_str, ip_meta, system_initiated=False): try: audit_file, err = _get_audit_file_path() if err: raise Exception(err) if system_initiated is False: ip, err = networking.get_client_ip(ip_meta) if err: raise Exception(err) t = int(time.time()) d = {} d["time"] = t d["audit_str"] = audit_str d["audit_action"] = audit_action audit_description = "" with open(audit_file, "a") as f: if system_initiated is False: audit_description = "%-13d %-16s %-25s %-45s\n" % ( t, ip, audit_action, audit_str) else: audit_description = "%-13d %-16s %-25s %-45s\n" % ( t, "System", audit_action, audit_str) f.write(audit_description) f.flush() f.close() # Audit email trail d, err = mail.load_email_settings() filename, err = _get_audit_file_path() if err: raise Exception(err) if d: if d["email_audit"]: ret, err = mail.send_mail( d["server"], d["port"], d["username"], d["pswd"], d["tls"], d["rcpt_list"], "Audit from Integralstor " + networking.get_hostname()[0], audit_description) if err: raise Exception(err) except Exception, e: return False, 'Error performing an audit operation : %s' % str(e)
def raise_alert( msg_list, subject=None, ): try: t = int(time.time()) filename, err = _get_alerts_file_path() if err: raise Exception(err) with open(filename, "a") as f: fcntl.flock(f, fcntl.LOCK_EX) for msg in msg_list: f.write("\n%-13d %s\n" % (t, msg)) fcntl.flock(f, fcntl.LOCK_UN) f.close() d, err = mail.load_email_settings() if err: raise Exception(err) if d: if d["email_alerts"]: ret, err = mail.send_mail( d["server"], d["port"], d["username"], d["pswd"], d["tls"], d["rcpt_list"], "Alerts from IntegralStor " + networking.get_hostname()[0], '\n'.join(msg_list)) if err: with open(filename, "a") as f: fcntl.flock(f, fcntl.LOCK_EX) f.write("\n%-13d %s\n" % (t, "Error sending email alert %s" % err)) fcntl.flock(f, fcntl.LOCK_UN) f.close() raise Exception(err) except Exception, e: print "Error raising alert : %s" % str(e) with open(filename, "a") as f: fcntl.flock(f, fcntl.LOCK_EX) f.write("\n%-13d %s\n" % (t, "Error raising alert : %s" % str(e))) fcntl.flock(f, fcntl.LOCK_UN) f.close()
template = "view_integral_view_log_level.html" try: log_level = iv_logging.get_log_level_str() except Exception, e: return_dict["error"] = str(e) else: return_dict["log_level_str"] = log_level if "saved" in request.REQUEST: return_dict["saved"] = request.REQUEST["saved"] elif page == "email_settings": #print "here" try: d = mail.load_email_settings() if not d: return_dict["email_not_configured"] = True else: if d["tls"]: d["tls"] = True else: d["tls"] = False if d["email_alerts"]: d["email_alerts"] = True else: d["email_alerts"] = False return_dict["email_settings"] = d if "saved" in request.REQUEST: return_dict["saved"] = request.REQUEST["saved"] if "not_saved" in request.REQUEST:
def configure_email_settings(request): try: return_dict = {} url = "edit_email_settings.html" if request.method=="GET": d, err = mail.load_email_settings() if err: raise Exception(err) if not d: form = admin_forms.ConfigureEmailForm() else: if d["tls"]: d["tls"] = True else: d["tls"] = False if d["email_alerts"]: d["email_alerts"] = True else: d["email_alerts"] = False form = admin_forms.ConfigureEmailForm(initial = {'email_server':d["server"], 'email_server_port':d["port"], 'tls':d["tls"], 'username':d["username"], 'email_alerts':d["email_alerts"], 'rcpt_list':d["rcpt_list"]}) else: form = admin_forms.ConfigureEmailForm(request.POST) if form.is_valid(): cd = form.cleaned_data d = {} if "email_alerts" in cd: d["email_alerts"] = cd["email_alerts"] else: d["email_alerts"] = False d["server"] = cd["email_server"] d["port"] = cd["email_server_port"] d["username"] = cd["username"] d["pswd"] = cd["pswd"] d["rcpt_list"] = cd["rcpt_list"] if "tls" in cd: d["tls"] = cd["tls"] else: d["tls"] = False #print "Saving : " #print d ret, err = mail.save_email_settings(d) if err: raise Exception(err) ret, err = mail.send_mail(cd["email_server"], cd["email_server_port"], cd["username"], cd["pswd"], cd["tls"], cd["rcpt_list"], "Test email from IntegralStor", "This is a test email sent by the IntegralStor system in order to confirm that your email settings are working correctly.") if err: raise Exception(err) if ret: return django.http.HttpResponseRedirect("/show/email_settings?saved=1&err=%s"%ret) else: return django.http.HttpResponseRedirect("/show/email_settings?saved=1") return_dict["form"] = form return django.shortcuts.render_to_response(url, return_dict, context_instance = django.template.context.RequestContext(request)) except Exception, e: return_dict['base_template'] = "system_base.html" return_dict["page_title"] = 'Change email notification settings' return_dict['tab'] = 'email_tab' return_dict["error"] = 'Error changing email notification settings' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response('logged_in_error.html', return_dict, context_instance = django.template.context.RequestContext(request))
def show(request, page, info = None): return_dict = {} try: si,err = system_info.load_system_config() if err: raise Exception(err) #assert False return_dict['system_info'] = si #By default show error page template = "logged_in_error.html" if page == "dir_contents": #CHANGE THIS TO SHOW LOCAL DIR LISTINGS!! return django.http.HttpResponse(dir_list,mimetype='application/json') elif page == "ntp_settings": return_dict['base_template'] = "services_base.html" return_dict["page_title"] = 'Network Time Protocol(NTP) settings ' return_dict['tab'] = 'ntp_settings_tab' return_dict["error"] = 'Error loading Network Time Protocol(NTP) settings ' template = "view_ntp_settings.html" ntp_servers, err = ntp.get_ntp_servers() if err: raise Exception(err) return_dict["ntp_servers"] = ntp_servers if "saved" in request.REQUEST: return_dict["saved"] = request.REQUEST["saved"] elif page == "integral_view_log_level": template = "view_integral_view_log_level.html" try: log_level = iv_logging.get_log_level_str() except Exception, e: return_dict["error"] = str(e) else: return_dict["log_level_str"] = log_level if "saved" in request.REQUEST: return_dict["saved"] = request.REQUEST["saved"] elif page == "email_settings": #print "here" return_dict['base_template'] = "system_base.html" return_dict["page_title"] = 'Email notifications settings ' return_dict['tab'] = 'email_tab' return_dict["error"] = 'Error loading email notifications settings ' d, err = mail.load_email_settings() if err: raise Exception(err) if not d: return_dict["email_not_configured"] = True else: if d["tls"]: d["tls"] = True else: d["tls"] = False if d["email_alerts"]: d["email_alerts"] = True else: d["email_alerts"] = False return_dict["email_settings"] = d if "saved" in request.REQUEST: return_dict["saved"] = request.REQUEST["saved"] if "not_saved" in request.REQUEST: return_dict["not_saved"] = request.REQUEST["not_saved"] if "err" in request.REQUEST: return_dict["err"] = request.REQUEST["err"] template = "view_email_settings.html"