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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#!/usr/bin/env python
#
# Copyright 2014-present Facebook. All Rights Reserved.
#
# This program file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program in a file named COPYING; if not, write to the
# Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301 USA
#
from ctypes import *
from bottle import route, run, template, request, response
from bottle import abort
import json
from rest_fruid import *
from rest_server import *
from rest_sensors import *
from rest_bmc import *
from rest_gpios import *
# Handler for root resource endpoint
@route('/api')
def rest_api():
result = {
"Information": {
"Description": "Wedge RESTful API Entry",
},
"Actions": [],
"Resources": [ "sys"],
}
return result
# Handler for sys resource endpoint
@route('/api/sys')
def rest_sys():
result = {
"Information": {
"Description": "Wedge System",
},
"Actions": [],
"Resources": [ "mb", "bmc", "server", "sensors", "gpios"],
}
return result
# Handler for sys/mb resource endpoint
@route('/api/sys/mb')
def rest_sys():
result = {
"Information": {
"Description": "System Motherboard",
},
"Actions": [],
"Resources": [ "fruid"],
}
return result
# Handler for sys/mb/fruid resource endpoint
@route('/api/sys/mb/fruid')
def rest_fruid():
return get_fruid()
# Handler for sys/bmc resource endpoint
@route('/api/sys/bmc')
def rest_bmc():
return get_bmc()
# Handler for sys/server resource endpoint
@route('/api/sys/server')
def rest_bmc():
return get_server()
# Handler for uServer resource endpoint
@route('/api/sys/server', method='POST')
def rest_server():
data = json.load(request.body)
return server_action(data)
# Handler for sensors resource endpoint
@route('/api/sys/sensors')
def rest_sensors():
return get_sensors()
# Handler for sensors resource endpoint
@route('/api/sys/gpios')
def rest_gpios():
return get_gpios()
run(host = "::", port = 8080)
|