From 15dff301fb26aae5df5b7030aaaa61792b5b010d Mon Sep 17 00:00:00 2001 From: Zhenggen Xu Date: Sat, 8 Feb 2020 05:53:21 +0000 Subject: [PATCH 1/2] [sonic-cfggen/docker-frr] Fix sonic-cfggen so docker-frr start.sh won't fail if no WARM_RESTART in configDB In general, instead of sonic-cfggen crashing we print empty string if we use -v or --var-json for variables not existing Signed-off-by: Zhenggen Xu --- src/sonic-config-engine/sonic-cfggen | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/sonic-config-engine/sonic-cfggen b/src/sonic-config-engine/sonic-cfggen index 1a94a47c0f9..61234043d53 100755 --- a/src/sonic-config-engine/sonic-cfggen +++ b/src/sonic-config-engine/sonic-cfggen @@ -296,14 +296,20 @@ def main(): print(template.render(sort_data(data))) if args.var != None: - template = jinja2.Template('{{' + args.var + '}}') - print(template.render(data)) + try: + template = jinja2.Template('{{' + args.var + '}}') + print(template.render(data)) + except: + print("") 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: - print(json.dumps(FormatConverter.to_serialized(data[args.var_json]), indent=4, cls=minigraph_encoder)) + try: + if args.key != None: + print(json.dumps(FormatConverter.to_serialized(data[args.var_json], args.key), indent=4, cls=minigraph_encoder)) + else: + print(json.dumps(FormatConverter.to_serialized(data[args.var_json]), indent=4, cls=minigraph_encoder)) + except: + print("") if args.write_to_db: configdb = ConfigDBConnector(**db_kwargs) From e15df64291ef98b2c668ad8c4e2324395b9404d8 Mon Sep 17 00:00:00 2001 From: Zhenggen Xu Date: Fri, 14 Aug 2020 21:09:43 +0000 Subject: [PATCH 2/2] [sonic-cfggen] Fix sonic-cfggen crash issue when printing non-exists table/key Address review feedback Signed-off-by: Zhenggen Xu --- src/sonic-config-engine/sonic-cfggen | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-config-engine/sonic-cfggen b/src/sonic-config-engine/sonic-cfggen index 61234043d53..e844aa66c93 100755 --- a/src/sonic-config-engine/sonic-cfggen +++ b/src/sonic-config-engine/sonic-cfggen @@ -304,7 +304,7 @@ def main(): if args.var_json != None and args.var_json in data: try: - if args.key != None: + if args.key is not None: print(json.dumps(FormatConverter.to_serialized(data[args.var_json], args.key), indent=4, cls=minigraph_encoder)) else: print(json.dumps(FormatConverter.to_serialized(data[args.var_json]), indent=4, cls=minigraph_encoder))