@@ -28,6 +28,7 @@ from minigraph import parse_xml
28
28
from minigraph import parse_device_desc_xml
29
29
from sonic_platform import get_machine_info
30
30
from sonic_platform import get_platform_info
31
+ from sonic_platform import get_system_mac
31
32
from swsssdk import ConfigDBConnector
32
33
33
34
def is_ipv4 (value ):
@@ -135,6 +136,7 @@ def main():
135
136
parser .add_argument ("-j" , "--json" , help = "json file that contains additional variables" , action = 'append' , default = [])
136
137
parser .add_argument ("-a" , "--additional-data" , help = "addition data, in json string" )
137
138
parser .add_argument ("-d" , "--from-db" , help = "read config from configdb" , action = 'store_true' )
139
+ parser .add_argument ("-H" , "--platform-info" , help = "read platform and hardware info" , action = 'store_true' )
138
140
parser .add_argument ("-s" , "--redis-unix-sock-file" , help = "unix sock file for redis connection" )
139
141
group = parser .add_mutually_exclusive_group ()
140
142
group .add_argument ("-t" , "--template" , help = "render the data with the template file" )
@@ -144,25 +146,22 @@ def main():
144
146
group .add_argument ("--print-data" , help = "print all data" , action = 'store_true' )
145
147
args = parser .parse_args ()
146
148
147
- data = {}
148
- machine_info = get_machine_info ()
149
- if machine_info != None :
150
- deep_update (data , machine_info )
151
- platform_info = get_platform_info (machine_info )
152
- if platform_info != None :
153
- data ['platform' ] = platform_info
149
+ platform = get_platform_info (get_machine_info ())
154
150
155
151
db_kwargs = {}
156
152
if args .redis_unix_sock_file != None :
157
153
db_kwargs ['unix_socket_path' ] = args .redis_unix_sock_file
158
154
155
+ data = {}
156
+
157
+
159
158
if args .minigraph != None :
160
159
minigraph = args .minigraph
161
- if data . has_key ( ' platform' ) :
160
+ if platform :
162
161
if args .port_config != None :
163
- deep_update (data , parse_xml (minigraph , data [ ' platform' ] , args .port_config ))
162
+ deep_update (data , parse_xml (minigraph , platform , args .port_config ))
164
163
else :
165
- deep_update (data , parse_xml (minigraph , data [ ' platform' ] ))
164
+ deep_update (data , parse_xml (minigraph , platform ))
166
165
else :
167
166
if args .port_config != None :
168
167
deep_update (data , parse_xml (minigraph , port_config_file = args .port_config ))
@@ -189,6 +188,13 @@ def main():
189
188
configdb .connect ()
190
189
deep_update (data , FormatConverter .db_to_output (configdb .get_config ()))
191
190
191
+ if args .platform_info :
192
+ hardware_data = {'DEVICE_METADATA' : {'localhost' : {
193
+ 'platform' : platform ,
194
+ 'mac' : get_system_mac ()
195
+ }}}
196
+ deep_update (data , hardware_data )
197
+
192
198
if args .template != None :
193
199
template_file = os .path .abspath (args .template )
194
200
env = jinja2 .Environment (loader = jinja2 .FileSystemLoader ('/' ), trim_blocks = True )
0 commit comments