Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jean-Paul Smets
slapos
Commits
ec580565
Commit
ec580565
authored
Dec 31, 2013
by
Nicolas Wavrant
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
stack-monitor: status and settings now use cookies for connection
parent
5284682f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
72 additions
and
37 deletions
+72
-37
stack/monitor/settings.cgi.in
stack/monitor/settings.cgi.in
+35
-18
stack/monitor/status.cgi.in
stack/monitor/status.cgi.in
+37
-19
No files found.
stack/monitor/settings.cgi.in
View file @
ec580565
...
...
@@ -4,27 +4,45 @@ import os
import cgi
import cgitb
import ConfigParser
import Cookie
cgitb.enable(display=0, logdir="/tmp/cgi.log")
# Headers
form = cgi.FieldStorage()
cookie = Cookie.SimpleCookie()
print "Content-Type: text/html"
print
# Body content
form = cgi.FieldStorage()
if "password" not in form:
print """
<html>
<body>
<h1>
This is the monitoring interface
</h1>
<p>
Please enter the monitor_password in the next field to access the data
</p>
<form
action=
"/{{ this_filename }}"
method=
"post"
>
Password :
<input
type=
"password"
name=
"password"
>
<input
type=
"submit"
value=
"Access"
>
</form></body></html>
"""
if "password" in form:
password = form['password'].value
if password == '{{ password }}' :
cookie['password'] = password
print cookie
else:
cookie_string = os.environ.get('HTTP_COOKIE')
if cookie_string:
cookie.load(cookie_string)
try:
password = cookie['password'].value
except KeyError:
password = None
else:
password = None
print
elif form['password'].value != '{{ password }}':
print "
<html><body><h1>
Error
</h1><p>
Wrong password
</p></body></html>
"
if not password or password != '{{ password }}':
print "
<html><body>
"
if password is None:
print "
<h1>
This is the monitoring interface
</h1>
"
else:
print "
<h1>
Error
</h1><p>
Wrong password
</p>
"
print """
<p>
Please enter the monitor_password in the next field to access the data
</p>
<form
action=
"/settings.cgi"
method=
"post"
>
Password :
<input
type=
"password"
name=
"password"
>
<input
type=
"submit"
value=
"Access"
>
</form></body></html>
"""
else:
config_file = "{{ config_cfg }}"
...
...
@@ -42,7 +60,7 @@ else:
parser.write(file)
print "
<html><body>
"
print "
<h1>
Values that can be defined by the user :
</h1>
"
print "
<form
action=
\"/
control.cgi
\"
method=
\"post\"
>
"
print "
<form
action=
\"/
{{
this_filename
}}
\"
method=
\"post\"
>
"
print "
<input
type=
\"hidden\"
name=
\"password\"
value=
\"{{
password
}}\"
>
"
for option in parser.options("public"):
print "%s :
<input
type=
\"text\"
name=
\"%s\"
\
...
...
@@ -56,5 +74,4 @@ else:
print "
<b>
%s
</b>
: value=\"%s\"
<br>
" % (option,
parser.get(section, option))
print "
<br><br><p><a
href=
\"/monitor.cgi\"
>
Monitor interface
</a></p>
"
print "
</body></html>
"
\ No newline at end of file
print "
</body></html>
"
stack/monitor/status.cgi.in
View file @
ec580565
...
...
@@ -2,34 +2,53 @@
import cgi
import cgitb
import Cookie
import json
import os
import sys
cgitb.enable(display=0, logdir="/tmp/cgi.log")
json_file = "{{ json_file }}"
result = json.load(open(json_file))
form = cgi.FieldStorage()
cookie = Cookie.SimpleCookie()
# Headers
print "Content-Type: text/html"
print
# Body content
form = cgi.FieldStorage()
if "password" not in form:
print """
<html>
<body>
<h1>
This is the monitoring interface
</h1>
<p>
Please enter the monitor_password in the next field to access the data
</p>
<form
action=
"/{{ this_filename }}"
method=
"post"
>
Password :
<input
type=
"password"
name=
"password"
>
<input
type=
"submit"
value=
"Access"
>
</form></body></html>
"""
if "password" in form:
password = form['password'].value
if password == '{{ password }}' :
cookie['password'] = password
print cookie
else:
cookie_string = os.environ.get('HTTP_COOKIE')
if cookie_string:
cookie.load(cookie_string)
try:
password = cookie['password'].value
except KeyError:
password = None
else:
password = None
elif form['password'].value != '{{ password }}':
print "
<html><body><h1>
Error
</h1><p>
Wrong password
</p></body></html>
"
print
if not password or password != '{{ password }}':
print "
<html><body>
"
if password is None:
print "
<h1>
This is the monitoring interface
</h1>
"
else:
print "
<h1>
Error
</h1><p>
Wrong password
</p>
"
print """
<p>
Please enter the monitor_password in the next field to access the data
</p>
<form
action=
"/settings.cgi"
method=
"post"
>
Password :
<input
type=
"password"
name=
"password"
>
<input
type=
"submit"
value=
"Access"
>
</form></body></html>
"""
else:
json_file = "{{ json_file }}"
result = json.load(open(json_file))
print "
<html><body>
"
print "
<h1>
Monitoring :
</h1>
"
print "
<p><em>
Last time of monitoring process : %s
</em></p>
" % (result['datetime'])
...
...
@@ -46,5 +65,4 @@ else:
for r in result:
if result[r] == '':
print "
<h3>
%s
</h3><p>
%s
</p>
" % (r, result[r])
print "
<br><br><p><a
href=
\"/control.cgi\"
>
Control interface
</a></p>
"
print "
</body></html>
"
\ No newline at end of file
print "
</body></html>
"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment