#!/bin/sh
# PCP QA Test No. 831
# Exercising local socket connections and user credentials.
#
# Approach used is to enable tracing in the sample PMDA and
# then access (any) sample metric.  This should result in a
# log message in pmdasample.log reflecting the testers user
# and group identifiers.
#
# Copyright (c) 2013 Red Hat.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.secure

_get_libpcp_config
$unix_domain_sockets || _notrun "No unix domain socket support available"
$authentication || _notrun "No authentication support available"

_cleanup()
{
    cd $here
    _service pmcd restart 2>&1 | _filter_pcp_restart
    _wait_for_pmcd
    _restore_auto_restart pmcd
    _service pmlogger restart 2>&1 | _filter_pcp_restart
    _wait_for_pmlogger
    $sudo rm -rf $tmp.*
}

status=1	# failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_stop_auto_restart pmcd

# real QA test starts here
if ! _service pmcd restart 2>&1; then _exit 1; fi \
| _filter_pcp_restart
_wait_for_pmcd || _exit 1
# sample.log is now sure to be clean
if ! _service pmlogger restart 2>&1; then _exit 1; fi \
| _filter_pcp_restart
_wait_for_pmlogger || _exit 1

echo "Enabling sample PMDA tracing"
pmstore sample.control "auth"

echo "Verifying authentication for new client"
pmprobe -v -h unix: sample.control
filter_sample_log_credentials

echo "Resetting sample PMDA tracing"
pmstore -h unix: sample.control ""
filter_sample_log_credentials

# success, all done
status=0
exit
