--- /dev/null
+#! /usr/bin/python
+
+import sys
+import cStringIO
+
+from flask import Flask, request, url_for, redirect, render_template
+from flask.ext.wtf import Form
+from wtforms.fields import PasswordField, StringField, SubmitField
+
+import pOCCI
+import pOCCI.occi
+import pOCCI.pOCCI
+
+
+params = {
+ 'url': '--url',
+ 'user': '--user',
+ 'password': '--password',
+}
+
+
+app = Flask(__name__)
+app.config['SECRET_KEY'] = 'please, tell nobody'
+
+
+class SubmitForm(Form):
+ url = StringField(u'OCCI URL')
+ user = StringField(u'User')
+ password = PasswordField(u'Password')
+ submit = SubmitField(u'Launch tests')
+
+
+@app.route('/', methods=['GET', 'POST'])
+def launch():
+ error = None
+
+ if request.method == 'POST':
+ opts = ['-t', 'OCCI/CORE/READ/001']
+ for p in params.keys():
+ if p in request.form and request.form[p]:
+ opts.append(params[p])
+ opts.append(request.form[p])
+ print opts
+
+ out = [cStringIO.StringIO(), cStringIO.StringIO()]
+ sys.stdout = out[0]
+ sys.stderr = out[1]
+ try:
+ pOCCI.pOCCI.main(opts)
+ except SystemExit as se:
+ if se.args[0] >= 2:
+ error = 'Fatal error.'
+
+ sys.stdout = sys.__stdout__
+ sys.stderr = sys.__stderr__
+
+ return render_template('output.html', result = out[0].getvalue() + out[1].getvalue(), error = error)
+
+ form = SubmitForm()
+ return render_template('index.html', form = form)
+
+
+if __name__ == '__main__':
+ app.debug = True
+ app.run()
--- /dev/null
+<!DOCTYPE html>
+<html>
+
+<head>
+ <title>OCCI Compliance Tests</title>
+</head>
+
+<body>
+ <form method='POST' action='/'>
+ {{ form.hidden_tag() }}
+ <table>
+ <tr>
+ <td>{{ form.url.label }}</td><td>{{ form.url(size=30) }}</td>
+ </tr>
+ <tr>
+ <td>{{ form.user.label }}</td><td>{{ form.user(size=20) }}</td>
+ </tr>
+ <tr>
+ <td>{{ form.password.label }}</td><td>{{ form.password(size=20, password=True) }}</td>
+ </tr>
+ </table>
+ {{ form.submit }}
+ </form>
+</body>
+
+</html>