summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepti Kulkarni <deepti@vyatta.com>2012-02-28 08:16:58 -0800
committerDeepti Kulkarni <deepti@vyatta.com>2012-02-28 08:16:58 -0800
commitb4f1ac8baf8d8c482f86fd033ae90257060277f6 (patch)
treef8106a9147c7161da9b271b8a2bba5c239c2405b
parent3a4f9c0f87db96d8af230f8e4c19c3fd1c697477 (diff)
downloadvyatta-cfg-b4f1ac8baf8d8c482f86fd033ae90257060277f6.tar.gz
vyatta-cfg-b4f1ac8baf8d8c482f86fd033ae90257060277f6.zip
bug fix for 4718 - enhancement that will log commits in syslog for all
successful (complete) commits for all commit methods.
-rw-r--r--Makefile.am1
-rw-r--r--debian/vyatta-cfg.postinst.in2
-rw-r--r--scripts/vyatta-log-commit.pl57
3 files changed, 60 insertions, 0 deletions
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