@@ -1372,6 +1372,19 @@ def multiasic_write_to_db(filename, load_sysinfo):
1372
1372
migrate_db_to_lastest (ns )
1373
1373
1374
1374
1375
+ def config_file_yang_validation (filename ):
1376
+ config_to_check = read_json_file (filename )
1377
+ sy = sonic_yang .SonicYang (YANG_DIR )
1378
+ sy .loadYangModel ()
1379
+ try :
1380
+ sy .loadData (configdbJson = config_to_check )
1381
+ sy .validate_data_tree ()
1382
+ except sonic_yang .SonicYangException as e :
1383
+ click .secho ("{} fails YANG validation! Error: {}" .format (filename , str (e )),
1384
+ fg = 'magenta' )
1385
+ raise click .Abort ()
1386
+
1387
+
1375
1388
# This is our main entrypoint - the main 'config' command
1376
1389
@click .group (cls = clicommon .AbbreviationGroup , context_settings = CONTEXT_SETTINGS )
1377
1390
@click .pass_context
@@ -1810,6 +1823,13 @@ def reload(db, filename, yes, load_sysinfo, no_service_restart, force, file_form
1810
1823
click .echo ("Input {} config file(s) separated by comma for multiple files " .format (num_cfg_file ))
1811
1824
return
1812
1825
1826
+ if filename is not None :
1827
+ if multi_asic .is_multi_asic ():
1828
+ # Multiasic has not 100% fully validated. Thus pass here.
1829
+ pass
1830
+ else :
1831
+ config_file_yang_validation (filename )
1832
+
1813
1833
#Stop services before config push
1814
1834
if not no_service_restart :
1815
1835
log .log_notice ("'reload' stopping services..." )
@@ -2000,15 +2020,7 @@ def load_minigraph(db, no_service_restart, traffic_shift_away, override_config,
2000
2020
# Multiasic has not 100% fully validated. Thus pass here.
2001
2021
pass
2002
2022
else :
2003
- sy = sonic_yang .SonicYang (YANG_DIR )
2004
- sy .loadYangModel ()
2005
- try :
2006
- sy .loadData (configdbJson = config_to_check )
2007
- sy .validate_data_tree ()
2008
- except sonic_yang .SonicYangException as e :
2009
- click .secho ("{} fails YANG validation! Error: {}" .format (golden_config_path , str (e )),
2010
- fg = 'magenta' )
2011
- raise click .Abort ()
2023
+ config_file_yang_validation (golden_config_path )
2012
2024
2013
2025
# Dependency check golden config json
2014
2026
if multi_asic .is_multi_asic ():
0 commit comments