Fixed all endpoints to return proper headers, and properly formatted for json
This commit is contained in:
parent
8cf38a0f53
commit
6b041a8af7
|
@ -5,7 +5,7 @@ import flask
|
||||||
|
|
||||||
from flask import Flask, request, jsonify
|
from flask import Flask, request, jsonify
|
||||||
|
|
||||||
import psutil, datetime, time, socket
|
import psutil, datetime, time, socket, json
|
||||||
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
@ -14,13 +14,16 @@ app = Flask(__name__)
|
||||||
# No endpoint selected
|
# No endpoint selected
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
def home():
|
def home():
|
||||||
return "The Thunix API. Please see https://wiki.thunix.net/wiki/api for more information."
|
print ("Content-Type: application/json\n")
|
||||||
|
payload = [{"Description":"The Thunix API. Please see https://wiki.thunix.net/wiki/api for more information."}]
|
||||||
|
return jsonify(payload)
|
||||||
app.run()
|
app.run()
|
||||||
|
|
||||||
|
|
||||||
# ip_info
|
# ip_info
|
||||||
@app.route("/ip_info")
|
@app.route("/ip_info")
|
||||||
def ip_info():
|
def ip_info():
|
||||||
|
print ("Content-Type: application/json\n")
|
||||||
def get_ip_addresses(family):
|
def get_ip_addresses(family):
|
||||||
for interface, snics in psutil.net_if_addrs().items():
|
for interface, snics in psutil.net_if_addrs().items():
|
||||||
for snic in snics:
|
for snic in snics:
|
||||||
|
@ -30,29 +33,30 @@ def ip_info():
|
||||||
ipv4s = list(get_ip_addresses(socket.AF_INET))
|
ipv4s = list(get_ip_addresses(socket.AF_INET))
|
||||||
|
|
||||||
|
|
||||||
json_payload = "{\n\t\"Interfaces\":[\n"
|
payload = "{\"Interfaces\":["
|
||||||
i = 0
|
i = 0
|
||||||
for i in range(len(ipv4s)) :
|
for i in range(len(ipv4s)) :
|
||||||
json_payload = json_payload + "\t\t{\n"
|
payload = payload + "{"
|
||||||
json_payload = json_payload + "\t\t\t\"Interface\":" + "\"" + ipv4s[i][0] + "\",\n"
|
payload = payload + '"Interface":' + '"' + ipv4s[i][0] + '",'
|
||||||
json_payload = json_payload + "\t\t\t\"Address\":" + "\"" + ipv4s[i][1] + "\",\n"
|
payload = payload + '"Address":' + '"' + ipv4s[i][1] + '",'
|
||||||
json_payload = json_payload + "\t\t\t\"Netmask\":" + "\"" + ipv4s[i][2] + "\"\n"
|
payload = payload + '"Netmask":' + '"' + ipv4s[i][2] + '"'
|
||||||
json_payload = json_payload + "\t\t}"
|
payload = payload + "}"
|
||||||
i = i + 1
|
i = i + 1
|
||||||
if (i < len(ipv4s)) :
|
if (i < len(ipv4s)) :
|
||||||
json_payload = json_payload + ",\n"
|
payload = payload + ","
|
||||||
else:
|
else:
|
||||||
json_payload = json_payload + "\n"
|
payload = payload + ""
|
||||||
json_payload = json_payload + "\t]\n"
|
payload = payload + "]"
|
||||||
json_payload = json_payload + "}\n"
|
payload = payload + "}"
|
||||||
|
payload = json.loads(payload)
|
||||||
return json_payload
|
return jsonify(payload)
|
||||||
app.run()
|
app.run()
|
||||||
|
|
||||||
|
|
||||||
# uptime
|
# uptime
|
||||||
@app.route("/uptime")
|
@app.route("/uptime")
|
||||||
def uptime():
|
def uptime():
|
||||||
|
print ("Content-Type: application/json\n")
|
||||||
with open('/proc/uptime', 'r') as f:
|
with open('/proc/uptime', 'r') as f:
|
||||||
secs = float(f.readline().split()[0])
|
secs = float(f.readline().split()[0])
|
||||||
day = secs // (24 * 3600)
|
day = secs // (24 * 3600)
|
||||||
|
@ -77,17 +81,17 @@ def uptime():
|
||||||
# load avg
|
# load avg
|
||||||
@app.route("/load")
|
@app.route("/load")
|
||||||
def loadaverage():
|
def loadaverage():
|
||||||
|
print ("Content-Type: application/json\n")
|
||||||
loadavg = psutil.getloadavg()
|
loadavg = psutil.getloadavg()
|
||||||
json_payload=[{"1min":loadavg[0], "5min":loadavg[1], "10min":loadavg[2]}]
|
payload=[{"1min":loadavg[0], "5min":loadavg[1], "10min":loadavg[2]}]
|
||||||
|
|
||||||
return jsonify(json_payload)
|
return jsonify(payload)
|
||||||
app.run()
|
app.run()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# teapot
|
# teapot
|
||||||
@app.route("/teapot")
|
@app.route("/teapot")
|
||||||
def teapot():
|
def teapot():
|
||||||
|
print ("Content-Type: application/json\n")
|
||||||
teapots = [
|
teapots = [
|
||||||
{
|
{
|
||||||
"tea": "available",
|
"tea": "available",
|
||||||
|
|
Loading…
Reference in New Issue