[cfggen]: ignore acl when its type is not defined (#1568)
Signed-off-by: Guohan Lu <gulv@microsoft.com>
This commit is contained in:
parent
4d3f44bc32
commit
af0013e939
@ -207,11 +207,15 @@ def parse_dpg(dpg, hname):
|
|||||||
'type': 'MIRROR' if is_mirror else 'L3'}
|
'type': 'MIRROR' if is_mirror else 'L3'}
|
||||||
else:
|
else:
|
||||||
# This ACL has no interfaces to attach to -- consider this a control plane ACL
|
# This ACL has no interfaces to attach to -- consider this a control plane ACL
|
||||||
aclservice = aclintf.find(str(QName(ns, "Type"))).text
|
try:
|
||||||
acls[aclname] = {'policy_desc': aclname,
|
aclservice = aclintf.find(str(QName(ns, "Type"))).text
|
||||||
'ports': acl_intfs,
|
acls[aclname] = {'policy_desc': aclname,
|
||||||
'type': 'CTRLPLANE',
|
'ports': acl_intfs,
|
||||||
'service': aclservice if aclservice is not None else 'UNKNOWN'}
|
'type': 'CTRLPLANE',
|
||||||
|
'service': aclservice if aclservice is not None else 'UNKNOWN'}
|
||||||
|
except:
|
||||||
|
print >> sys.stderr, "Warning: Ingore Control Plane ACL %s without type" % aclname
|
||||||
|
|
||||||
return intfs, lo_intfs, mgmt_intf, vlans, vlan_members, pcs, acls
|
return intfs, lo_intfs, mgmt_intf, vlans, vlan_members, pcs, acls
|
||||||
return None, None, None, None, None, None, None
|
return None, None, None, None, None, None, None
|
||||||
|
|
||||||
|
@ -271,6 +271,20 @@
|
|||||||
<InAcl>SNMP_ACL</InAcl>
|
<InAcl>SNMP_ACL</InAcl>
|
||||||
<Type>SNMP</Type>
|
<Type>SNMP</Type>
|
||||||
</AclInterface>
|
</AclInterface>
|
||||||
|
<AclInterface>
|
||||||
|
<AttachTo>NTP</AttachTo>
|
||||||
|
<InAcl>NTP_ACL</InAcl>
|
||||||
|
<Type>NTP</Type>
|
||||||
|
</AclInterface>
|
||||||
|
<AclInterface>
|
||||||
|
<AttachTo>SSH</AttachTo>
|
||||||
|
<InAcl>SSH_ACL</InAcl>
|
||||||
|
<Type>SSH</Type>
|
||||||
|
</AclInterface>
|
||||||
|
<AclInterface>
|
||||||
|
<AttachTo>NTP</AttachTo>
|
||||||
|
<InAcl>NTP_ACL</InAcl>
|
||||||
|
</AclInterface>
|
||||||
</AclInterfaces>
|
</AclInterfaces>
|
||||||
<DownstreamSummaries/>
|
<DownstreamSummaries/>
|
||||||
<DownstreamSummarySet xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/>
|
<DownstreamSummarySet xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/>
|
||||||
|
@ -16,9 +16,13 @@ class TestCfgGen(TestCase):
|
|||||||
self.sample_device_desc = os.path.join(self.test_dir, 'device.xml')
|
self.sample_device_desc = os.path.join(self.test_dir, 'device.xml')
|
||||||
self.port_config = os.path.join(self.test_dir, 't0-sample-port-config.ini')
|
self.port_config = os.path.join(self.test_dir, 't0-sample-port-config.ini')
|
||||||
|
|
||||||
def run_script(self, argument):
|
def run_script(self, argument, check_stderr=False):
|
||||||
print '\n Running sonic-cfggen ' + argument
|
print '\n Running sonic-cfggen ' + argument
|
||||||
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
|
if check_stderr:
|
||||||
|
output = subprocess.check_output(self.script_file + ' ' + argument, stderr=subprocess.STDOUT, shell=True)
|
||||||
|
else:
|
||||||
|
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
|
||||||
|
|
||||||
linecount = output.strip().count('\n')
|
linecount = output.strip().count('\n')
|
||||||
if linecount <= 0:
|
if linecount <= 0:
|
||||||
print ' Output: ' + output.strip()
|
print ' Output: ' + output.strip()
|
||||||
@ -73,10 +77,12 @@ class TestCfgGen(TestCase):
|
|||||||
|
|
||||||
def test_minigraph_acl(self):
|
def test_minigraph_acl(self):
|
||||||
argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v ACL_TABLE'
|
argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v ACL_TABLE'
|
||||||
output = self.run_script(argument)
|
output = self.run_script(argument, True)
|
||||||
self.assertEqual(output.strip(), "{'SNMP_ACL': {'type': 'CTRLPLANE', 'policy_desc': 'SNMP_ACL', 'service': 'SNMP', 'ports': []},"
|
self.assertEqual(output.strip(), "Warning: Ingore Control Plane ACL NTP_ACL without type\n"
|
||||||
" 'DATAACL': {'type': 'L3', 'policy_desc': 'DATAACL', 'ports': ['Ethernet112', 'Ethernet116', 'Ethernet120', 'Ethernet124']}}")
|
"{'SSH_ACL': {'type': 'CTRLPLANE', 'policy_desc': 'SSH_ACL', 'service': 'SSH', 'ports': []},"
|
||||||
|
" 'SNMP_ACL': {'type': 'CTRLPLANE', 'policy_desc': 'SNMP_ACL', 'service': 'SNMP', 'ports': []},"
|
||||||
|
" 'DATAACL': {'type': 'L3', 'policy_desc': 'DATAACL', 'ports': ['Ethernet112', 'Ethernet116', 'Ethernet120', 'Ethernet124']},"
|
||||||
|
" 'NTP_ACL': {'type': 'CTRLPLANE', 'policy_desc': 'NTP_ACL', 'service': 'NTP', 'ports': []}}")
|
||||||
def test_minigraph_everflow(self):
|
def test_minigraph_everflow(self):
|
||||||
argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v MIRROR_SESSION'
|
argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v MIRROR_SESSION'
|
||||||
output = self.run_script(argument)
|
output = self.run_script(argument)
|
||||||
|
Reference in New Issue
Block a user