📄 fillthresholds.py
字号:
#!/usr/bin/env python# -*- coding: ISO8859-1 -*-# $Id: fillthresholds.py 3388 2006-03-14 12:32:56Z mortenv $## Copyright 2003, 2004 Norwegian University of Science and Technology## This file is part of Network Administration Visualized (NAV)## NAV is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## NAV is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with NAV; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA### Authors: John Magne Bredal <bredal@itea.ntnu.no>#"""This python script sets the initial thresholds on some of the rrd-datasources. This is only meant to be done at installof NAV-v3, but may be done several times if there is a reasonfor that. The script will not overwrite any set thresholds."""import psycopgimport forgetSQLimport reimport nav.db.forgottenimport nav.pathfrom nav import dbconn = db.getConnection('thresholdmon','manage')from nav.db import managedef setData (datasource,threshold,max): datasource.threshold = threshold datasource.max = max datasource.delimiter = ">" datasource.thresholdstate = "inactive" datasource.save()def openFile (file): try: return open(file) except IOError: return None# setting default thresholddefault = "90"# read configfile to check for other valueconfdir = nav.path.sysconfdirfile = confdir + "/fillthresholds.cfg"handle = openFile (file)if handle: for line in handle.readlines(): if line.startswith("threshold"): default = line.split("=").pop().strip() print "Setting default value to %s" % default break handle.close() for datasource in manage.Rrd_datasource.getAllIterator(where="threshold IS NULL"): if datasource.units == '%' or datasource.units == '-%': print "Found percent %s: %s, setting threshold=%s, max=100" %(datasource.descr,datasource.units, default) setData(datasource,default,"100") elif re.compile("octets",re.I).search(datasource.descr): # Finds the speed of the interface rrdfile = datasource.rrd_file if (rrdfile.key == 'swport'): port = manage.Swport(rrdfile.value) else: port = manage.Gwport(rrdfile.value) try: port.load() except forgetSQL.NotFound: continue if port.speed: speed = int(port.speed * 2 ** 20) print "Found octets: %s, setting threshold to %s, max=%s" %(datasource.descr, default+"%", speed); setData(datasource,default+"%",speed) else: pass
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -