Code: Select all
#!/usr/bin/env python
import re
config = open('/usr/local/nagios/share/nagvis/etc/nagvis.ini.php', 'r')
configlines = config.readlines()
config.close()
whitespace = re.compile('^\s*$') # Matches a blank line
defre = re.compile('^;?\[defaults\]\S*') # Matches default settings section
bere = re.compile('^;?backend\S*') # Matches default backend setting
bendo1re = re.compile('^;?\[backend_ndomy_1\]\S*') # Matches first ndomy backend
betypere = re.compile('^;?backendtype\S*') # Matches backend type
dbure = re.compile('^;?dbuser\S*') # Matches database user name
dbpre = re.compile('^;?dbpass\S*') # Matches database password
dbinre = re.compile('^;?dbinstancename\S*') # Matches database instance name
# Find section for [defaults]
for line in configlines:
if defre.match(line) != None:
defaultstart = configlines.index(line)
break
for line in configlines[defaultstart:]:
if whitespace.match(line) != None:
defaultend = configlines[defaultstart:].index(line) + defaultstart
break
# Edit [defaults] section
for line in configlines[defaultstart:defaultend]:
if bere.match(line) != None:
configlines[ defaultstart + configlines[defaultstart:defaultend].index(line) ] = 'backend="ndomy_1"\n'
# Find section for [backend_ndomy_1]
for line in configlines:
if bendo1re.match(line) != None:
backendstart = configlines.index(line)
break
for line in configlines[backendstart:]:
if whitespace.match(line) != None:
backendend = configlines[backendstart:].index(line) + backendstart
break
# Edit [backend_ndomy_1] section
for line in configlines[backendstart:backendend]:
if betypere.match(line) != None:
configlines[ backendstart + configlines[backendstart:backendend].index(line) ] = 'backendtype="ndomy"\n'
elif dbure.match(line) != None:
configlines[ backendstart + configlines[backendstart:backendend].index(line) ] = 'dbuser="ndoutils"\n'
elif dbpre.match(line) != None:
configlines[ backendstart + configlines[backendstart:backendend].index(line) ] = 'dbpass="n@gweb"\n'
elif dbinre.match(line) != None:
configlines[ backendstart + configlines[backendstart:backendend].index(line) ] = 'dbinstancename="localhost"\n'
# Write out changes
config = open('/usr/local/nagios/share/nagvis/etc/nagvis.ini.php', 'w')
config.writelines(configlines)
config.close()