@@ -615,6 +615,7 @@ def parse_meta(meta, hname):
615
615
cloudtype = None
616
616
downstream_subrole = None
617
617
qos_profile = None
618
+ resource_type = None
618
619
device_metas = meta .find (str (QName (ns , "Devices" )))
619
620
for device in device_metas .findall (str (QName (ns1 , "DeviceMetadata" ))):
620
621
if device .find (str (QName (ns1 , "Name" ))).text .lower () == hname .lower ():
@@ -645,7 +646,9 @@ def parse_meta(meta, hname):
645
646
downstream_subrole = value
646
647
elif name == "SonicQosProfile" :
647
648
qos_profile = value
648
- return syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , downstream_subrole , qos_profile
649
+ elif name == "ResourceType" :
650
+ resource_type = value
651
+ return syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , downstream_subrole , qos_profile , resource_type
649
652
650
653
651
654
def parse_linkmeta (meta , hname ):
@@ -924,6 +927,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
924
927
devices = None
925
928
sub_role = None
926
929
downstream_subrole = None
930
+ resource_type = None
927
931
docker_routing_config_mode = "separated"
928
932
port_speeds_default = {}
929
933
port_speed_png = {}
@@ -981,7 +985,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
981
985
elif child .tag == str (QName (ns , "UngDec" )):
982
986
(u_neighbors , u_devices , _ , _ , _ , _ , _ , _ ) = parse_png (child , hostname )
983
987
elif child .tag == str (QName (ns , "MetadataDeclaration" )):
984
- (syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , downstream_subrole , qos_profile ) = parse_meta (child , hostname )
988
+ (syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , downstream_subrole , qos_profile , resource_type ) = parse_meta (child , hostname )
985
989
elif child .tag == str (QName (ns , "LinkMetadataDeclaration" )):
986
990
linkmetas = parse_linkmeta (child , hostname )
987
991
elif child .tag == str (QName (ns , "DeviceInfos" )):
@@ -1033,6 +1037,8 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
1033
1037
1034
1038
if downstream_subrole is not None :
1035
1039
results ['DEVICE_METADATA' ]['localhost' ]['downstream_subrole' ] = downstream_subrole
1040
+ if resource_type is not None :
1041
+ results ['DEVICE_METADATA' ]['localhost' ]['resource_type' ] = resource_type
1036
1042
1037
1043
results ['BGP_NEIGHBOR' ] = bgp_sessions
1038
1044
results ['BGP_MONITORS' ] = bgp_monitors
0 commit comments