summaryrefslogtreecommitdiffstats
path: root/linhes/linhes-web/website/contents/mvp_process.py
diff options
context:
space:
mode:
Diffstat (limited to 'linhes/linhes-web/website/contents/mvp_process.py')
-rw-r--r--linhes/linhes-web/website/contents/mvp_process.py195
1 files changed, 195 insertions, 0 deletions
diff --git a/linhes/linhes-web/website/contents/mvp_process.py b/linhes/linhes-web/website/contents/mvp_process.py
new file mode 100644
index 0000000..b01ed8b
--- /dev/null
+++ b/linhes/linhes-web/website/contents/mvp_process.py
@@ -0,0 +1,195 @@
+#!/usr/bin/python
+import sys
+import cgi
+import os
+import socket
+import time
+import shutil
+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
+ data[field] = theform.getlist(field)
+
+# print type(theform[field])
+ 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 update_mvp_list(maclist):
+ outfile = open("/etc/dnsmasq.mvpmc.conf","w")
+ mvpline="dhcp-boot=net:mvp,dongle.bin"
+ mvpmacline='dhcp-host=net:mvp,%s'
+ results="The following media mvp devices have been added:"
+ results+='</br>'
+ havemvp = "false"
+ #print maclist
+ for i in range(len(maclist)):
+ if maclist[i] != '':
+# print mvpmacline % maclist[i]
+ outfile.write(mvpmacline % maclist[i] + '\n' )
+ havemvp="true"
+ results+=maclist[i]
+ results+='</br>'
+ if havemvp == "true":
+# print mvpline
+ outfile.write(mvpline + '\n' )
+ outfile.flush
+ outfile.close
+ #time.sleep(5)
+
+ else:
+ outfile.close
+ 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 = '''
+
+ <h2>Removed all media mvp devices</h2>'''
+
+result = '''
+ <h1>%s</h1>
+'''
+possible_parameters = ['activemvp', 'othermac','hiddenparam']
+
+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
+ #print formdict
+ oldurl = '/mvpmc.shtml'
+ if isblank(formdict):
+ body = error
+ all_active=[]
+ else:
+ all_active=[]
+ activemac_checkbox = formdict['activemvp']
+ for i in range(len(activemac_checkbox)):
+ active_string=activemac_checkbox[i]
+ active_string=active_string.strip()
+ all_active.append(active_string)
+ body = result % ("MVP mac address")
+
+
+
+ print mainpage % body
+ # mylogfile=update_mvp_list(all_active)
+
+
+ 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>
+ '''
+ if all_active != []:
+ mylogfile=update_mvp_list(all_active)
+ command="sudo /sbin/sv stop dnsmasq"
+ os.system(command)
+ command="sudo /sbin/sv start dnsmasq"
+ os.system(command)
+ print box
+ print mylogfile
+ print endbox
+ print '<a href=', oldurl, ' > Back </a> '
+ #print oldurl
+ print javascript
+