Read cloudtype info from minigraph (#4642)
This commit is contained in:
parent
e25c2d984f
commit
40481f01af
@ -528,6 +528,7 @@ def parse_meta(meta, hname):
|
||||
erspan_dst = []
|
||||
deployment_id = None
|
||||
region = None
|
||||
cloudtype = None
|
||||
device_metas = meta.find(str(QName(ns, "Devices")))
|
||||
for device in device_metas.findall(str(QName(ns1, "DeviceMetadata"))):
|
||||
if device.find(str(QName(ns1, "Name"))).text.lower() == hname.lower():
|
||||
@ -552,7 +553,9 @@ def parse_meta(meta, hname):
|
||||
deployment_id = value
|
||||
elif name == "Region":
|
||||
region = value
|
||||
return syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region
|
||||
elif name == "CloudType":
|
||||
cloudtype = value
|
||||
return syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype
|
||||
|
||||
|
||||
def parse_linkmeta(meta, hname):
|
||||
@ -812,6 +815,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
|
||||
bgp_peers_with_range = None
|
||||
deployment_id = None
|
||||
region = None
|
||||
cloudtype = None
|
||||
hostname = None
|
||||
linkmetas = {}
|
||||
|
||||
@ -847,7 +851,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
|
||||
elif child.tag == str(QName(ns, "UngDec")):
|
||||
(u_neighbors, u_devices, _, _, _, _, _, _) = parse_png(child, hostname)
|
||||
elif child.tag == str(QName(ns, "MetadataDeclaration")):
|
||||
(syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region) = parse_meta(child, hostname)
|
||||
(syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype) = parse_meta(child, hostname)
|
||||
elif child.tag == str(QName(ns, "LinkMetadataDeclaration")):
|
||||
linkmetas = parse_linkmeta(child, hostname)
|
||||
elif child.tag == str(QName(ns, "DeviceInfos")):
|
||||
@ -879,6 +883,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None):
|
||||
'bgp_asn': bgp_asn,
|
||||
'deployment_id': deployment_id,
|
||||
'region': region,
|
||||
'cloudtype': cloudtype,
|
||||
'docker_routing_config_mode': docker_routing_config_mode,
|
||||
'hostname': hostname,
|
||||
'hwsku': hwsku,
|
||||
|
@ -220,6 +220,11 @@
|
||||
<a:Reference i:nil="true"/>
|
||||
<a:Value>usfoo</a:Value>
|
||||
</a:DeviceProperty>
|
||||
<a:DeviceProperty>
|
||||
<a:Name>CloudType</a:Name>
|
||||
<a:Reference i:nil="true"/>
|
||||
<a:Value>Public</a:Value>
|
||||
</a:DeviceProperty>
|
||||
<a:DeviceProperty>
|
||||
<a:Name>ErspanDestinationIpv4</a:Name>
|
||||
<a:Reference i:nil="true"/>
|
||||
|
@ -58,6 +58,11 @@ class TestCfgGen(TestCase):
|
||||
output = self.run_script(argument)
|
||||
self.assertEqual(output.strip(), 'usfoo')
|
||||
|
||||
def test_minigraph_cloudtype(self):
|
||||
argument = '-v "DEVICE_METADATA[\'localhost\'][\'cloudtype\']" -m "' + self.sample_graph_metadata + '"'
|
||||
output = self.run_script(argument)
|
||||
self.assertEqual(output.strip(), 'Public')
|
||||
|
||||
def test_print_data(self):
|
||||
argument = '-m "' + self.sample_graph + '" --print-data'
|
||||
output = self.run_script(argument)
|
||||
|
Loading…
Reference in New Issue
Block a user