Skip to content

Commit

Permalink
Add downstreamsubrole parsing to minigraph.py (sonic-net#7193)
Browse files Browse the repository at this point in the history
  • Loading branch information
anish-n authored and raphaelt-nvidia committed May 13, 2021
1 parent 99205e0 commit 7c7c015
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
11 changes: 9 additions & 2 deletions src/sonic-config-engine/minigraph.py
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,7 @@ def parse_meta(meta, hname):
region = None
cloudtype = None
resource_type = None
downstream_subrole = None
kube_data = {}
device_metas = meta.find(str(QName(ns, "Devices")))
for device in device_metas.findall(str(QName(ns1, "DeviceMetadata"))):
Expand Down Expand Up @@ -820,11 +821,13 @@ def parse_meta(meta, hname):
cloudtype = value
elif name == "ResourceType":
resource_type = value
elif name == "DownStreamSubRole":
downstream_subrole = value
elif name == "KubernetesEnabled":
kube_data["enable"] = value
elif name == "KubernetesServerIp":
kube_data["ip"] = value
return syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, kube_data
return syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, downstream_subrole, kube_data


def parse_linkmeta(meta, hname):
Expand Down Expand Up @@ -1097,6 +1100,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
devices = None
sub_role = None
resource_type = None
downstream_subrole = None
docker_routing_config_mode = "separated"
port_speeds_default = {}
port_speed_png = {}
Expand Down Expand Up @@ -1155,7 +1159,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
elif child.tag == str(QName(ns, "UngDec")):
(u_neighbors, u_devices, _, _, _, _, _, _) = parse_png(child, hostname, None)
elif child.tag == str(QName(ns, "MetadataDeclaration")):
(syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, kube_data) = parse_meta(child, hostname)
(syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, downstream_subrole, kube_data) = parse_meta(child, hostname)
elif child.tag == str(QName(ns, "LinkMetadataDeclaration")):
linkmetas = parse_linkmeta(child, hostname)
elif child.tag == str(QName(ns, "DeviceInfos")):
Expand Down Expand Up @@ -1230,6 +1234,9 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
if resource_type is not None:
results['DEVICE_METADATA']['localhost']['resource_type'] = resource_type

if downstream_subrole is not None:
results['DEVICE_METADATA']['localhost']['downstream_subrole'] = downstream_subrole

results['BGP_NEIGHBOR'] = bgp_sessions
results['BGP_MONITORS'] = bgp_monitors
results['BGP_PEER_RANGE'] = bgp_peers_with_range
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,11 @@
<a:Reference i:nil="true"/>
<a:Value>resource_type_x</a:Value>
</a:DeviceProperty>
<a:DeviceProperty>
<a:Name>DownStreamSubRole</a:Name>
<a:Reference i:nil="true"/>
<a:Value>downstream_subrole_y</a:Value>
</a:DeviceProperty>
</a:Properties>
</a:DeviceMetadata>
</Devices>
Expand Down
5 changes: 5 additions & 0 deletions src/sonic-config-engine/tests/test_cfggen.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@ def test_minigraph_resourcetype(self):
output = self.run_script(argument)
self.assertEqual(output.strip(), 'resource_type_x')

def test_minigraph_downstream_subrole(self):
argument = '-v "DEVICE_METADATA[\'localhost\'][\'downstream_subrole\']" -m "' + self.sample_graph_metadata + '"'
output = self.run_script(argument)
self.assertEqual(output.strip(), 'downstream_subrole_y')

def test_print_data(self):
argument = '-m "' + self.sample_graph + '" --print-data'
output = self.run_script(argument)
Expand Down

0 comments on commit 7c7c015

Please sign in to comment.