Skip to content

Commit

Permalink
Bug fix: sonic-net#4011 sonic-net#4012 - "show run acl", "show run in…
Browse files Browse the repository at this point in the history
…terfaces" - traceback when no ACL_RULE/INTERFACE is present. (sonic-net#4226)

* Fix bugs - "show run acl/interfaces" returns traceback when no ACL_RULE/INTERFACE is present in configuration
- Change logic in main to take data only if the var_json appears in DB.
- Add unit testing for bug fix & fix comments

Signed-off-by: Noa Or <noaor@mellanox.com>
  • Loading branch information
noaOrMlnx authored and tiantianlv committed Apr 24, 2020
1 parent ab8576d commit bb394ad
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/sonic-config-engine/sonic-cfggen
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ def main():
template = jinja2.Template('{{' + args.var + '}}')
print(template.render(data))

if args.var_json != None:
if args.var_json != None and args.var_json in data:
if args.key != None:
print(json.dumps(FormatConverter.to_serialized(data[args.var_json], args.key), indent=4, cls=minigraph_encoder))
else:
Expand Down
10 changes: 10 additions & 0 deletions src/sonic-config-engine/tests/test_cfggen.py
Original file line number Diff line number Diff line change
Expand Up @@ -331,3 +331,13 @@ def test_minigraph_sub_port_interfaces(self, check_stderr=True):
output = subprocess.check_output("sed -i \'s/%s/%s/g\' %s" % (BACKEND_TOR_ROUTER, TOR_ROUTER, self.sample_graph_simple), shell=True)

self.test_jinja_expression(self.sample_graph_simple, TOR_ROUTER)

def test_show_run_acl(self):
argument = '-a \'{"key1":"value"}\' --var-json ACL_RULE'
output = self.run_script(argument)
self.assertEqual(output, '')

def test_show_run_interfaces(self):
argument = '-a \'{"key1":"value"}\' --var-json INTERFACE'
output = self.run_script(argument)
self.assertEqual(output, '')

0 comments on commit bb394ad

Please sign in to comment.