summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-config/systemconfig.py
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/LinHES-config/systemconfig.py')
-rwxr-xr-xabs/core/LinHES-config/systemconfig.py243
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
+
+
+
+
+
+
+
+
+
+