Merge pull request #7744 from donaldsharp/end_configuration

End configuration changes
This commit is contained in:
Mark Stapp 2020-12-16 13:47:24 -05:00 committed by GitHub
commit 91653aefd4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 14 deletions

View File

@ -222,7 +222,7 @@ static struct call_back {
DEFUN_HIDDEN (start_config, DEFUN_HIDDEN (start_config,
start_config_cmd, start_config_cmd,
"start_configuration", "XFRR_start_configuration",
"The Beginning of Configuration\n") "The Beginning of Configuration\n")
{ {
callback.readin_time = monotime(NULL); callback.readin_time = monotime(NULL);
@ -235,7 +235,7 @@ DEFUN_HIDDEN (start_config,
DEFUN_HIDDEN (end_config, DEFUN_HIDDEN (end_config,
end_config_cmd, end_config_cmd,
"end_configuration", "XFRR_end_configuration",
"The End of Configuration\n") "The End of Configuration\n")
{ {
time_t readin_time; time_t readin_time;

View File

@ -3187,7 +3187,7 @@ DEFUN (vtysh_copy_to_running,
int ret; int ret;
const char *fname = argv[1]->arg; const char *fname = argv[1]->arg;
ret = vtysh_read_config(fname); ret = vtysh_read_config(fname, true);
/* Return to enable mode - the 'read_config' api leaves us up a level */ /* Return to enable mode - the 'read_config' api leaves us up a level */
vtysh_execute_no_pager("enable"); vtysh_execute_no_pager("enable");

View File

@ -92,7 +92,7 @@ void config_add_line(struct list *, const char *);
int vtysh_mark_file(const char *filename); int vtysh_mark_file(const char *filename);
int vtysh_read_config(const char *); int vtysh_read_config(const char *filename, bool dry_run);
int vtysh_write_config_integrated(void); int vtysh_write_config_integrated(void);
void vtysh_config_parse_line(void *, const char *); void vtysh_config_parse_line(void *, const char *);

View File

@ -515,7 +515,7 @@ void vtysh_config_dump(void)
} }
/* Read up configuration file from file_name. */ /* Read up configuration file from file_name. */
static int vtysh_read_file(FILE *confp) static int vtysh_read_file(FILE *confp, bool dry_run)
{ {
struct vty *vty; struct vty *vty;
int ret; int ret;
@ -528,12 +528,14 @@ static int vtysh_read_file(FILE *confp)
vtysh_execute_no_pager("enable"); vtysh_execute_no_pager("enable");
vtysh_execute_no_pager("configure terminal"); vtysh_execute_no_pager("configure terminal");
vtysh_execute_no_pager("start_configuration"); if (!dry_run)
vtysh_execute_no_pager("XFRR_start_configuration");
/* Execute configuration file. */ /* Execute configuration file. */
ret = vtysh_config_from_file(vty, confp); ret = vtysh_config_from_file(vty, confp);
vtysh_execute_no_pager("end_configuration"); if (!dry_run)
vtysh_execute_no_pager("XFRR_end_configuration");
vtysh_execute_no_pager("end"); vtysh_execute_no_pager("end");
vtysh_execute_no_pager("disable"); vtysh_execute_no_pager("disable");
@ -544,7 +546,7 @@ static int vtysh_read_file(FILE *confp)
} }
/* Read up configuration file from config_default_dir. */ /* Read up configuration file from config_default_dir. */
int vtysh_read_config(const char *config_default_dir) int vtysh_read_config(const char *config_default_dir, bool dry_run)
{ {
FILE *confp = NULL; FILE *confp = NULL;
int ret; int ret;
@ -557,7 +559,7 @@ int vtysh_read_config(const char *config_default_dir)
return CMD_ERR_NO_FILE; return CMD_ERR_NO_FILE;
} }
ret = vtysh_read_file(confp); ret = vtysh_read_file(confp, dry_run);
fclose(confp); fclose(confp);
return (ret); return (ret);

View File

@ -459,7 +459,7 @@ int main(int argc, char **argv, char **env)
/* Read vtysh configuration file before connecting to daemons. /* Read vtysh configuration file before connecting to daemons.
* (file may not be readable to calling user in SUID mode) */ * (file may not be readable to calling user in SUID mode) */
suid_on(); suid_on();
vtysh_read_config(vtysh_config); vtysh_read_config(vtysh_config, dryrun);
suid_off(); suid_off();
} }
/* Error code library system */ /* Error code library system */
@ -478,9 +478,9 @@ int main(int argc, char **argv, char **env)
/* Start execution only if not in dry-run mode */ /* Start execution only if not in dry-run mode */
if (dryrun && !cmd) { if (dryrun && !cmd) {
if (inputfile) { if (inputfile) {
ret = vtysh_read_config(inputfile); ret = vtysh_read_config(inputfile, dryrun);
} else { } else {
ret = vtysh_read_config(frr_config); ret = vtysh_read_config(frr_config, dryrun);
} }
exit(ret); exit(ret);
@ -561,7 +561,7 @@ int main(int argc, char **argv, char **env)
if (inputfile) { if (inputfile) {
vtysh_flock_config(inputfile); vtysh_flock_config(inputfile);
ret = vtysh_read_config(inputfile); ret = vtysh_read_config(inputfile, dryrun);
vtysh_unflock_config(); vtysh_unflock_config();
exit(ret); exit(ret);
} }
@ -670,7 +670,7 @@ int main(int argc, char **argv, char **env)
/* Boot startup configuration file. */ /* Boot startup configuration file. */
if (boot_flag) { if (boot_flag) {
vtysh_flock_config(frr_config); vtysh_flock_config(frr_config);
ret = vtysh_read_config(frr_config); ret = vtysh_read_config(frr_config, dryrun);
vtysh_unflock_config(); vtysh_unflock_config();
if (ret) { if (ret) {
fprintf(stderr, fprintf(stderr,