Private GIT

Skip to content
Snippets Groups Projects
Commit 05e4cc6a authored by Kevin Duret's avatar Kevin Duret
Browse files

#3832 fix failover generation

parent 906db420
Branches
Tags
No related merge requests found
......@@ -410,7 +410,9 @@ class CentreonConfigCentreonBroker
/*
* Insert the Centreon Broker configuration
*/
$query = "INSERT INTO cfg_centreonbroker (config_name, config_filename, ns_nagios_server, config_activate, config_write_timestamp, config_write_thread_id, stats_activate, correlation_activate, retention_path, event_queue_max_size) VALUES (
$query = "INSERT INTO cfg_centreonbroker "
. "(config_name, config_filename, ns_nagios_server, config_activate, config_write_timestamp, config_write_thread_id, stats_activate, correlation_activate, retention_path, buffering_timeout, retry_interval, event_queue_max_size) "
. "VALUES (
'" . $this->db->escape($values['name']) . "',
'" . $this->db->escape($values['filename']) . "',
" . $this->db->escape($values['ns_nagios_server']) . ",
......@@ -420,7 +422,10 @@ class CentreonConfigCentreonBroker
'" . $this->db->escape($values['stats_activate']['stats_activate']) . "',
'" . $this->db->escape($values['correlation_activate']['correlation_activate']) . "',
'" . $this->db->escape($values['retention_path']) . "',
".$this->db->escape((int)$this->checkEventMaxQueueSizeValue($values['event_queue_max_size'])).")";
'" . $this->db->escape($values['buffering_timeout']) . "',
'" . $this->db->escape($values['retry_interval']) . "',
".$this->db->escape((int)$this->checkEventMaxQueueSizeValue($values['event_queue_max_size']))
. ")";
if (PEAR::isError($this->db->query($query))) {
return false;
}
......@@ -461,6 +466,8 @@ class CentreonConfigCentreonBroker
stats_activate = '" . $this->db->escape($values['stats_activate']['stats_activate']) . "',
correlation_activate = '" . $this->db->escape($values['correlation_activate']['correlation_activate']) . "',
retention_path = '" . $this->db->escape($values['retention_path']) . "',
buffering_timeout = '" . $this->db->escape($values['buffering_timeout']) . "',
retry_interval = '" . $this->db->escape($values['retry_interval']) . "',
event_queue_max_size = ".(int)$this->db->escape($this->checkEventMaxQueueSizeValue($values['event_queue_max_size']))."
WHERE config_id = " . $id;
if (PEAR::isError($this->db->query($query))) {
......
......@@ -16,6 +16,8 @@ class Broker extends AbstractObjectXML {
correlation_activate,
event_queue_max_size,
retention_path,
buffering_timeout,
retry_interval,
command_file
';
protected $attributes_select_parameters = '
......@@ -72,12 +74,21 @@ class Broker extends AbstractObjectXML {
foreach ($result as $row) {
$this->generate_filename = $row['config_filename'];
$object = array();
$output_options = array();
$config_name = $row['config_name'];
$retention_path = $row['retention_path'];
$stats_activate = $row['stats_activate'];
$correlation_activate = $row['correlation_activate'];
if (trim($row['buffering_timeout']) != '') {
$output_options['buffering_timeout'] = $row['buffering_timeout'];
}
if (trim($row['retry_interval']) != '') {
$output_options['retry_interval'] = $row['retry_interval'];
}
# Base parameters
$object['instance'] = $this->engine['id'];
$object['instance_name'] = $this->engine['name'];
......@@ -93,31 +104,31 @@ class Broker extends AbstractObjectXML {
$failover_config_group_id = $this->max_config_group_id + 1;
foreach ($resultParameters as $key => $value) {
$subobjects = array();
$failover = false;
$output_name = null;
$outputs = array();
# Flow parameters
foreach ($value as $subvalue) {
if (in_array($subvalue['config_key'], $this->exclude_parameters) || trim($subvalue['config_value']) == '') {
continue;
} else if ($subvalue['config_key'] == 'category') {
$object[$subvalue['config_group_id']][$key]['filters'][][$subvalue['config_key']] = $subvalue['config_value'];
$subobjects[$subvalue['config_group_id']][$key]['filters'][][$subvalue['config_key']] = $subvalue['config_value'];
} else {
$object[$subvalue['config_group_id']][$key][$subvalue['config_key']] = $subvalue['config_value'];
}
if ($key == 'output' && $subvalue['config_key'] == 'type' && $subvalue['config_value'] != 'file') {
$failover = true;
} else if ($key == 'output' && $subvalue['config_key'] == 'name') {
$output_name = $subvalue['config_value'];
$subobjects[$subvalue['config_group_id']][$key][$subvalue['config_key']] = $subvalue['config_value'];
}
}
# Failover parameters
if ($failover == true && !is_null($output_name)) {
$object[$failover_config_group_id][$key] = array(
foreach ($subobjects as $config_group_id => $subvalue) {
if (isset($subvalue['output']['type']) && $subvalue['output']['type'] != 'file' && !isset($subvalue['output']['failover']) && isset($subvalue['output']['name'])) {
$output_name = $subobjects[$config_group_id]['output']['name'];
$subobjects[$config_group_id]['output']['failover'] = $output_name . '-failover';
$subobjects[$failover_config_group_id]['output']= array(
'type' => 'file',
'name' => $retention_path . '/' . $config_name . '_' . $output_name . '.retention',
'name' => $output_name . '-failover',
'path' => $retention_path . '/' . $config_name . '_' . $output_name . '.retention',
'protocol' => 'bbdo',
'compression' => 'auto',
'max_size' => '104857600'
......@@ -126,6 +137,9 @@ class Broker extends AbstractObjectXML {
}
}
$object = array_merge($object, $subobjects);
}
# Temporary parameters
$object[1]['temporary'] = array(
'type' => 'file',
......
......@@ -119,7 +119,9 @@
function getCentreonBrokerInformation($id) {
global $pearDB;
$query = "SELECT config_name, config_filename, ns_nagios_server, stats_activate, correlation_activate, config_write_timestamp, config_write_thread_id, config_activate, event_queue_max_size, retention_path
$query = "SELECT config_name, config_filename, ns_nagios_server, stats_activate, correlation_activate,
config_write_timestamp, config_write_thread_id, config_activate, event_queue_max_size, retention_path,
buffering_timeout, retry_interval
FROM cfg_centreonbroker
WHERE config_id = " . $id;
$res = $pearDB->query($query);
......@@ -145,7 +147,9 @@
"write_timestamp" => $row['config_write_timestamp'],
"write_thread_id" => $row['config_write_thread_id'],
"event_queue_max_size" => $row['event_queue_max_size'],
"retention_path" => $row['retention_path']
"retention_path" => $row['retention_path'],
"buffering_timeout" => $row['buffering_timeout'],
"retry_interval" => $row['retry_interval']
);
}
......
......@@ -43,6 +43,8 @@
<tr class="list_one"><td class="FormRowField">{$form.stats_activate.label}</td><td class="FormRowValue">{$form.stats_activate.html}</td></tr>
<tr class="list_two"><td class="FormRowField">{$form.correlation_activate.label}</td><td class="FormRowValue">{$form.correlation_activate.html}</td></tr>
<tr class="list_one"><td class="FormRowField">{$form.event_queue_max_size.label}</td><td class="FormRowValue">{$form.event_queue_max_size.html}</td></tr>
<tr class="list_two"><td class="FormRowField">{$form.buffering_timeout.label}</td><td class="FormRowValue">{$form.buffering_timeout.html}</td></tr>
<tr class="list_one"><td class="FormRowField">{$form.retry_interval.label}</td><td class="FormRowValue">{$form.retry_interval.html}</td></tr>
<tr class="list_two"><td class="FormRowField">{$form.command_file.label}</td><td class="FormRowValue">{$form.command_file.html}</td></tr>
<tr class="list_lvl_2"><td class="ListColLvl2_name" colspan="2">{$form.required._note}</td></tr>
</table>
......
......@@ -102,6 +102,8 @@ $form->addElement('select', 'ns_nagios_server', _("Requester"), $nagios_servers)
$form->addElement('text', 'retention_path', _("Retention path"), $attrsText);
$form->addElement('text', 'event_queue_max_size', _('Event queue max size'), $attrsText);
$form->addElement('text', 'retry_interval', _('Retry interval'), $attrsText);
$form->addElement('text', 'buffering_timeout', _('Buffering timeout'), $attrsText);
$command = $form->addElement('text', 'command_file', _('Command file'), $attrText);
$command->freeze();
......@@ -153,7 +155,9 @@ if (isset($_GET["o"]) && $_GET["o"] == 'a'){
"write_thread_id" => '1',
"stats_activate" => '1',
"correlation_activate" => '0',
"activate" => '1'
"activate" => '1',
"retry_interval" => '60',
"buffering_timeout" => '0'
));
$tpl->assign('config_id', 0);
} else {
......
......@@ -41,7 +41,9 @@ if (isset($pearDB)) {
$query = "ALTER TABLE cfg_centreonbroker
ADD COLUMN retention_path varchar(255),
ADD COLUMN stats_activate enum('0','1') DEFAULT '1',
ADD COLUMN correlation_activate enum('0','1') DEFAULT '0'";
ADD COLUMN correlation_activate enum('0','1') DEFAULT '0',
ADD COLUMN buffering_timeout varchar(255) NOT NULL,
ADD COLUMN retry_interval varchar(255) NOT NULL";
$pearDB->query($query);
# Fill retention path
......@@ -137,5 +139,13 @@ if (isset($pearDB)) {
OR name='temporary'";
$pearDB->query($query);
# Delete buffering_timeout and retry_interval field relations
$query = "DELETE FROM cb_type_field_relation
WHERE cb_field_id IN
(SELECT cb_field_id
FROM cb_field
WHERE fieldname IN ('buffering_timeout','retry_interval')
)";
$pearDB->query($query);
}
?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment