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
|
#!/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 *
import json
import ssl
import socket
import os
from node_api import get_node_api
from node_spb import get_node_spb
from node_bmc import get_node_bmc
from node_server import get_node_server
from node_fruid import get_node_fruid
from node_sensors import get_node_sensors
from node_config import get_node_config
from tree import tree
from pal import *
def populate_server_node(num):
prsnt = pal_is_server_prsnt(num)
if prsnt == None or prsnt == 0:
return None
r_server = tree("server" + repr(num), data = get_node_server(num))
r_fruid = tree("fruid", data = get_node_fruid("slot" + repr(num)))
r_sensors = tree("sensors", data = get_node_sensors("slot" + repr(num)))
r_config = tree("config", data = get_node_config("slot" + repr(num)))
r_server.addChildren([r_fruid, r_sensors, r_config])
return r_server
# Initialize Platform specific Resource Tree
def init_plat_tree():
# Create /api end point as root node
r_api = tree("api", data = get_node_api())
# Add /api/spb to represent side plane board
r_spb = tree("spb", data = get_node_spb())
r_api.addChild(r_spb)
# Add servers /api/server[1-max]
num = pal_get_num_slots()
for i in range(1, num+1):
r_server = populate_server_node(i)
if r_server:
r_api.addChild(r_server)
# TODO: Need to add /api/nic to represent NIC Mezz Card
# Add /api/spb/fruid end point
r_temp = tree("fruid", data = get_node_fruid("spb"))
r_spb.addChild(r_temp)
# /api/spb/bmc end point
r_temp = tree("bmc", data = get_node_bmc())
r_spb.addChild(r_temp)
# /api/spb/sensors end point
r_temp = tree("sensors", data = get_node_sensors("spb"))
r_spb.addChild(r_temp)
return r_api
|