88 lines
2.8 KiB
Python
88 lines
2.8 KiB
Python
"""
|
|
The purpose of this script is to consolidate into one location where
|
|
we need to update database host, dbname, username and password.
|
|
|
|
This script reads from /etc/airtime/airtime.conf.
|
|
"""
|
|
import os
|
|
import sys
|
|
import ConfigParser
|
|
import xml.dom.minidom
|
|
from xml.dom.minidom import Node
|
|
|
|
if os.geteuid() != 0:
|
|
print "Please run this as root."
|
|
sys.exit(1)
|
|
|
|
airtime_conf = '/etc/airtime/airtime.conf'
|
|
|
|
#Read the universal values
|
|
parser = ConfigParser.SafeConfigParser()
|
|
parser.read(airtime_conf)
|
|
|
|
host = 'resources.db.params.host'
|
|
dbname = 'resources.db.params.dbname'
|
|
username = 'resources.db.params.username'
|
|
password = 'resources.db.params.password'
|
|
|
|
airtime_dir = parser.get('general', 'airtime_dir')
|
|
if os.path.exists(airtime_dir):
|
|
print 'Airtime root folder found at %s' % airtime_dir
|
|
else:
|
|
print 'Could not find Airtime root folder specified by "airtime_dir" in %s' % airtime_conf
|
|
sys.exit(1)
|
|
|
|
print ("Updating %s/application/configs/application.ini" % airtime_dir)
|
|
f = file('%s/application/configs/application.ini' % airtime_dir,'r')
|
|
file_lines = []
|
|
|
|
for line in f:
|
|
if line[0:len(host)] == host:
|
|
line= '%s = "%s"\n' % (host, parser.get('database', 'host'))
|
|
elif line[0:len(dbname)] == dbname:
|
|
line= '%s = "%s"\n' % (dbname, parser.get('database', 'dbname'))
|
|
elif line[0:len(username)] == username:
|
|
line= '%s = "%s"\n' % (username, parser.get('database', 'dbuser'))
|
|
elif line[0:len(password)] == password:
|
|
line= '%s = "%s"\n' % (password, parser.get('database', 'dbpass'))
|
|
file_lines.append(line)
|
|
f.close()
|
|
|
|
f = file('%s/application/configs/application.ini' % airtime_dir, 'w')
|
|
f.writelines(file_lines)
|
|
f.close()
|
|
|
|
|
|
print ("Updating %s/build/build.properties" % airtime_dir)
|
|
|
|
f = file('%s/build/build.properties' % airtime_dir, 'r')
|
|
file_lines = []
|
|
|
|
db_url = 'propel.database.url'
|
|
|
|
for line in f:
|
|
if line[0:len(db_url)] == db_url:
|
|
line = '%s = pgsql:host=%s dbname=%s user=%s password=%s\n' % \
|
|
(db_url, parser.get('database', 'host'), parser.get('database', 'dbname'), parser.get('database', 'dbuser'), \
|
|
parser.get('database', 'dbpass'))
|
|
file_lines.append(line)
|
|
f.close()
|
|
|
|
f = file('%s/build/build.properties' % airtime_dir, 'w')
|
|
f.writelines(file_lines)
|
|
f.close()
|
|
|
|
print ("Updating %s/build/runtime-conf.xml" % airtime_dir)
|
|
|
|
doc = xml.dom.minidom.parse('%s/build/runtime-conf.xml' % airtime_dir)
|
|
|
|
node = doc.getElementsByTagName("dsn")[0]
|
|
node.firstChild.nodeValue = 'pgsql:host=%s;port=5432;dbname=%s;user=%s;password=%s' % (parser.get('database', 'host'), \
|
|
parser.get('database', 'dbname'), parser.get('database', 'dbuser'), parser.get('database', 'dbpass'))
|
|
|
|
xml_file = open('%s/build/runtime-conf.xml' % airtime_dir, "w")
|
|
xml_file.writelines(doc.toxml('utf-8'))
|
|
xml_file.close()
|
|
|
|
print "Success!"
|