Skip to content

Commit f42f325

Browse files
anish-nabdosi
authored andcommitted
Minigraph resource type changes (#5198)
* Parse sub_role from minigraph into DEVICE_METADATA * Change minigraph sub_role to resource_type
1 parent 36ca9c5 commit f42f325

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

src/sonic-config-engine/minigraph.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,7 @@ def parse_meta(meta, hname):
615615
cloudtype = None
616616
downstream_subrole = None
617617
qos_profile = None
618+
resource_type = None
618619
device_metas = meta.find(str(QName(ns, "Devices")))
619620
for device in device_metas.findall(str(QName(ns1, "DeviceMetadata"))):
620621
if device.find(str(QName(ns1, "Name"))).text.lower() == hname.lower():
@@ -645,7 +646,9 @@ def parse_meta(meta, hname):
645646
downstream_subrole = value
646647
elif name == "SonicQosProfile":
647648
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
649652

650653

651654
def parse_linkmeta(meta, hname):
@@ -924,6 +927,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
924927
devices = None
925928
sub_role = None
926929
downstream_subrole = None
930+
resource_type = None
927931
docker_routing_config_mode = "separated"
928932
port_speeds_default = {}
929933
port_speed_png = {}
@@ -981,7 +985,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
981985
elif child.tag == str(QName(ns, "UngDec")):
982986
(u_neighbors, u_devices, _, _, _, _, _, _) = parse_png(child, hostname)
983987
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)
985989
elif child.tag == str(QName(ns, "LinkMetadataDeclaration")):
986990
linkmetas = parse_linkmeta(child, hostname)
987991
elif child.tag == str(QName(ns, "DeviceInfos")):
@@ -1033,6 +1037,8 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
10331037

10341038
if downstream_subrole is not None:
10351039
results['DEVICE_METADATA']['localhost']['downstream_subrole'] = downstream_subrole
1040+
if resource_type is not None:
1041+
results['DEVICE_METADATA']['localhost']['resource_type'] = resource_type
10361042

10371043
results['BGP_NEIGHBOR'] = bgp_sessions
10381044
results['BGP_MONITORS'] = bgp_monitors

src/sonic-config-engine/tests/simple-sample-graph-metadata.xml

+3
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,9 @@
257257
<a:Name>DownStreamSubRole</a:Name>
258258
<a:Reference i:nil="true"/>
259259
<a:Value>downstream_subrole_y</a:Value>
260+
<a:Name>ResourceType</a:Name>
261+
<a:Reference i:nil="true"/>
262+
<a:Value>resource_type_x</a:Value>
260263
</a:DeviceProperty>
261264
</a:Properties>
262265
</a:DeviceMetadata>

src/sonic-config-engine/tests/test_cfggen.py

+5
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ def test_minigraph_downstream_subrole(self):
8282
argument = '-v "DEVICE_METADATA[\'localhost\'][\'downstream_subrole\']" -m "' + self.sample_graph_metadata + '"'
8383
output = self.run_script(argument)
8484
self.assertEqual(output.strip(), 'downstream_subrole_y')
85+
86+
def test_minigraph_resourcetype(self):
87+
argument = '-v "DEVICE_METADATA[\'localhost\'][\'resource_type\']" -m "' + self.sample_graph_metadata + '"'
88+
output = self.run_script(argument)
89+
self.assertEqual(output.strip(), 'resource_type_x')
8590

8691
def test_print_data(self):
8792
argument = '-m "' + self.sample_graph + '" --print-data'

0 commit comments

Comments
 (0)