[chronojump-server] Adds support for endpoint "ping"



commit 2b3c73f9332e75502b4f78c1c92e84029a21e16c
Author: Carles Pina i Estany <carles pina cat>
Date:   Wed Feb 11 23:19:45 2015 +0000

    Adds support for endpoint "ping"

 main.py          |   30 ++++++++++++++++++++++++++++++
 requirements.txt |    3 ++-
 2 files changed, 32 insertions(+), 1 deletions(-)
---
diff --git a/main.py b/main.py
index 551496f..710330f 100755
--- a/main.py
+++ b/main.py
@@ -6,6 +6,7 @@ import hashlib
 import json
 import os
 import string
+import MySQLdb
 from werkzeug.contrib.fixers import ProxyFix
 
 config = ConfigParser.ConfigParser()
@@ -36,6 +37,18 @@ def create_directory(backtraces_directory):
     if not os.path.exists(backtraces_directory):
         os.mkdir(backtraces_directory)
 
+def connect_db():
+    db = MySQLdb.connect(
+        host=config.get("db","server"),
+        user=config.get("db","user"),
+        passwd=config.get("db","password"),
+        db=config.get("db","name")
+        )
+
+    cur = db.cursor()
+
+    return (db, cur)
+
 @app.route("/backtrace", methods= ['POST'])
 @app.route("/backtrace/<email>", methods = ['POST'])
 @auto.doc()
@@ -62,6 +75,23 @@ def post_backtrace(email="unknown unknown com"):
 
     return Response(json.dumps({"crash_id": hash}), 200, mimetype="application/json")
 
+ app route("/ping", methods=['POST'])
+ auto doc()
+def ping():
+    """chronojump client sends a ping"""
+    content = request.get_json()
+
+    cj_version = content.get('version', 'unknown')
+    os_version = content.get('version', 'linux')
+    ip = request.remote_addr
+
+    (con, cur) = connect_db()
+
+    cur.execute("INSERT INTO ping (cjVersion, osVersion, ip) VALUES (%s, %s, %s)", (cj_version, os_version, 
ip))
+    con.commit()
+
+    return Response("", 201)
+
 @app.route("/version", methods=['GET'])
 @auto.doc()
 def get_version():
diff --git a/requirements.txt b/requirements.txt
index dd84584..be3e93d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,8 +2,9 @@ Flask==0.10.1
 Flask-Autodoc==0.1.1
 Jinja2==2.7.3
 MarkupSafe==0.23
+MySQL-python==1.2.5
 Werkzeug==0.9.6
 argparse==1.2.1
+gunicorn==0.14.5
 itsdangerous==0.24
 wsgiref==0.1.2
-gunicorn==0.14.5


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]