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
Kwabena Antwi-Boasiako
slapos
Commits
3b6e41d0
Commit
3b6e41d0
authored
Jun 17, 2014
by
Cédric Le Ninivin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
monitor: add status history
monitor: escape values in status history
parent
d8800c0b
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
0 deletions
+65
-0
stack/monitor/buildout.cfg
stack/monitor/buildout.cfg
+9
-0
stack/monitor/monitor.cfg.in
stack/monitor/monitor.cfg.in
+12
-0
stack/monitor/webfile-directory/status-history.cgi.in
stack/monitor/webfile-directory/status-history.cgi.in
+44
-0
No files found.
stack/monitor/buildout.cfg
View file @
3b6e41d0
...
@@ -80,6 +80,15 @@ destination = ${buildout:directory}/parts/monitor-template-status-cgi
...
@@ -80,6 +80,15 @@ destination = ${buildout:directory}/parts/monitor-template-status-cgi
filename = status.cgi.in
filename = status.cgi.in
mode = 0644
mode = 0644
[status-history-cgi]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/webfile-directory/${:filename}
download-only = true
#md5sum = 4fb26753ee669b8ac90ffe33dbd12e8f
destination = ${buildout:directory}/parts/monitor-template-status-history-cgi
filename = status-history.cgi.in
mode = 0644
[settings-cgi]
[settings-cgi]
recipe = hexagonit.recipe.download
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/webfile-directory/${:filename}
url = ${:_profile_base_location_}/webfile-directory/${:filename}
...
...
stack/monitor/monitor.cfg.in
View file @
3b6e41d0
...
@@ -131,6 +131,17 @@ context =
...
@@ -131,6 +131,17 @@ context =
key this_file :filename
key this_file :filename
raw python_executable ${buildout:executable}
raw python_executable ${buildout:executable}
[deploy-status-history-cgi]
recipe = slapos.recipe.template:jinja2
template = ${status-history-cgi:location}/${status-history-cgi:filename}
rendered = $${monitor-directory:monitoring-cgi}/$${:filename}
filename = status-history.cgi
mode = 0744
context =
key monitor_db_path monitor-parameters:db-path
key status_history_length zero-parameters:status-history-length
raw python_executable ${buildout:executable}
[deploy-settings-cgi]
[deploy-settings-cgi]
recipe = slapos.recipe.template:jinja2
recipe = slapos.recipe.template:jinja2
template = ${settings-cgi:location}/${settings-cgi:filename}
template = ${settings-cgi:location}/${settings-cgi:filename}
...
@@ -221,6 +232,7 @@ name = example.com
...
@@ -221,6 +232,7 @@ name = example.com
[public]
[public]
recipe = slapos.cookbook:zero-knowledge.write
recipe = slapos.cookbook:zero-knowledge.write
filename = knowledge0.cfg
filename = knowledge0.cfg
status-history-length = 5
[zero-parameters]
[zero-parameters]
recipe = slapos.cookbook:zero-knowledge.read
recipe = slapos.cookbook:zero-knowledge.read
...
...
stack/monitor/webfile-directory/status-history.cgi.in
0 → 100644
View file @
3b6e41d0
#!{{ python_executable }}
import cgi
import datetime
import os
import sqlite3
db_path = '{{ monitor_db_path }}'
status_history_length = '{{ status_history_length }}'
db = sqlite3.connect(db_path)
print """
<html><head>
<link
rel=
"stylesheet"
href=
"pure-min.css"
>
<link
rel=
"stylesheet"
href=
"/style.css"
>
</head><body>
<h1>
Monitor Status History :
</h1>
"""
def get_date_from_timestamp(timestamp):
return datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
def print_individual_status(timestamp):
print "
<div><h3>
Failure on %s
</h3><ul>
" % get_date_from_timestamp(timestamp)
rows = db.execute("select status, element, output from individual_status where timestamp=?", (timestamp,))
for row in rows:
status, element, output = row
print "
<li>
%s , %s :
</br><pre>
%s
</pre></li>
" % (status, cgi.escape(element), cgi.escape(output))
print "
</ul></div>
"
if not os.path.exists(db_path):
print """No status history found
</p></body></html>
"""
exit(0)
failure_row_list = db.execute("select timestamp from status where status='FAILURE' order by timestamp desc limit ?", status_history_length )
for failure_row in failure_row_list:
timestamp, = failure_row
print_individual_status(timestamp)
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