summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/LinHES-system
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/LinHES-system')
-rw-r--r--abs/core-testing/LinHES-system/LinHES-profile.sh3
-rwxr-xr-xabs/core-testing/LinHES-system/LinHES-session13
-rwxr-xr-xabs/core-testing/LinHES-system/LinHES-start162
-rw-r--r--abs/core-testing/LinHES-system/LinHES.install90
-rwxr-xr-xabs/core-testing/LinHES-system/myth_mtc.py139
-rwxr-xr-xabs/core-testing/LinHES-system/myth_mtc.sh12
-rwxr-xr-xabs/core-testing/LinHES-system/optimize_mythdb.py16
7 files changed, 435 insertions, 0 deletions
diff --git a/abs/core-testing/LinHES-system/LinHES-profile.sh b/abs/core-testing/LinHES-system/LinHES-profile.sh
new file mode 100644
index 0000000..830b819
--- /dev/null
+++ b/abs/core-testing/LinHES-system/LinHES-profile.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+export LinHES_ROOT=/usr/LH
+export PATH=$PATH:/usr/LH/bin \ No newline at end of file
diff --git a/abs/core-testing/LinHES-system/LinHES-session b/abs/core-testing/LinHES-system/LinHES-session
new file mode 100755
index 0000000..05fc6d1
--- /dev/null
+++ b/abs/core-testing/LinHES-system/LinHES-session
@@ -0,0 +1,13 @@
+#!/bin/sh
+. /etc/profile
+. /etc/systemconfig
+
+xhost +local:
+xhost +127.0.0.1
+xset -dpms s off
+export MALLOC_CHECK_=0
+#start fluxbox
+fluxbox
+
+
+
diff --git a/abs/core-testing/LinHES-system/LinHES-start b/abs/core-testing/LinHES-system/LinHES-start
new file mode 100755
index 0000000..e638334
--- /dev/null
+++ b/abs/core-testing/LinHES-system/LinHES-start
@@ -0,0 +1,162 @@
+#!/bin/sh
+# $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld Exp $
+#
+# This is just a sample implementation of a slightly less primitive
+# interface than xinit. It looks for user .xinitrc and .xserverrc
+# files, then system xinitrc and xserverrc files, else lets xinit choose
+# its default. The system xinitrc should probably do things like check
+# for .Xresources files and merge them in, startup up a window manager,
+# and pop a clock and serveral xterms.
+#
+# Site administrators are STRONGLY urged to write nicer versions.
+#
+# $XFree86: xc/programs/xinit/startx.cpp,v 3.16tsi Exp $
+. /etc/profile
+
+unset DBUS_SESSION_BUS_ADDRESS
+unset SESSION_MANAGER
+
+userclientrc=/etc/X11/Sessions/LinHES
+userserverrc=$HOME/.xserverrc
+sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
+sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
+defaultclient=/usr/X11R6/bin/xterm
+defaultserver=/usr/X11R6/bin/X
+defaultclientargs=""
+defaultserverargs=""
+clientargs=""
+serverargs=""
+
+
+
+
+
+
+if [ -f $userclientrc ]; then
+ defaultclientargs=$userclientrc
+elif [ -f $sysclientrc ]; then
+ defaultclientargs=$sysclientrc
+fi
+
+
+
+
+if [ -f $userserverrc ]; then
+ defaultserverargs=$userserverrc
+elif [ -f $sysserverrc ]; then
+ defaultserverargs=$sysserverrc
+fi
+
+whoseargs="client"
+while [ x"$1" != x ]; do
+ case "$1" in
+ # '' required to prevent cpp from treating "/*" as a C comment.
+ /''*|\./''*)
+ if [ "$whoseargs" = "client" ]; then
+ if [ x"$clientargs" = x ]; then
+ client="$1"
+ else
+ clientargs="$clientargs $1"
+ fi
+ else
+ if [ x"$serverargs" = x ]; then
+ server="$1"
+ else
+ serverargs="$serverargs $1"
+ fi
+ fi
+ ;;
+ --)
+ whoseargs="server"
+ ;;
+ *)
+ if [ "$whoseargs" = "client" ]; then
+ clientargs="$clientargs $1"
+ else
+ # display must be the FIRST server argument
+ if [ x"$serverargs" = x ] && \
+ expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
+ display="$1"
+ else
+ serverargs="$serverargs $1"
+ fi
+ fi
+ ;;
+ esac
+ shift
+done
+
+# process client arguments
+if [ x"$client" = x ]; then
+ # if no client arguments either, use rc file instead
+ if [ x"$clientargs" = x ]; then
+ client="$defaultclientargs"
+ else
+ client=$defaultclient
+ fi
+fi
+
+# process server arguments
+if [ x"$server" = x ]; then
+ # if no server arguments or display either, use rc file instead
+ if [ x"$serverargs" = x -a x"$display" = x ]; then
+ server="$defaultserverargs"
+ else
+ server=$defaultserver
+ fi
+fi
+
+if [ x"$XAUTHORITY" = x ]; then
+ XAUTHORITY=$HOME/.Xauthority
+ export XAUTHORITY
+fi
+
+removelist=
+
+
+# set up default Xauth info for this machine
+case `uname` in
+Linux*)
+ if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then
+ hostname=`hostname -f`
+ else
+ hostname=`hostname`
+ fi
+ ;;
+*)
+ hostname=`hostname`
+ ;;
+esac
+
+authdisplay=${display:-:0}
+mcookie=`mcookie`
+for displayname in $authdisplay $hostname$authdisplay; do
+ if ! xauth list "$displayname" | grep "$displayname " >/dev/null 2>&1; then
+ xauth -q << EOF
+add $displayname . $mcookie
+EOF
+ removelist="$displayname $removelist"
+ fi
+done
+
+
+xinit $client $clientargs -- $server $display $serverargs
+
+if [ x"$removelist" != x ]; then
+ xauth remove $removelist
+fi
+
+
+
+
+
+if command -v deallocvt > /dev/null 2>&1; then
+ deallocvt
+fi
+
+
+
+
+
+
+
diff --git a/abs/core-testing/LinHES-system/LinHES.install b/abs/core-testing/LinHES-system/LinHES.install
new file mode 100644
index 0000000..e327edc
--- /dev/null
+++ b/abs/core-testing/LinHES-system/LinHES.install
@@ -0,0 +1,90 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+pre_install() {
+/bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+MVDIR=/usr/LinHES/bin
+# ln -s $MVDIR/backup_job /etc/cron.daily/backup_cron
+# ln -s $MVDIR/update_system /etc/cron.daily/xupdate_system_cron
+# ln -s $MVDIR/repo_sync.sh /etc/cron.daily/zrepo_sync.sh
+ ln -s $MVDIR/myth_mtc.sh /etc/cron.daily/myth_mtc.sh
+
+#LINE="mythtv ALL = NOPASSWD: /sbin/sv stop mythbackend"
+LINE="mythtv ALL=(ALL) NOPASSWD: ALL"
+LINE1="%wheel ALL=(ALL) NOPASSWD: ALL"
+
+
+for i in "$LINE" "$LINE1" "$LINE2" "$LINE3" "$LINE4" "$LINE5" "$LINE7" "$LINE8" "$LINE9" "$LINE10" "$LINE11" "$LINE12" "$LINE13" "$LINE14" "$LINE15" "$LINE16"
+do
+ cp /etc/sudoers /etc/sudoers.bak
+ grep -q "$i" /etc/sudoers
+ if [ $? != 0 ]
+ then
+ echo "$i" >> /etc/sudoers
+ visudo -cf /etc/sudoers
+ if [ ! $? = 0 ]
+ then
+ cp /etc/sudoers.bak /etc/sudoers
+ echo $i
+ echo "Error adding files"
+ exit 1
+ fi
+ fi
+done
+
+REALTIME="session required pam_limits.so"
+grep -q "pam_limits.so" /etc/pam.d/su
+ if [ $? != 0 ]
+ then
+ echo "$REALTIME" >> /etc/pam.d/su
+
+ fi
+
+
+
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ if [ -e /etc/cron.daily/backup_cron ]
+ then
+ rm -f /etc/cron.daily/backup_cron
+ fi
+ if [ -e /etc/cron.daily/xupdate_system_cron ]
+ then
+ rm -f /etc/cron.daily/xupdate_system_cron
+ fi
+
+ if [ -e /etc/cron.daily/myth_mtc.py ]
+ then
+ rm -f /etc/cron.daily/myth_mtc.py
+ fi
+
+
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/core-testing/LinHES-system/myth_mtc.py b/abs/core-testing/LinHES-system/myth_mtc.py
new file mode 100755
index 0000000..faeee84
--- /dev/null
+++ b/abs/core-testing/LinHES-system/myth_mtc.py
@@ -0,0 +1,139 @@
+#!/usr/bin/python
+
+
+import sys,popen2
+import optparse
+import re
+import socket
+import os
+import datetime,time
+
+
+
+try:
+ from MythTV import MythTV
+ mythtv = MythTV()
+except:
+ mythtv = None
+
+#print mythtv.db.getSetting( 'Theme', socket.gethostname())
+
+def optimize():
+ cursor = mythtv.db.cursor()
+ cursor.execute("SHOW tables")
+ result = cursor.fetchall()
+ ops=["REPAIR","OPTIMIZE","ANALYZE"]
+ for row in result:
+ ctable=row[0]
+ for op in ops:
+ print op,ctable
+ cmd= "%s table %s" %(op,ctable)
+ cursor.execute(cmd)
+
+
+def upcoming_check():
+ upcoming = mythtv.getUpcomingRecordings()
+ try:
+ show=str(upcoming[0])
+ show=show.strip()
+ showtime=show.partition("(")[2].strip(")")
+ now=time.time()
+ rec_time=time.strptime( showtime ,"%Y-%m-%d %H:%M:%S" )
+ r=time.mktime(rec_time)
+ time_diff= ( r - now ) / 60
+ except:
+ time_diff=100
+ show="No show"
+ if ( time_diff > 30) :
+ return True
+ else:
+ print show , "is upcoming in " , time_diff
+ return False
+
+
+def schemalock_check():
+ c = mythtv.db.cursor()
+ c.execute("select count(*) from schemalock")
+ results=c.fetchone()
+ schemalock=results[0]
+ if schemalock == 0:
+ return True
+ else:
+ print "schema is locked"
+ return False
+
+def job_check():
+ c = mythtv.db.cursor()
+ c.execute("select count(*) from jobqueue where status = 4")
+ results=c.fetchone()
+ jobs= results[0]
+ if jobs == 0 :
+ return True
+ else:
+ print " jobs are running"
+ return False
+
+
+def in_use():
+ c = mythtv.db.cursor()
+ c.execute("select count(*) from inuseprograms")
+ results=c.fetchone()
+ prginuse=results[0]
+ if prginuse == 0 :
+ return True
+ else:
+ print "programs in use"
+ return False
+
+def mfd_check():
+ ismfd=popen2.Popen3('/bin/ps cax|/bin/grep -v grep |/bin/grep mythfilldatabase')
+ ismfd.wait()
+ mfdIdle=ismfd.poll()
+ if mfdIdle == 0:
+ print "mythfilldatabase is running"
+ return False
+ else:
+ return True
+
+
+
+def idle_check():
+ if ( upcoming_check() and schemalock_check() and job_check() and in_use() and mfd_check() ):
+ idle=True
+ print "Myth is idle"
+ else:
+ idle=False
+ print "Myth is NOT idle"
+ return idle
+
+def run_stuff():
+ if idle_check():
+ print "Running optimize"
+ optimize()
+
+ print "Running backup"
+ os.system('/usr/MythVantage/bin/backup_job')
+
+ print "Running system_update"
+ os.system('/usr/MythVantage/bin/update_system')
+ continue_loop=False
+ else:
+ continue_loop=True
+ return continue_loop
+
+#---------------------------------
+starttime=time.time()
+ctin=True
+while ctin:
+ ctin=run_stuff()
+ if ctin:
+ time.sleep(600)
+ current_time=time.time()
+ if (current_time - starttime) > 10800 :
+ ctin = False
+ print "time exceeded (3 hours)"
+ exit(1)
+
+
+
+
diff --git a/abs/core-testing/LinHES-system/myth_mtc.sh b/abs/core-testing/LinHES-system/myth_mtc.sh
new file mode 100755
index 0000000..fc81254
--- /dev/null
+++ b/abs/core-testing/LinHES-system/myth_mtc.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+. /etc/profile
+date=`date +%Y-%m-%d`
+myth_mtc.py > /var/log/$date/myth_mtc.log
+if [ $? = 0 ]
+then
+ echo "Finished" >> /var/log/$date/myth_mtc.log
+else
+ echo "Time Exceede" >> /var/log/$date/myth_mtc.log
+fi
+
+
diff --git a/abs/core-testing/LinHES-system/optimize_mythdb.py b/abs/core-testing/LinHES-system/optimize_mythdb.py
new file mode 100755
index 0000000..e7b35ed
--- /dev/null
+++ b/abs/core-testing/LinHES-system/optimize_mythdb.py
@@ -0,0 +1,16 @@
+#!/usr/bin/python
+# import MySQL module
+import MySQLdb
+import socket
+import sys
+db = MySQLdb.connect(host="localhost", user="mythtv", passwd="mythtv", db="mythconverg")
+cursor = db.cursor()
+cursor.execute("SHOW tables")
+result = cursor.fetchall()
+ops=["REPAIR","OPTIMIZE","ANALYZE"]
+for row in result:
+ ctable=row[0]
+ for op in ops:
+ print op,ctable
+ cmd= "%s table %s" %(op,ctable)
+ cursor.execute(cmd)