diff options
Diffstat (limited to 'abs/core/LinHES-config/systemconfig.py')
-rwxr-xr-x | abs/core/LinHES-config/systemconfig.py | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/abs/core/LinHES-config/systemconfig.py b/abs/core/LinHES-config/systemconfig.py new file mode 100755 index 0000000..c559e09 --- /dev/null +++ b/abs/core/LinHES-config/systemconfig.py @@ -0,0 +1,243 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +import sys, os, commands, glob, time +import getopt, re, MySQLdb +import logging +import mv_common , mv_network +import inspect +#____________________________________________setup the logging______________________________________________________ +LOG_FILENAME = '/tmp/systemconfig.log' +DEBUGLOG = '/tmp/systemconfig_debug.log' +logging.basicConfig(level=logging.DEBUG, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + datefmt='%m-%d %H:%M', + filename=DEBUGLOG, + filemode='w') +# define a Handler which writes INFO messages or higher to the sys.stderr +console = logging.StreamHandler() +console.setLevel(logging.INFO) +# set a format which is simpler for console use +#formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') +formatter = logging.Formatter("%(message)s") +# tell the handler to use this format +console.setFormatter(formatter) +# add the handler to the root logger +logging.getLogger('').addHandler(console) + +#infoformatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") +infoformatter = logging.Formatter("%(message)s") +infofile = logging.FileHandler(LOG_FILENAME, 'w') +infofile.setFormatter(infoformatter) +infofile.setLevel(logging.INFO) +logging.getLogger('').addHandler(infofile) + + +def usage(): + logging.info("tell people how to use this") + +def setup_x(systemconfig): + cmd = "%s/bin/xconfig.sh" %systemconfig["MVROOT"] + mv_common.runcmd(cmd) + +def main(argv): + try: + MVROOT = os.environ["MV_ROOT"] + except: + logging.debug("MVROOT was not defined, using the default value") + MVROOT = "/usr/MythVantage" + + global cmdmodule + global systemconfig + systemconfig["MVROOT"]=MVROOT + restartlcd = False + cmdmodule={"misc":False , "sleep":False , "hostype":False , "hostypec":False , "advanced":False , "audio":False , "network":False , "advancedX":False , "webuser":False , "restartfe":False , "reloadfe":False , "ddns":False , "screensaver":False , "ir":False , "this_is_install":False , "user":False, "software":False, "plugins":False, "smolt":False, "all":False, "dhcp_request":False } + try: + opts, args = getopt.getopt(argv, 'c:hm:d:', ["help","modules" ] ) + except getopt.GetoptError, why: + print why + usage() + print "exception happened" + sys.exit(2) + for opt, arg in opts: + if opt in ("-h", "--help"): + usage() + sys.exit(0) + elif opt in ("-m"): + for i in arg.split(","): + cmdmodule[i]=True + elif opt in ("-d"): + dhcp_dev = arg + + + if cmdmodule["this_is_install"] or cmdmodule["hostypec"]: + systemconfig["hostypec"] = True + cmdmodule["smolt"] = True + + systemconfig["mythip"] = mv_network.setup_MYTH_IP(systemconfig) + systemconfig["mythdhcp"] = mv_network.setup_MYTH_DHCP(systemconfig) + systemconfig["mythgw"] = mv_network.setup_MYTH_DHCP(systemconfig) + systemconfig["mythdns"] = mv_network.setup_MYTH_DHCP(systemconfig) + + if cmdmodule["all"]: + logging.info("*** WILL RUN ALL MODULES ***") + cmdmodule["hostype"] = True + cmdmodule["ir"]= True + cmdmodule["network"] = True + cmdmodule["audio"] = True + cmdmodule["misc"] = True + cmdmodule["sleep"] = True + cmdmodule["webuser"] = True + cmdmodule["ddns"] = True + cmdmodule["screensaver"] = True + cmdmodule["advanced"] = True + cmdmodule["software"] = True + cmdmodule["advancedX"] = True + cmdmodule["smolt"] = True + cmdmodule["user"] = True + + + if cmdmodule["hostype"]: + import mv_hostype + cmdmodule["advancedX"] = True + setup_x(systemconfig) + cmdmodule["ir"] = True + mv_hostype.hostypeprint(systemconfig) + cmdmodule["smolt"] = True + + if cmdmodule["network"]: + restartfe = mv_network.setup_network(systemconfig, cmdmodule["this_is_install"]) + if restartfe == True : + logging.debug(" Setting the frontend to restart due to network change") + cmdmodule["restartfe"] = True + + + + if cmdmodule["ir"] == True: + import mv_ir + restart = mv_ir.setup_ir(systemconfig,data_config) + restartfe = restart[0] + restartlcd = restart[1] + if restartfe == True : + logging.debug(" Setting the frontend to restart due to lirc change") + cmdmodule["restartfe"] = True + cmdmodule["smolt"] = True + + + if cmdmodule["audio"] == True: + logging.debug("______Start of Audio Configuration______") + if not systemconfig["Audiotype"] == "tinker": + cmd="%s/bin/soundconfig.sh -t real -i %s -d %s" %(MVROOT,systemconfig["Audiotype"],systemconfig["SoundDevice"]) + mv_common.runcmd(cmd) + else: + logging.debug(" Tinker mode(audio), not changing configuration") + logging.debug("__End of audio") + + if cmdmodule["misc"]: + import mv_misc + mv_misc.setup_zip(MVROOT,systemconfig["zipcode"]) + mv_misc.setup_tz(systemconfig["timezone"],systemconfig["TEMPLATES"]) + mv_misc.setup_nfs(systemconfig) + + if cmdmodule["sleep"]: + import mv_misc + mv_misc.setup_sleep(systemconfig) + + if cmdmodule["webuser"]: + import mv_webuser + mv_webuser.setup_web_auth(systemconfig["UseMythWEB_auth"]) + + if cmdmodule["ddns"]: + print " LOOK FOR DDNS" + + if cmdmodule["screensaver"]: + import mv_screensaver + mv_screensaver.setup_screensaver(systemconfig, data_config) + + if cmdmodule["advanced"]: + import mv_advanced + mv_advanced.setup_advanced(systemconfig, data_config) + + if cmdmodule["software"] or cmdmodule["plugins"]: + import mv_software + mv_software.setup_software(systemconfig, data_config) + + if cmdmodule["advancedX"]: + setup_x(systemconfig) + + if cmdmodule["restartfe"]: + mv_common.restartfe(restartlcd) + + if cmdmodule["reloadfe"]: + mv_common.reloadfe(systemconfig["dbhost"],restartlcd) + + if cmdmodule["smolt"]: + import mv_smolt + mv_smolt.setup_smolt_type(systemconfig["SystemType"], + systemconfig["Remotetype"], + systemconfig["RunFrontend"], + data_config.MYTHHOME, + data_config.SYSTEMTYPE) + + if cmdmodule["user"]: + logging.info("____Start of ssh user____") + if systemconfig["rootSSH"] == "1" : + logging.info(" Allowing ssh access for root") + cmd = '''sed -i "s/^.*PermitRootLogin.*$/PermitRootLogin yes/" /etc/ssh/sshd_config''' + mv_common.runcmd(cmd) + else: + logging.info(" Removing ssh access for root") + cmd = '''sed -i "s/^.*PermitRootLogin.*$/PermitRootLogin no/" /etc/ssh/sshd_config''' + mv_common.runcmd(cmd) + logging.info("__End of ssh user\n") + + if cmdmodule["dhcp_request"]: + cmd = '''dhcpcd -t4 -h' ' -Td %s > /tmp/mvnetwork.dhcpinfo ''' %dhcp_dev + mv_common.runcmd(cmd) + + +if __name__ == "__main__": + + config_file = "mv_config" + data_config = __import__(config_file, globals(), locals(), []) + #Read in systemconfig + global systemconfig + systemconfig = {"hostypec":False} + file_name = "/etc/systemconfig" + try: + config_file = open(file_name) + except: + logging.critical("%s could not be opened", file_name) + sys.exit(1) + + for line in config_file: + line = line.strip() + if line and line[0] is not "#" and line[-1] is not "=": + var, val = line.rsplit("=", 1) + val = val.strip('"') + systemconfig[var.strip()] = val.strip() + try: + systemconfig["TEMPLATES"] = os.environ["TEMPLATES"] + except: + logging.critical(" *TEMPLATES is not defined") + logging.critical(" *using default value") + systemconfig["TEMPLATES"] = "/usr/MythVantage/templates" + + logging.debug("______START OF DEBUG______") + main(sys.argv[1:]) + logging.debug("______cmd line options______") + for i in cmdmodule.items(): + logging.debug (i) + logging.debug("______systemconfig______") + for i in systemconfig.items(): + logging.debug(i) + #pass + + + + + + + + + + |