2012-11-19 Sergio Martin <sergio.martin@artica.es>

* modules/pandora_module.h
	modules/pandora_module_factory.cc
	modules/pandora_module.cc: Added several new module fields
	to the XML



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7154 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
zarzuelo 2012-11-19 08:23:49 +00:00
parent 750a5b190a
commit 7987cf692e
4 changed files with 388 additions and 11 deletions

View File

@ -1,3 +1,10 @@
2012-11-19 Sergio Martin <sergio.martin@artica.es>
* modules/pandora_module.h
modules/pandora_module_factory.cc
modules/pandora_module.cc: Added several new module fields
to the XML
2012-04-19 Ramon Novoa <rnovoa@artica.es>
* modules/pandora_module.cc: Default to generic_data if no module_type

View File

@ -65,6 +65,19 @@ Pandora_Module::Pandora_Module (string name) {
this->intensive_interval = 1;
this->timestamp = 0;
this->intensive_match = 0;
this->unit = "";
this->module_group = 0;
this->custom_id = "";
this->str_warning = "";
this->str_critical = "";
this->critical_instructions = "";
this->warning_instructions = "";
this->unknown_instructions = "";
this->tags = "";
this->critical_inverse = 0;
this->warning_inverse = 0;
this->quiet = 0;
this->module_ff_interval = 0;
}
/**
@ -580,6 +593,97 @@ Pandora_Module::getXml () {
module_xml += "]]></min_ff_event>\n";
}
/* Unit */
if (this->unit != "") {
module_xml += "\t<unit><![CDATA[";
module_xml += this->unit;
module_xml += "]]></unit>\n";
}
/* Module group */
if (this->module_group != 0) {
module_xml += "\t<module_group>";
module_xml += this->module_group;
module_xml += "</module_group>\n";
}
/* Custom ID */
if (this->custom_id != "") {
module_xml += "\t<custom_id>";
module_xml += this->custom_id;
module_xml += "</custom_id>\n";
}
/* Str warning */
if (this->str_warning != "") {
module_xml += "\t<str_warning>";
module_xml += this->str_warning;
module_xml += "</str_warning>\n";
}
/* Str critical */
if (this->str_critical != "") {
module_xml += "\t<str_critical>";
module_xml += this->str_critical;
module_xml += "</str_critical>\n";
}
/* Critical instructions */
if (this->critical_instructions != "") {
module_xml += "\t<critical_instructions>";
module_xml += this->critical_instructions;
module_xml += "</critical_instructions>\n";
}
/* Warning instructions */
if (this->warning_instructions != "") {
module_xml += "\t<warning_instructions>";
module_xml += this->warning_instructions;
module_xml += "</warning_instructions>\n";
}
/* Unknown instructions */
if (this->unknown_instructions != "") {
module_xml += "\t<unknown_instructions>";
module_xml += this->unknown_instructions;
module_xml += "</unknown_instructions>\n";
}
/* Tags */
if (this->tags != "") {
module_xml += "\t<tags>";
module_xml += this->tags;
module_xml += "</tags>\n";
}
/* Critical inverse */
if (this->critical_inverse != 0) {
module_xml += "\t<critical_inverse>";
module_xml += this->critical_inverse;
module_xml += "</critical_inverse>\n";
}
/* Warning inverse */
if (this->warning_inverse != 0) {
module_xml += "\t<warning_inverse>";
module_xml += this->warning_inverse;
module_xml += "</warning_inverse>\n";
}
/* Quiet */
if (this->quiet != 0) {
module_xml += "\t<quiet>";
module_xml += this->quiet;
module_xml += "</quiet>\n";
}
/* Module FF interval */
if (this->module_ff_interval != 0) {
module_xml += "\t<module_ff_interval>";
module_xml += this->module_ff_interval;
module_xml += "</module_ff_interval>\n";
}
/* Write module data */
if (this->data_list && this->data_list->size () > 1) {
list<Pandora_Data *>::iterator iter;
@ -659,7 +763,7 @@ Pandora_Module::setMin (int value) {
/**
* Set the post process value for the module.
*
* @param value Post process value .
* @param value Post process value to set.
*/
void
Pandora_Module::setPostProcess (string value) {
@ -669,7 +773,7 @@ Pandora_Module::setPostProcess (string value) {
/**
* Set the min critical value for the module.
*
* @param value Min critical value .
* @param value Min critical value to set.
*/
void
Pandora_Module::setMinCritical (string value) {
@ -679,7 +783,7 @@ Pandora_Module::setMinCritical (string value) {
/**
* Set the max critical value for the module.
*
* @param value Max critical value .
* @param value Max critical value to set.
*/
void
Pandora_Module::setMaxCritical (string value) {
@ -689,7 +793,7 @@ Pandora_Module::setMaxCritical (string value) {
/**
* Set the min warning value for the module.
*
* @param value Min warning value .
* @param value Min warning value to set.
*/
void
Pandora_Module::setMinWarning (string value) {
@ -699,7 +803,7 @@ Pandora_Module::setMinWarning (string value) {
/**
* Set the max warning value for the module.
*
* @param value Max warning value .
* @param value Max warning value to set.
*/
void
Pandora_Module::setMaxWarning (string value) {
@ -709,7 +813,7 @@ Pandora_Module::setMaxWarning (string value) {
/**
* Set the disabled value for the module.
*
* @param value Disabled value .
* @param value Disabled value to set.
*/
void
Pandora_Module::setDisabled (string value) {
@ -719,13 +823,143 @@ Pandora_Module::setDisabled (string value) {
/**
* Set the min ff event value for the module.
*
* @param value Min ff event value .
* @param value Min ff event value to set.
*/
void
Pandora_Module::setMinFFEvent (string value) {
this->min_ff_event = value;
}
/**
* Set the unit value for the module.
*
* @param value unit value to set.
*/
void
Pandora_Module::setUnit (string value) {
this->unit = value;
}
/**
* Set the module group for the module.
*
* @param value module group value to set.
*/
void
Pandora_Module::setModuleGroup (string value) {
this->module_group = value;
}
/**
* Set the custom id for the module.
*
* @param value custom id value to set.
*/
void
Pandora_Module::setCustomId (string value) {
this->custom_id = value;
}
/**
* Set the str warning for the module.
*
* @param value str warning value to set.
*/
void
Pandora_Module::setStrWarning (string value) {
this->str_warning = value;
}
/**
* Set the str critical for the module.
*
* @param value str critical value to set.
*/
void
Pandora_Module::setStrCritical (string value) {
this->str_critical = value;
}
/**
* Set the critical instructions for the module.
*
* @param value critical instructions value to set.
*/
void
Pandora_Module::setCriticalInstructions (string value) {
this->critical_instructions = value;
}
/**
* Set the warning instructions for the module.
*
* @param value warning instructions value to set.
*/
void
Pandora_Module::setWarningInstructions (string value) {
this->warning_instructions = value;
}
/**
* Set the unknown instructions for the module.
*
* @param value unknown instructions value to set.
*/
void
Pandora_Module::setUnknownInstructions (string value) {
this->unknown_instructions = value;
}
/**
* Set the tags for the module.
*
* @param value tags value to set.
*/
void
Pandora_Module::setTags (string value) {
this->tags = value;
}
/**
* Set the critical inverse for the module.
*
* @param value critical inverse value to set.
*/
void
Pandora_Module::setCriticalInverse (string value) {
this->critical_inverse = value;
}
/**
* Set the warning inverse for the module.
*
* @param value warning inverse value to set.
*/
void
Pandora_Module::setWarningInverse (string value) {
this->warning_inverse = value;
}
/**
* Set the quiet for the module.
*
* @param value quiet value to set.
*/
void
Pandora_Module::setQuiet (string value) {
this->quiet = value;
}
/**
* Set the module FF interval for the module.
*
* @param value module FF interval value to set.
*/
void
Pandora_Module::setModuleFFInterval (string value) {
this->module_ff_interval = value;
}
/**
* Set the async flag to the module.
*

View File

@ -176,7 +176,9 @@ namespace Pandora_Modules {
time_t timestamp;
unsigned char intensive_match;
int intensive_interval;
string unit, custom_id, str_warning, str_critical;
int module_group, warning_inverse, critical_inverse, quiet, module_ff_interval;
string critical_instructions, warning_instructions, unknown_instructions, tags;
protected:
@ -263,6 +265,19 @@ namespace Pandora_Modules {
void setMaxWarning (string value);
void setDisabled (string value);
void setMinFFEvent (string value);
void setUnit (string value);
void setModuleGroup (string value);
void setCustomId (string value);
void setStrWarning (string value);
void setStrCritical (string value);
void setCriticalInstructions (string value);
void setWarningInstructions (string value);
void setUnknownInstructions (string value);
void setTags (string value);
void setCriticalInverse (string value);
void setWarningInverse (string value);
void setQuiet (string value);
void setModuleFFInterval (string value);
void setAsync (bool async);
void setSave (string save);

View File

@ -106,8 +106,21 @@ using namespace Pandora_Strutils;
#define TOKEN_SNMPAGENT ("module_snmp_agent ")
#define TOKEN_SNMPOID ("module_snmp_oid ")
#define TOKEN_ADVANCEDOPTIONS ("module_advanced_options ")
#define TOKEN_INTENSIVECONDITION ("module_intensive_condition ")
#define TOKEN_INTENSIVECONDITION ("module_intensive_condition ")
#define TOKEN_UNIT ("module_unit ")
#define TOKEN_MODULE_GROUP ("module_group ")
#define TOKEN_CUSTOM_ID ("module_custom_id ")
#define TOKEN_STR_WARNING ("module_str_warning ")
#define TOKEN_STR_CRITICAL ("module_str_critical ")
#define TOKEN_CRITICAL_INSTRUCTIONS ("module_critical_instructions ")
#define TOKEN_WARNING_INSTRUCTIONS ("module_warning_instructions ")
#define TOKEN_UNKNOWN_INSTRUCTIONS ("module_unknown_instructions ")
#define TOKEN_TAGS ("module_tags ")
#define TOKEN_CRITICAL_INVERSE ("module_critical_inverse ")
#define TOKEN_WARNING_INVERSE ("module_warning_inverse ")
#define TOKEN_QUIET ("module_quiet ")
#define TOKEN_MODULE_FF_INTERVAL ("module_ff_interval ")
string
parseLine (string line, string token) {
unsigned int pos;
@ -156,6 +169,9 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
string module_ping, module_ping_count, module_ping_timeout;
string module_snmpget, module_snmp_version, module_snmp_community, module_snmp_agent, module_snmp_oid;
string module_advanced_options, module_cooked, module_intensive_condition;
string module_unit, module_group, module_custom_id, module_str_warning, module_str_critical;
string module_critical_instructions, module_warning_instructions, module_unknown_instructions, module_tags;
string module_critical_inverse, module_warning_inverse, module_quiet, module_ff_interval;
Pandora_Module *module;
bool numeric;
Module_Type type;
@ -219,6 +235,19 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
module_advanced_options = "";
module_cooked = "";
module_intensive_condition = "";
module_unit = "";
module_group = "";
module_custom_id = "";
module_str_warning = "";
module_str_critical = "";
module_critical_instructions = "";
module_warning_instructions = "";
module_unknown_instructions = "";
module_tags = "";
module_critical_inverse = "";
module_warning_inverse = "";
module_quiet = "";
module_ff_interval = "";
stringtok (tokens, definition, "\n");
@ -430,6 +459,46 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
module_intensive_condition = "";
}
}
if (module_unit == "") {
module_unit = parseLine (line, TOKEN_UNIT);
}
if (module_group == "") {
module_group = parseLine (line, TOKEN_MODULE_GROUP);
}
if (module_custom_id == "") {
module_custom_id = parseLine (line, TOKEN_CUSTOM_ID);
}
if (module_str_warning == "") {
module_str_warning = parseLine (line, TOKEN_STR_WARNING);
}
if (module_str_critical == "") {
module_str_critical = parseLine (line, TOKEN_STR_CRITICAL);
}
if (module_critical_instructions == "") {
module_critical_instructions = parseLine (line, TOKEN_CRITICAL_INSTRUCTIONS);
}
if (module_warning_instructions == "") {
module_warning_instructions = parseLine (line, TOKEN_WARNING_INSTRUCTIONS);
}
if (module_unknown_instructions == "") {
module_unknown_instructions = parseLine (line, TOKEN_UNKNOWN_INSTRUCTIONS);
}
if (module_tags == "") {
module_tags = parseLine (line, TOKEN_TAGS);
}
if (module_critical_inverse == "") {
module_critical_inverse = parseLine (line, TOKEN_CRITICAL_INVERSE);
}
if (module_warning_inverse == "") {
module_warning_inverse = parseLine (line, TOKEN_WARNING_INVERSE);
}
if (module_quiet == "") {
module_quiet = parseLine (line, TOKEN_QUIET);
}
if (module_ff_interval == "") {
module_ff_interval = parseLine (line, TOKEN_MODULE_FF_INTERVAL);
}
iter++;
}
@ -710,6 +779,58 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
if (module_min_ff_event != "") {
module->setMinFFEvent (module_min_ff_event);
}
if (module_unit != "") {
module->setUnit (module_unit);
}
if (module_group != "") {
module->setModuleGroup (module_group);
}
if (module_custom_id != "") {
module->setCustomId (module_custom_id);
}
if (module_str_warning != "") {
module->setStrWarning (module_str_warning);
}
if (module_str_critical != "") {
module->setStrCritical (module_str_critical);
}
if (module_critical_instructions != "") {
module->setCriticalInstructions (module_critical_instructions);
}
if (module_warning_instructions != "") {
module->setWarningInstructions (module_warning_instructions);
}
if (module_unknown_instructions != "") {
module->setUnknownInstructions (module_unknown_instructions);
}
if (module_tags != "") {
module->setTags (module_tags);
}
if (module_critical_inverse != "") {
module->setCriticalInverse (module_critical_inverse);
}
if (module_warning_inverse != "") {
module->setWarningInverse (module_warning_inverse);
}
if (module_quiet != "") {
module->setQuiet (module_quiet);
}
if (module_ff_interval != "") {
module->setModuleFFInterval (module_ff_interval);
}
return module;
}