From b4f1ac8baf8d8c482f86fd033ae90257060277f6 Mon Sep 17 00:00:00 2001 From: Deepti Kulkarni Date: Tue, 28 Feb 2012 08:16:58 -0800 Subject: bug fix for 4718 - enhancement that will log commits in syslog for all successful (complete) commits for all commit methods. --- Makefile.am | 1 + debian/vyatta-cfg.postinst.in | 2 ++ scripts/vyatta-log-commit.pl | 57 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 scripts/vyatta-log-commit.pl diff --git a/Makefile.am b/Makefile.am index ec2dbaf..a26054a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -102,6 +102,7 @@ sbin_SCRIPTS += scripts/vyatta-load-config.pl sbin_SCRIPTS += scripts/vyatta-cfg-notify sbin_SCRIPTS += scripts/vyatta-check-typeless-node.pl sbin_SCRIPTS += scripts/vyatta-strip-migration-comments.pl +sbin_SCRIPTS += scripts/vyatta-log-commit.pl share_perl5_DATA = lib/Vyatta/Config.pm share_perl5_DATA += lib/Vyatta/File.pm diff --git a/debian/vyatta-cfg.postinst.in b/debian/vyatta-cfg.postinst.in index 7ba4332..7ad9339 100644 --- a/debian/vyatta-cfg.postinst.in +++ b/debian/vyatta-cfg.postinst.in @@ -44,3 +44,5 @@ done # handle renamed file (not automatically deleted since it was "conffile") rm -f /etc/bash_completion.d/20vyatta-cfg +# create symlink for post commit hook +ln -sf /opt/vyatta/sbin/vyatta-log-commit.pl /etc/commit/post-hooks.d/10vyatta-log-commit.pl diff --git a/scripts/vyatta-log-commit.pl b/scripts/vyatta-log-commit.pl new file mode 100644 index 0000000..b3fe6b2 --- /dev/null +++ b/scripts/vyatta-log-commit.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2010 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Deepti Kulkarni +# Date: Feb 2012 +# Description: Script to log active configuration commits to syslog. +# +# **** End License **** +# + + +use strict; +use warnings; +use lib '/opt/vyatta/share/perl5/'; + +use Vyatta::Config; +use Sys::Syslog qw(:standard :macros); + +# +# main +# +my $commit_status; +my $cur_tty=`ps -o tty= |head -n1`; +my $cur_user=`id -un`; +my $status = $ENV{'COMMIT_STATUS'}; + +chomp($cur_tty); +chomp($cur_user); + +$commit_status = 'Successful' if ($status eq 'SUCCESS'); +#open log for logging commit details +if (defined $commit_status) { + openlog("commit", "", LOG_USER); + syslog ("alert", "$commit_status change to active configuration by user $cur_user on $cur_tty"); + closelog(); +} +#end of script -- cgit v1.2.3