2011-03-01 Ramon Novoa <rnovoa@artica.es>
* win32/modules/pandora_module.h, win32/modules/pandora_module_factory.cc, win32/modules/pandora_module.cc, unix/pandora_agent, shellscript/linux/pandora_agent: Set the module min, max and post_process in the XML data file. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4036 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
fa9d3363bd
commit
6c2489b4c7
|
@ -1,3 +1,12 @@
|
||||||
|
2011-03-01 Ramon Novoa <rnovoa@artica.es>
|
||||||
|
|
||||||
|
* win32/modules/pandora_module.h,
|
||||||
|
win32/modules/pandora_module_factory.cc,
|
||||||
|
win32/modules/pandora_module.cc,
|
||||||
|
unix/pandora_agent,
|
||||||
|
shellscript/linux/pandora_agent: Set the module min, max and
|
||||||
|
post_process in the XML data file.
|
||||||
|
|
||||||
2011-02-14 Ramon Novoa <rnovoa@artica.es>
|
2011-02-14 Ramon Novoa <rnovoa@artica.es>
|
||||||
|
|
||||||
* embedded/INSTALL: Added instructions to cross-compile for
|
* embedded/INSTALL: Added instructions to cross-compile for
|
||||||
|
|
|
@ -618,7 +618,7 @@ do
|
||||||
if [ ! -z "`echo $a | grep -e '^module_postprocess'`" ]
|
if [ ! -z "`echo $a | grep -e '^module_postprocess'`" ]
|
||||||
then
|
then
|
||||||
pprocess=`echo $a | cut -d" " -f2-`
|
pprocess=`echo $a | cut -d" " -f2-`
|
||||||
echo "<postprocess><![CDATA[$pprocess]]></postprocess>" >> $DATA2
|
echo "<post_process><![CDATA[$pprocess]]></post_process>" >> $DATA2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If module ends, and execute for this module is enabled
|
# If module ends, and execute for this module is enabled
|
||||||
|
|
|
@ -311,9 +311,9 @@ sub read_config (;$) {
|
||||||
'interval' => 1,
|
'interval' => 1,
|
||||||
'timeout' => 0,
|
'timeout' => 0,
|
||||||
'counter' => 0,
|
'counter' => 0,
|
||||||
'max' => 0,
|
'max' => undef,
|
||||||
'min' => 0,
|
'min' => undef,
|
||||||
'postprocess' => 0,
|
'post_process' => undef,
|
||||||
'save' => '',
|
'save' => '',
|
||||||
'conditions' => [],
|
'conditions' => [],
|
||||||
'cron' => '',
|
'cron' => '',
|
||||||
|
@ -353,10 +353,12 @@ sub read_config (;$) {
|
||||||
} elsif ($line =~ /^\s*module_freepercentdisk\s+(.*)$/) {
|
} elsif ($line =~ /^\s*module_freepercentdisk\s+(.*)$/) {
|
||||||
$module->{'func'} = \&module_freepercentdisk;
|
$module->{'func'} = \&module_freepercentdisk;
|
||||||
$module->{'params'} = $1;
|
$module->{'params'} = $1;
|
||||||
} elsif ($line =~ /^\s*module_max\s+(\d+)\s*$/) {
|
} elsif ($line =~ /^\s*module_max\s+(.*)\s*$/) {
|
||||||
$module->{'max'} = $1;
|
|
||||||
} elsif ($line =~ /^\s*module_min\s+(\d+)\s*$/) {
|
|
||||||
$module->{'max'} = $1;
|
$module->{'max'} = $1;
|
||||||
|
} elsif ($line =~ /^\s*module_min\s+(.*)\s*$/) {
|
||||||
|
$module->{'min'} = $1;
|
||||||
|
} elsif ($line =~ /^\s*module_post_process\s+(.*)\s*$/) {
|
||||||
|
$module->{'post_process'} = $1;
|
||||||
} elsif ($line =~ /^\s*module_interval\s+(\d+)\s*$/) {
|
} elsif ($line =~ /^\s*module_interval\s+(\d+)\s*$/) {
|
||||||
$module->{'interval'} = $1;
|
$module->{'interval'} = $1;
|
||||||
|
|
||||||
|
@ -1211,9 +1213,17 @@ sub write_module_xml ($@) {
|
||||||
" <description><![CDATA[" . $module->{'description'} . "]]></description>\n" .
|
" <description><![CDATA[" . $module->{'description'} . "]]></description>\n" .
|
||||||
" <type>" . $module->{'type'} . "</type>\n";
|
" <type>" . $module->{'type'} . "</type>\n";
|
||||||
|
|
||||||
if ($module->{'interval'} > 1) {
|
# Interval
|
||||||
$Xml .= " <module_interval>" . $module->{'interval'} . "</module_interval>\n";
|
$Xml .= " <module_interval>" . $module->{'interval'} . "</module_interval>\n" if ($module->{'interval'} > 1);
|
||||||
}
|
|
||||||
|
# Min
|
||||||
|
$Xml .= " <min>" . $module->{'min'} . "</min>\n" if (defined ($module->{'min'}));
|
||||||
|
|
||||||
|
# Max
|
||||||
|
$Xml .= " <max>" . $module->{'max'} . "</max>\n" if (defined ($module->{'max'}));
|
||||||
|
|
||||||
|
# Post process
|
||||||
|
$Xml .= " <post_process>" . $module->{'post_process'} . "</post_process>\n" if (defined ($module->{'post_process'}));
|
||||||
|
|
||||||
# Data list
|
# Data list
|
||||||
if ($#data > 0) {
|
if ($#data > 0) {
|
||||||
|
|
|
@ -43,7 +43,10 @@ Pandora_Module::Pandora_Module (string name) {
|
||||||
this->module_timeout = 15000;
|
this->module_timeout = 15000;
|
||||||
this->max = 0;
|
this->max = 0;
|
||||||
this->min = 0;
|
this->min = 0;
|
||||||
|
this->post_process = "";
|
||||||
this->has_limits = false;
|
this->has_limits = false;
|
||||||
|
this->has_min = false;
|
||||||
|
this->has_max = false;
|
||||||
this->async = false;
|
this->async = false;
|
||||||
this->data_list = NULL;
|
this->data_list = NULL;
|
||||||
this->inventory_list = NULL;
|
this->inventory_list = NULL;
|
||||||
|
@ -418,7 +421,7 @@ Pandora_Module::run () {
|
||||||
*/
|
*/
|
||||||
string
|
string
|
||||||
Pandora_Module::getXml () {
|
Pandora_Module::getXml () {
|
||||||
ostringstream module_interval;
|
ostringstream module_interval, min, max;
|
||||||
string module_xml, data_clean, interval_str;
|
string module_xml, data_clean, interval_str;
|
||||||
Pandora_Data *data;
|
Pandora_Data *data;
|
||||||
|
|
||||||
|
@ -435,17 +438,44 @@ Pandora_Module::getXml () {
|
||||||
module_xml += "]]></name>\n\t<type><![CDATA[";
|
module_xml += "]]></name>\n\t<type><![CDATA[";
|
||||||
module_xml += this->module_type_str;
|
module_xml += this->module_type_str;
|
||||||
module_xml += "]]></type>\n";
|
module_xml += "]]></type>\n";
|
||||||
|
|
||||||
|
/* Description */
|
||||||
if (this->module_description != "") {
|
if (this->module_description != "") {
|
||||||
module_xml += "\t<description><![CDATA[";
|
module_xml += "\t<description><![CDATA[";
|
||||||
module_xml += this->module_description;
|
module_xml += this->module_description;
|
||||||
module_xml += "]]></description>\n";
|
module_xml += "]]></description>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Interval */
|
||||||
if (this->module_interval > 1) {
|
if (this->module_interval > 1) {
|
||||||
module_interval << this->module_interval;
|
module_interval << this->module_interval;
|
||||||
module_xml += "\t<module_interval><![CDATA[";
|
module_xml += "\t<module_interval><![CDATA[";
|
||||||
module_xml += module_interval.str ();
|
module_xml += module_interval.str ();
|
||||||
module_xml += "]]></module_interval>\n";
|
module_xml += "]]></module_interval>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Min */
|
||||||
|
if (this->has_min) {
|
||||||
|
min << this->min;
|
||||||
|
module_xml += "\t<min><![CDATA[";
|
||||||
|
module_xml += min.str ();
|
||||||
|
module_xml += "]]></min>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Max */
|
||||||
|
if (this->has_max) {
|
||||||
|
max << this->max;
|
||||||
|
module_xml += "\t<max><![CDATA[";
|
||||||
|
module_xml += max.str ();
|
||||||
|
module_xml += "]]></max>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Post process */
|
||||||
|
if (this->post_process != "") {
|
||||||
|
module_xml += "\t<post_process><![CDATA[";
|
||||||
|
module_xml += this->post_process;
|
||||||
|
module_xml += "]]></post_process>\n";
|
||||||
|
}
|
||||||
|
|
||||||
/* Write module data */
|
/* Write module data */
|
||||||
if (this->data_list && this->data_list->size () > 1) {
|
if (this->data_list && this->data_list->size () > 1) {
|
||||||
|
@ -505,6 +535,7 @@ Pandora_Module::getXml () {
|
||||||
void
|
void
|
||||||
Pandora_Module::setMax (int value) {
|
Pandora_Module::setMax (int value) {
|
||||||
this->has_limits = true;
|
this->has_limits = true;
|
||||||
|
this->has_max = true;
|
||||||
this->max = value;
|
this->max = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -518,9 +549,20 @@ Pandora_Module::setMax (int value) {
|
||||||
void
|
void
|
||||||
Pandora_Module::setMin (int value) {
|
Pandora_Module::setMin (int value) {
|
||||||
this->has_limits = true;
|
this->has_limits = true;
|
||||||
|
this->has_min = true;
|
||||||
this->min = value;
|
this->min = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the post process value for the module.
|
||||||
|
*
|
||||||
|
* @param value Post process value .
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
Pandora_Module::setPostProcess (string value) {
|
||||||
|
this->post_process = value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the async flag to the module.
|
* Set the async flag to the module.
|
||||||
*
|
*
|
||||||
|
|
|
@ -158,7 +158,8 @@ namespace Pandora_Modules {
|
||||||
int module_timeout;
|
int module_timeout;
|
||||||
int executions;
|
int executions;
|
||||||
int max, min;
|
int max, min;
|
||||||
bool has_limits;
|
string post_process;
|
||||||
|
bool has_limits, has_min, has_max;
|
||||||
Module_Type module_type;
|
Module_Type module_type;
|
||||||
string module_kind_str;
|
string module_kind_str;
|
||||||
Module_Kind module_kind;
|
Module_Kind module_kind;
|
||||||
|
@ -242,6 +243,7 @@ namespace Pandora_Modules {
|
||||||
void setDescription (string description);
|
void setDescription (string description);
|
||||||
void setMax (int value);
|
void setMax (int value);
|
||||||
void setMin (int value);
|
void setMin (int value);
|
||||||
|
void setPostProcess (string value);
|
||||||
void setAsync (bool async);
|
void setAsync (bool async);
|
||||||
void setSave (string save);
|
void setSave (string save);
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@ using namespace Pandora_Strutils;
|
||||||
#define TOKEN_ODBC ("module_odbc ")
|
#define TOKEN_ODBC ("module_odbc ")
|
||||||
#define TOKEN_MAX ("module_max ")
|
#define TOKEN_MAX ("module_max ")
|
||||||
#define TOKEN_MIN ("module_min ")
|
#define TOKEN_MIN ("module_min ")
|
||||||
|
#define TOKEN_POST_PROCESS ("module_post_process ")
|
||||||
#define TOKEN_DESCRIPTION ("module_description ")
|
#define TOKEN_DESCRIPTION ("module_description ")
|
||||||
#define TOKEN_ODBC_QUERY ("module_odbc_query ")
|
#define TOKEN_ODBC_QUERY ("module_odbc_query ")
|
||||||
#define TOKEN_LOGEVENT ("module_logevent")
|
#define TOKEN_LOGEVENT ("module_logevent")
|
||||||
|
@ -127,7 +128,7 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
||||||
string module_perfcounter, module_tcpcheck;
|
string module_perfcounter, module_tcpcheck;
|
||||||
string module_port, module_timeout, module_regexp;
|
string module_port, module_timeout, module_regexp;
|
||||||
string module_plugin, module_save, module_condition;
|
string module_plugin, module_save, module_condition;
|
||||||
string module_crontab, module_cron_interval;
|
string module_crontab, module_cron_interval, module_post_process;
|
||||||
Pandora_Module *module;
|
Pandora_Module *module;
|
||||||
bool numeric;
|
bool numeric;
|
||||||
Module_Type type;
|
Module_Type type;
|
||||||
|
@ -170,6 +171,7 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
||||||
module_condition = "";
|
module_condition = "";
|
||||||
module_crontab = "";
|
module_crontab = "";
|
||||||
module_cron_interval = "";
|
module_cron_interval = "";
|
||||||
|
module_post_process = "";
|
||||||
|
|
||||||
stringtok (tokens, definition, "\n");
|
stringtok (tokens, definition, "\n");
|
||||||
|
|
||||||
|
@ -225,6 +227,9 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
||||||
if (module_min == "") {
|
if (module_min == "") {
|
||||||
module_min = parseLine (line, TOKEN_MIN);
|
module_min = parseLine (line, TOKEN_MIN);
|
||||||
}
|
}
|
||||||
|
if (module_post_process == "") {
|
||||||
|
module_post_process = parseLine (line, TOKEN_POST_PROCESS);
|
||||||
|
}
|
||||||
if (module_description == "") {
|
if (module_description == "") {
|
||||||
module_description = parseLine (line, TOKEN_DESCRIPTION);
|
module_description = parseLine (line, TOKEN_DESCRIPTION);
|
||||||
}
|
}
|
||||||
|
@ -509,5 +514,9 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (module_post_process != "") {
|
||||||
|
module->setPostProcess (module_post_process);
|
||||||
|
}
|
||||||
|
|
||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue