Information on the CIM Provider for Linux Event Log Analysis ver. 0.7.5
-----------------------------------------------------------------------

THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE
("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.

You can obtain a current copy of the Common Public License from
http://oss.software.ibm.com/developerworks/opensource/license-cpl.html

Author : Rajarshi Das, IBM Linux Technology Center <rajarshi@in.ibm.com>

ChangeLog :
05/25/2004 : modified elaindicationprovider.c and ela_daemon.c to use 
	     allow provider to auto reconnect to the ela_daemon if it 
	     goes down. Also, the daemon is notified as soon as the 
	     provider goes down, and closes the socket connection. 
05/11/2004 : Removed env.pegasus and env.snia. A single env file now 
	     suffices for all environments. Changed the install path 
	     for ela_daemon, the path for the socket and created aliases 
	     for ela report directory.
03/30/2004 : Changed the include path for cmpi header files in env.pegasus
             to match the new location in the pegasus source. Added an extra
             flag for compilation in the makefiles.
03/09/2004 : Enabled single client support for the pegasus environment.
	     Enabled multiple client support as well. Modified
	     elaindicationprovider.c for the same. Added new directory
	     'pegasus_test' for testing in the pegasus environment.
	     Modified INSTALL file. 
03/03/2004 : 'datetime' property replaced by 'timestamp' in the mof file
	     to ensure it works with Pegasus. Elaindicationprovider.c also
	     modified. Ela_IndicationRegistration.mof file added in ./mof.
	     Makefile modified to build in pegasus environment. env.snia 
	     and env.pegasus files added. env.local and env.remote files 
	     removed (their functionality is set in env.pegasus and env.snia
	     files respectively). INSTALL document modified. Changed install
	     location of sig_daemon.sh from /usr/bin to /tmp.
02/19/2004 : ela_daemon.c and elaindicationprovider.c modified to allow
	     platform error ela reports also to be monitored (at /etc/
	     diagela/data) in addition to the io ela reports at /var/evlog
	     /ela_report). 
02/17/2004 : Daemon code and elaindicationprovider.c modified to enable 
	     multiple client support. sigterm_children.sh removed (daemon 
	     no longer has any children). sig_daemon.sh added to signal daemon.
	     Client code modified to allow client specific (or all) 
	     subscription cancellation. Scripts added in client code to 
	     handle specific cancellation conditions. INSTALL and README docs
	     modified. readme.txt modified in client code.
01/21/2004 : parseelareport.c modified to use thread safe code. ela_daemon.c
	     modified to handle sigterm. elaindicationprovider.c modified such 
	     that cimom server keeps running (even if daemon goes down). 
	     IndicationArbiter.java modified to use process id instead of the 
	     value zero, to create subscription. INSTALL and README documents
	     also modified.
12/19/2003 : elaindicationprovider.c modified, makefile modified to set
	     default as 'all' and elad script modified to stop all instances 
	     of the ela_daemon which are running.
12/18/2003 : elad script introduced and INSTALL document modified
12/17/2003 : Makefile modified for compiling the daemon and the sample script also.
12/15/2003 : Second version
12/13/2003 : First version

Introduction:
------------
This provider is written using an API called CMPI. It allows linux event log 
analysis reports to be delivered to client applications which have subscribed
for the same. 
It requires a certain number of minimum CIM (Common Information Model) packages 
to be installed (as explained in the INSTALL document)before it can be used. 
The Common Information Model has been standardised by the Distributed Management
Task Force.

Since the delivery of event log analysis reports requires indications to be 
delivered, the instrumentation (provider) code uses an indication provider to deliver the
indications to the subscribing clients.

The Ela (Event Log Analysis) report can be of basically two types:
1) A SRN report,
2) A Menugoal report. 

The Menugoal report is slightly more detailed in that it also suggests the 
corrective action in addition to the usual diagnostic information which makes 
up a SRN report. 

The contents of the report are mapped into a certain process indication class,
called the ela_reportindication class. 
Ela_reportindication :
The following interfaces are implemented.
a) MustPoll: This interface is for the CIM server to determine if it can poll a provider.
b) AuthorizeFilter:This interface needs to be implemented in case we need to
ensure that the user wanting to subscribe is suitably authorized.
c) ActivateFilter: This is invoked by the CIM server to ask the provider interface to
look for events.
d) DeactivateFilter:This interface is called when the user (subscriber) decides
that he doesnt need any more relevant notifications.


To learn more about CIM, visit http://www.dmtf.org
To investigate CMPI, check out http://www.wbemsource.org
To find out more on SBLIM, check http://oss.software.ibm.com/sblim
To get more information on event log analysis, visit http://evlog.sf.net.

The package :
-------------
README 			This file
INSTALL			The install and test document for the package
evsub 			The client code to test the provider (more info in 
			'readme.txt' within the directory) for snia only
pegasus_test		Files  to test the provider (more info in 'readme.txt'
			 within the directory) for pegasus only
mof			This has the MOF file which needs to be loaded for
			the ela_reportindication to be accessible
parser			The parser code
sample			Sample code which can be used to test the provider in 
			the absence of an actual event log analysis report 
			generation mechanism
indprovider.h		The header file for the provider code
ela_daemon.c		The daemon (which interfaces the client code and the 
			report generation mechanism)
elaindicationprovider.c The provider library code
makefile		The makefile for the package. The evsub code is built
			for a local client by default
env 			This file sets whether the evsub client application 
			needs to be built in the SNIA or PEGASUS environment
			and also whether the client is local or remote.
elad			The script which starts/stops the daemon
sig_daemon.sh		The script to send a signal to the daemon in case the CIM
			server goes down (the server either gets a sigint or a 
			sigterm)


Environment tested on:
---------------------
The code has been tested on RedHat 8.0 and SLES 8.0 on intel using SNIACIMOM 
version 0.8.4-pl1. 
The code has also been tested on RedHat 8.0 and SLES8.0 on intel using the 
pegasus cimom version 2.3.2. 

Features available:
-------------------
1) A single client can subscribe for an event (generation of event log analysis 
reports) at a time.
2) A popup window appears showing the report information as soon as an event 
occurs (a event log analysis report is written).
3) The client subscription can be from a machine different from the one on 
which the provider runs.
4) It is possible to cancel all existing subscriptions using the script 
cancelsub.sh
5) The cim server doesnot exit if the daemon goes down. The cim server can be 
used even without the ela daemon running.
6) Multiple clients can subscribe for the same event and each of them receives
one notification at a time for a single event.
7) Any existing subscription can be deleted by using the program 'cancelsub.sh
<pid of the subscription process>'. This deletes the subscription process and
the corresponding CIM subscription. Alternately, 'cancelsub.sh <cleanrelpos>'
may be used to cancel all existing subscriptions in CIM. This however
doesnot affect the 'createsub.sh' processes.
8) When multiple subscriptions are running, the CIM server may be restarted 
and existing subscriptions reused. New subscriptions may be added.
An event generated notifies all subscriptions running at that time. 
9) When multiple subscriptions are running, one or more subscription may be 
deleted, and the other subscriptions continue to be serviced (notified) of
any events that are subsequently generated.
10) Both ela reports (written to /var/evlog/ela_report) and platform ela
reports (written to /etc/diagela/data) can be monitored by the same set of
clients.


Note: 
-----
The event log analysis generator simulates messages from the e1000 ethernet 
driver and signals the daemon for further processing. 
