| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env python3
- from bottle import route, run, request, install, response
- from bottle_sqlite import SQLitePlugin
- import json
- install(SQLitePlugin(dbfile='test.db'))
- def turn_me_to_json(cursor,res):
- out = []
- for row in res:
- v = {}
- for i, val in enumerate(row):
- v[cursor.description[i][0]]=val
- out.append(v)
- return out
- @route('/domain/', method='GET')
- def get_domains(db):
- c = db.execute('SELECT ip,port,domain,subdomain FROM domains')
- out = turn_me_to_json(c,c.fetchall())
- return json.dumps(out)
- @route('/domain/<ip>', method='PUT')
- def put_domain(db, ip="Mystery Domain" ):
- if request.json is None or "domain" not in request.json or "subdomain" not in request.json or "port" not in request.json:
- response.status=400
- return
- c = db.execute('UPDATE domains set domain=? and subdomain=? and port=? where ip=?',
- (request.json["domain"],request.json["subdomain"],request.json["port"],ip))
- if c.rowcount == 0:
- c = db.execute('INSERT INTO user_machines (ip,name) values(?,?)', (request.json["ip"],name))
- return
- @route('/user/', method='GET')
- def get_users(db):
- c = db.execute('SELECT name, ip FROM user_machines')
- out = turn_me_to_json(c,c.fetchall())
- return json.dumps(out)
- @route('/user/<name>', method='PUT')
- def put_users(db, name="Mystery User" ):
- if request.json is None or "ip" not in request.json:
- response.status=400
- return
- if len(request.json["ip"]) < 7:
- response.status=400
- return
- c = db.execute('UPDATE user_machines set ip=? where name=?', (request.json["ip"],name))
- if c.rowcount == 0:
- c = db.execute('INSERT INTO user_machines (ip,name) values(?,?)', (request.json["ip"],name))
- return
- @route('/nginx/', method='GET')
- def get_nginx(db):
- c = db.execute('SELECT name, ip FROM nginx')
- out = turn_me_to_json(c,c.fetchall())
- return json.dumps(out)
- @route('/nginx/<name>', method='PUT')
- def put_nginx(db, name="Mystery Host" ):
- if request.json is None or "ip" not in request.json:
- response.status=400
- return
- if len(request.json["ip"]) < 7:
- response.status=400
- return
- c = db.execute('UPDATE nginx set ip=? where name=?', (request.json["ip"],name))
- if c.rowcount == 0:
- c = db.execute('INSERT INTO nginx (ip,name) values(?,?)', (request.json["ip"],name))
- return
- run(host='localhost', port=8080)
|