############################################################################### ## OCSINVENTORY-NG ## Copyleft Guillaume PROTET 2010 ## Web : http://www.ocsinventory-ng.org ## ## This code is open source and may be copied and modified as long as the source ## code is always made freely available. ## Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt ################################################################################ package Ocsinventory::Agent::Modules::Example; sub new { my $name="example"; #Set the name of your module here my (undef,$context) = @_; my $self = {}; #Create a special logger for the module $self->{logger} = new Ocsinventory::Logger ({ config => $context->{config} }); $self->{logger}->{header}="[$name]"; $self->{context}=$context; $self->{structure}= { name => $name, start_handler => $name."_start_handler", #or undef if don't use this hook prolog_writer => $name."_prolog_writer", #or undef if don't use this hook prolog_reader => $name."_prolog_reader", #or undef if don't use this hook inventory_handler => $name."_inventory_handler", #or undef if don't use this hook end_handler => $name."_end_handler" #or undef if don't use this hook }; bless $self; } ######### Hook methods ############ sub example_start_handler { #Use this hook to test prerequisites needed by module and disble it if needed my $self = shift; my $logger = $self->{logger}; $logger->debug("Yeah you are in example_start_handler :)"); my $prerequisites = 1 ; if ( $prerequisites == 0 ) { $self->{disabled} = 1; #Use this to disable the module $logger->debug("Humm my prerequisites are not OK...disabling module :( :( "); } } sub example_prolog_writer { #Use this hook to add information the prolog XML my $self = shift; my $logger = $self->{logger}; $logger->debug("Yeah you are in example_prolog_writer :)"); } sub example_prolog_reader { #Use this hook to read the answer from OCS server my $self = shift; my $logger = $self->{logger}; $logger->debug("Yeah you are in example_prolog_reader :)"); } sub example_inventory_handler { #Use this hook to add or modify entries in the inventory XML my $self = shift; my $logger = $self->{logger}; $logger->debug("Yeah you are in example_inventory_handler :)"); } sub example_end_handler { #Use this hook to add treatments before the end of agent launch my $self = shift; my $logger = $self->{logger}; $logger->debug("Yeah you are in example_end_handler :)"); } 1;