Bug fix: #4011 #4012 - "show run acl", "show run interfaces" - traceback when no ACL_RULE/INTERFACE is present. (#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>
This commit is contained in:
noaOrMlnx 2020-03-30 19:24:16 +03:00 committed by Abhishek Dosi
parent 0b35fcf3bf
commit 68448856a7
2 changed files with 11 additions and 1 deletions

View File

@ -295,7 +295,7 @@ def main():
template = jinja2.Template('{{' + args.var + '}}') template = jinja2.Template('{{' + args.var + '}}')
print(template.render(data)) print(template.render(data))
if args.var_json != None: if args.var_json != None and args.var_json in data:
if args.key != None: if args.key != None:
print(json.dumps(FormatConverter.to_serialized(data[args.var_json], args.key), indent=4, cls=minigraph_encoder)) print(json.dumps(FormatConverter.to_serialized(data[args.var_json], args.key), indent=4, cls=minigraph_encoder))
else: else:

View File

@ -331,3 +331,13 @@ class TestCfgGen(TestCase):
output = subprocess.check_output("sed -i \'s/%s/%s/g\' %s" % (BACKEND_TOR_ROUTER, TOR_ROUTER, self.sample_graph_simple), shell=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) 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, '')