#!/usr/bin/python # -*- coding: utf-8 -*- # import MySQL module #used to import the zipcode/timezone/nfs info fromMBE import MySQLdb import sys import getopt import socket def usage(): print " -h --help" print " -d --installdb" print " -m --masterdb" print " -n --hostname of current machine" def printvars(): print "masterdb: " + masterdb print "installdb:" + installdb print "hostname: " + thishostname print "BEhostname:" + BEhostname print "zipcode:" + zipcode print "timezone:" + tz print "timezone region:" + tz_region print "timezone subregion:" + tz_subregion print "nfsip:" + nfsip print "nfstoggle:" + nfstoggle print "nfsmount:" + nfsmount print "hobbitclient:" + hobbitclient # connect def selectvars(): global BEhostname global zipcode global tz global tz_region global tz_subregion global nfsip global nfstoggle global nfsmount global hobbitclient db = MySQLdb.connect(host=masterdb, user="mythtv", passwd="mythtv", db="mythconverg") # create a cursor cursor = db.cursor() # execute SQL statement cursor.execute("select hostname from settings where value='BackendServerIP' and data=(%s)",(masterdb)) result = cursor.fetchone() try: BEhostname=result[0] except TypeError: BEhostname="" cursor.execute("select data from settings where value='HostZipcode' and hostname=(%s)",(BEhostname)) result = cursor.fetchone() try: zipcode = result[0] except TypeError: zipcode="" cursor.execute("select data from settings where value='HostCentralNFSIP' and hostname=(%s)",(BEhostname)) result = cursor.fetchone() try: nfsip=result[0] except TypeError: nfsip="" cursor.execute("select data from settings where value='HostHaveCentralNFS' and hostname=(%s)",(BEhostname)) result = cursor.fetchone() try: nfstoggle=result[0] except TypeError: nfstoggle="" cursor.execute("select data from settings where value='HostNFSmountpoint' and hostname=(%s)",(BEhostname)) result = cursor.fetchone() try: nfsmount=result[0] except TypeError: nfsmount="" cursor.execute("select data from settings where value='HostTimeZone' and hostname=(%s)",(BEhostname)) result = cursor.fetchone() try: tz=result[0] except TypeError: tz="" ########## cursor.execute("select data from settings where value='HostTimeZoneRegion' and hostname=(%s)",(BEhostname)) result = cursor.fetchone() try: tz_region=result[0] except TypeError: tz_region="" tempsubregion="HostTimeZoneRegion_" + tz_region cursor.execute("select data from settings where value=%s and hostname=(%s)",(tempsubregion,BEhostname)) result = cursor.fetchone() try: tz_subregion=result[0] except TypeError: tz_subregion="" ############### if ( thishostname != BEhostname ): cursor.execute("select data from settings where value='GlobalServiceHobbitserver'") result = cursor.fetchone() try: hobbitclient=result[0] except TypeError: hobbitclient="1" def insertvars(): db = MySQLdb.connect(host=installdb, user="mythtv", passwd="mythtv", db="mythconverg") cursor = db.cursor() #inserting the zipcode cursor.execute("select * from settings where value='HostZipcode' and hostname=(%s)",(thishostname)) result = cursor.fetchone() if ( zipcode!="" ): if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ('HostZipcode',(%s),(%s))",(zipcode,thishostname)) print "inserting zipcode" else: cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostZipcode'",(zipcode,thishostname)) print "updating zipcode" #inserting the timezone cursor.execute("select * from settings where value='HostTimeZone' and hostname=(%s)",(thishostname)) result = cursor.fetchone() if ( tz != ""): if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ('HostTimeZone',(%s),(%s))",(tz,thishostname)) print "inserting timezone" else: cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostTimeZone'",(tz,thishostname)) print "updating timezone" cursor.execute("select * from settings where value='HostTimeZoneRegion' and hostname=(%s)",(thishostname)) result = cursor.fetchone() if ( tz != ""): if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ('HostTimeZoneRegion',(%s),(%s))",(tz_region,thishostname)) print "inserting timezone region" else: cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostTimeZoneRegion'",(tz_region,thishostname)) print "updating timezone region" tempsubregion="HostTimeZoneRegion_" + tz_region cursor.execute("select * from settings where value=%s and hostname=(%s)",(tempsubregion,thishostname)) result = cursor.fetchone() if ( tz != ""): if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ((%s),(%s),(%s))",(tempsubregion,tz_subregion,thishostname)) print "inserting timezone subregion" else: cursor.execute("update settings set data=(%s) where hostname=(%s) and value=(%s)",(tempsubregion,tz_subregion,thishostname)) print "updating timezone subregion" #start of NFSIP cursor.execute("select data from settings where value='HostCentralNFSIP' and hostname=(%s)",(thishostname)) result = cursor.fetchone() if ( nfsip != ""): if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ('HostCentralNFSIP',(%s),(%s))",(nfsip,thishostname)) print "inserting nfsip" if (nfstoggle != ""): cursor.execute("select data from settings where value='HostHaveCentralNFS' and hostname=(%s)",(thishostname)) result = cursor.fetchone() if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ('HostHaveCentralNFS',(%s),(%s))",(nfstoggle,thishostname)) print "inserting nfstoggle" if ( nfsmount !="") : cursor.execute("select data from settings where value='HostNFSmountpoint' and hostname=(%s)",(thishostname)) result = cursor.fetchone() if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ('HostNFSmountpoint',(%s),(%s))",(nfsmount,thishostname)) print "inserting nfsmountpoint" #hobbitclient cursor.execute("select * from settings where value='HostServiceHobbitclient' and hostname=(%s)",(thishostname)) result = cursor.fetchone() if ( tz != ""): if (result == None): cursor.execute("INSERT INTO settings (value,data,hostname) VALUES ('HostServiceHobbitclient',(%s),(%s))",(hobbitclient,thishostname)) print "inserting hobbitcleint" else: cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostServiceHobbitclient'",(hobbitclient,thishostname)) print "updating hobbitclient" def main(argv): global masterdb global installdb global thishostname thishostname="" global BEhostname global zipcode global tz global tz_region global tz_subregion global nfsip global hobbitclient try: opts, args = getopt.getopt(argv, "hm:d:n:", ["help", "masterdb=", "installdb=" , "hostname=" ] ) except getopt.GetoptError: sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ( "-d" , "--installdb"): installdb = arg elif opt in ("-m", "--masterdb"): masterdb = arg elif opt in ("-n", "--hostname"): thishostname = arg if ( thishostname == "" ): thishostname = socket.gethostname() selectvars() printvars() insertvars() if __name__ == "__main__": main(sys.argv[1:])