summaryrefslogtreecommitdiffstats
path: root/abs/mv-core/local-website/contents/process.py
diff options
context:
space:
mode:
Diffstat (limited to 'abs/mv-core/local-website/contents/process.py')
-rwxr-xr-xabs/mv-core/local-website/contents/process.py329
1 files changed, 0 insertions, 329 deletions
diff --git a/abs/mv-core/local-website/contents/process.py b/abs/mv-core/local-website/contents/process.py
deleted file mode 100755
index 99404a4..0000000
--- a/abs/mv-core/local-website/contents/process.py
+++ /dev/null
@@ -1,329 +0,0 @@
-#!/usr/bin/python
-import sys
-import cgi
-import os
-import socket
-import time
-try:
- import cgitb
- cgitb.enable()
-except ImportError:
- sys.stderr = sys.stdout
-def cgiprint(inline=''):
- sys.stdout.write(inline)
- sys.stdout.write('\r\n')
- sys.stdout.flush()
-contentheader = 'Content-Type: text/html'
-
-thepage = '''<html><head>
-<title>%s</title>
-</head><body>
-%s
-</body></html>
-'''
-h1 = '<h1>%s</h1>'
-
-def getform(theform, valuelist, notpresent='', nolist=False):
- """
- This function, given a CGI form as a
- FieldStorage instance, extracts the
- data from it, based on valuelist
- passed in. Any non-present values are
- set to '' - although this can be
- changed. (e.g. to return None so you
- can test for missing keywords - where
- '' is a valid answer but to have the
- field missing isn't.) It also takes a
- keyword argument 'nolist'. If this is
- True list values only return their
- first value.
- """
- data = {}
- for field in valuelist:
- if not theform.has_key(field):
- # if the field is not present (or was empty)
- data[field] = notpresent
- else:
- # the field is present
- print type(theform[field])
- if type(theform[field]) != type([]):
- # is it a list or a single item
- print type(theform[field])
- data[field] = theform[field].value
- else:
- if not nolist:
- # do we want a list ?
- data[field] = theform.getlist(field)
- else:
- data[field] = theform.getfirst(field)
- # just fetch the first item
- return data
-
-def getall(theform, nolist=False):
- """
- Passed a form (cgi.FieldStorage
- instance) return *all* the values.
- This doesn't take into account
- multipart form data (file uploads).
- It also takes a keyword argument
- 'nolist'. If this is True list values
- only return their first value.
- """
- data = {}
- for field in theform.keys():
- # we can't just iterate over it, but must use the keys() method
- if type(theform[field]) == type([]):
- if not nolist:
- data[field] = theform.getlist(field)
- else:
- data[field] = theform.getfirst(field)
- else:
- data[field] = theform[field].value
- return data
-
-def isblank(indict):
- """
- Passed an indict of values it checks
- if any of the values are set. Returns
- True if the indict is empty, else
- returns False. I use it on the a form
- processed with getform to tell if my
- CGI has been activated without any
- form values.
- """
- for key in indict.keys():
- if indict[key]:
- return False
- return True
-
-def go_backup(myhost):
- myhostname = socket.gethostname()
- if myhostname.strip() == myhost.strip():
- command= "sudo /usr/bin/backup_job "
- command2="sleep 2; /data/srv/hobbit/server/ext/hbnotes.py"
- results=os.popen(command,'r')
- os.popen(command2,'r')
- else:
- sshcmd="ssh -o StrictHostKeyChecking=no -o ConnectTimeout=1 -i /data/srv/.nobody_ssh/id_dsa mythtv@"
- sshcmd+=myhost.strip()
- cmd=' "sudo /etc/cron.daily/backup_cron ; sudo su nobody -c /data/srv/hobbit/server/ext/hbnotes.py"'
- command=sshcmd + cmd + " 2>&1 "
- results=os.popen(command,'r')
- return results
-
-def go_restore(restorefile,myhost):
- myhostname = socket.gethostname()
- if myhostname.strip() == myhost.strip():
- localcommand="sudo /usr/bin/restore_job.sh "
- command= localcommand + restorefile
- else:
- sshcmd="ssh -o StrictHostKeyChecking=no -o ConnectTimeout=1 -i /data/srv/.nobody_ssh/id_dsa mythtv@"
- sshcmd+=myhost.strip()
- cmd=' "sudo /usr/bin/restore_job.sh " '
- command=sshcmd + cmd + restorefile + " 2>&1 "
-
- results=os.popen(command,'r')
- return results
-
-def go_optimize(myhost):
- myhostname = socket.gethostname()
- if myhostname.strip() == myhost.strip():
- command="/usr/bin/optimize_mythdb.py"
- results=os.popen(command,'r')
- else:
- results='oops'
- return results
-
-def go_update(myhost,update_type):
- myhostname = socket.gethostname()
- if myhostname.strip() == myhost.strip():
- cmd="sudo /usr/bin/update_system "
- command=cmd + update_type
-
- else:
- cmd=" call pacman update_system "
- cmd+=update_type
- command="sudo /usr/bin/func \"" + myhost.strip() + "*\" " + cmd
- print command
-
- #print command
-
- results=os.popen(command,'r')
- return results
-
-def go_updateall(allupdate_type):
-
- cmd=" sudo /usr/bin/update_system_all "
- cmd+=allupdate_type
- command= cmd + " 2>&1 "
- results=os.popen(command,'r')
- return results
-
-
-def go_shutdown(myhost):
- myhostname = socket.gethostname()
- if myhostname.strip() == myhost.strip():
- message="Shutdown from MBE:::ALT"
- os.system("/usr/bin/osdClient.pl " + myhost.strip() + " 5000 " + "\"" + message + "\"" )
- time.sleep(3)
- command="sudo /sbin/poweroff "
- else:
- command="sudo /usr/bin/func \"" + myhost.strip() + "*\" call power poweroff "
- message="Shutdown from MBE:::ALT"
- os.system("/usr/bin/osdClient.pl " + myhost.strip() + " 5000 " + "\"" + message + "\"" )
- time.sleep(3)
-
- results=os.popen(command,'r')
- return results
-
-def go_shutdownall():
- import MySQLdb
- #import mysql
- #find all hosts(minus myself)
- #loop through results shutdown as we go.
- db = MySQLdb.connect(host="localhost", user="mythtv", passwd="mythtv", db="mythconverg")
- # create a cursor
- cursor = db.cursor()
- # execute SQL statement
- myhostname = socket.gethostname()
- results=["Sent shutdown command to: \n "]
- cursor.execute("SELECT distinct(hostname) from settings where not hostname = %s ; ",(myhostname))
- result = cursor.fetchall()
-
- for row in result:
- go_shutdown(row[0])
- results.append(row[0])
-
- #shutdown myself.
- #go_shutdown(myhostname)
- #results.append(myhostname)
- return results
-
-def go_reboot(myhost):
- myhostname = socket.gethostname()
- if myhostname.strip() == myhost.strip():
- message="Reboot from MBE:::ALT"
- os.system("/usr/bin/osdClient.pl " + myhost.strip() + " 5000 " + "\"" + message + "\"" )
- time.sleep(3)
- command="sudo /sbin/reboot "
- else:
- command="sudo /usr/bin/func \"" + myhost.strip() + "*\ call power reboot "
- message="Reboot from MBE:::ALT"
- os.system("/usr/bin/osdClient.pl " + myhost.strip() + " 5000 " + "\"" + message + "\"" )
- time.sleep(3)
- results=os.popen(command,'r')
- return results
-
-def go_wake(myhost):
- command="/usr/bin/wakeonlan.sh " + myhost.strip()
- results=os.popen(command,'r')
- return results
-
-def go_kill(myhost,kill_type):
- myhostname = socket.gethostname()
- if myhostname.strip() == myhost.strip():
- if kill_type == "killX":
- command="sudo /sbin/sv restart frontend"
- else:
- command="sudo /usr/bin/killall -9 mythfrontend"
- else:
- cmd=" call fe_restart "
- cmd+=kill_type
- command="sudo /usr/bin/func \"" + myhost.strip() + "*\" " + cmd
- #print command
- results=os.popen(command,'r')
- return results
-
-
-mainpage = '''
- <html><head>
- <style type="text/css">@import "/frame.css";</style>
- <!--<meta http-equiv="refresh" content="6">-->
- <title>Receiving a Form</title>
- </head><body>%s</body></html>'''
-
-error = '''
- <h1>Error</h1>
- <h2>No Form Submission Was Received</h2>'''
-
-result = '''
- <h1>%s of %s</h1>
-'''
-possible_parameters = ['param1', 'param2', 'param3', 'param4','hiddenparam','param5','param6']
-
-if __name__ == '__main__':
- cgiprint(contentheader) # content header
- cgiprint() # finish headers with blank line
-
- theform = cgi.FieldStorage()
- #print theform
- formdict = getform(theform, possible_parameters)
- #print possible_parameters
-
- if isblank(formdict):
- body = error
- else:
- name = formdict['param1']
- radio = formdict['param2'] # should be 'this' or 'that'
- if radio != 'Restore' :
- name = ""
- update_type = formdict['param3']
- oldurl = formdict['param4']
- hidden = formdict['hiddenparam']
- all_update_type=formdict['param5']
- kill_type = formdict['param6']
- body = result % (radio, hidden)
-
-
-
-
- print mainpage % body
- selection=radio
- myhost=hidden
-
- if selection == "Restore":
- mylogfile=go_restore(name,myhost)
- elif selection == "Backup":
- mylogfile=go_backup(myhost)
- elif selection == "Update":
- mylogfile=go_update(myhost,update_type)
- elif selection == "Shutdown":
- mylogfile=go_shutdown(myhost)
- elif selection == "Reboot":
- mylogfile=go_reboot(myhost)
- elif selection == "Optimize":
- mylogfile=go_optimize(myhost)
- elif selection == "WOL":
- mylogfile=go_wake(myhost)
- elif selection == "UpdateAll":
- mylogfile=go_updateall(all_update_type)
- elif selection == "ShutdownAll":
- mylogfile=go_shutdownall()
- elif selection == "Kill":
- mylogfile=go_kill(myhost,kill_type)
-
- box='''
- <div style="border: 1px solid #aaa; width:600px; height:500px; overflow:auto; color:#FFF;text-align:left;">
- <code id="box" style="display: block; height: 500px; width: 600px; overflow: auto;">
- '''
-
- endbox='''
- </code>
- </div>
- '''
- javascript='''
- <script type="text/javascript">
- var objDiv = document.getElementById("box");
- objDiv.scrollTop = objDiv.scrollHeight;
- </script>
- '''
-
- print box
- for line in mylogfile:
- print line + '</br> \r\n'
-
- print endbox
- print '<a href=', oldurl, ' > Back </a> '
- #print oldurl
- print javascript
-