-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
62 lines (46 loc) · 1.57 KB
/
app.py
File metadata and controls
62 lines (46 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from flask import Flask, jsonify, request
from vpn_service.config import API_PORT
from vpn_service.service.logs import logger
from vpn_service.usage.cases import provide_startapp_connection_to_openvpn, disconnect_from_openvpn, connection_info, \
connect_to_openvpn
app = Flask(__name__)
@app.route('/api/info', methods=['GET'])
def info():
try:
con_inf, error = connection_info()
except Exception as e:
error = str(e) or 'Unknown error.'
if error:
return jsonify({
'error': error
})
return jsonify(con_inf)
@app.route('/api/connect', methods=['GET'])
def connect_openvpn():
config_name = request.args.get('configName')
if not config_name:
return jsonify({'ok': False, 'error': 'configName is required'})
try:
connected, error = connect_to_openvpn(config_name)
except Exception as e:
error = str(e) or 'Unknown error.'
if error:
return jsonify({
'error': error
})
return jsonify({'ok': connected})
@app.route('/api/disconnect', methods=['GET'])
def disconnect_openvpn():
try:
disconnected, error = disconnect_from_openvpn()
except Exception as e:
error = str(e) or 'Unknown error.'
if error:
return jsonify({
'error': error
})
return jsonify({'ok': disconnected})
if __name__ == '__main__':
startup_connected, startup_error = provide_startapp_connection_to_openvpn()
logger.info(f'Startup connection: {startup_connected} ({startup_error}).')
app.run(host='0.0.0.0', port=API_PORT)