Fix #1451 : add server option for mssql

This commit is contained in:
garnier-quentin 2019-03-28 10:14:21 +01:00
parent 26ad3df902
commit 14f2a042ca

View File

@ -32,21 +32,21 @@ sub new {
$self->{version} = '0.1'; $self->{version} = '0.1';
%{$self->{modes}} = ( %{$self->{modes}} = (
'backup-age' => 'database::mssql::mode::backupage', 'backup-age' => 'database::mssql::mode::backupage',
'blocked-processes' => 'database::mssql::mode::blockedprocesses', 'blocked-processes' => 'database::mssql::mode::blockedprocesses',
'cache-hitratio' => 'database::mssql::mode::cachehitratio', 'cache-hitratio' => 'database::mssql::mode::cachehitratio',
'connected-users' => 'database::mssql::mode::connectedusers', 'connected-users' => 'database::mssql::mode::connectedusers',
'connection-time' => 'centreon::common::protocols::sql::mode::connectiontime', 'connection-time' => 'centreon::common::protocols::sql::mode::connectiontime',
'dead-locks' => 'database::mssql::mode::deadlocks', 'dead-locks' => 'database::mssql::mode::deadlocks',
'databases-size' => 'database::mssql::mode::databasessize', 'databases-size' => 'database::mssql::mode::databasessize',
'failed-jobs' => 'database::mssql::mode::failedjobs', 'failed-jobs' => 'database::mssql::mode::failedjobs',
'list-databases' => 'database::mssql::mode::listdatabases', 'list-databases' => 'database::mssql::mode::listdatabases',
'locks-waits' => 'database::mssql::mode::lockswaits', 'locks-waits' => 'database::mssql::mode::lockswaits',
'logs-size' => 'database::mssql::mode::logssize', 'logs-size' => 'database::mssql::mode::logssize',
'sql' => 'centreon::common::protocols::sql::mode::sql', 'sql' => 'centreon::common::protocols::sql::mode::sql',
'sql-string' => 'centreon::common::protocols::sql::mode::sqlstring', 'sql-string' => 'centreon::common::protocols::sql::mode::sqlstring',
'transactions' => 'database::mssql::mode::transactions', 'transactions' => 'database::mssql::mode::transactions',
); );
$self->{sql_modes}{dbi} = 'database::mssql::dbi'; $self->{sql_modes}{dbi} = 'database::mssql::dbi';
return $self; return $self;
@ -56,18 +56,30 @@ sub init {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->{options}->add_options( $self->{options}->add_options(
arguments => { arguments => {
'hostname:s@' => { name => 'hostname' }, 'hostname:s@' => { name => 'hostname' },
'port:s@' => { name => 'port' }, 'port:s@' => { name => 'port' },
'database:s' => { name => 'database' }, 'server:s@' => { name => 'server' },
} 'database:s' => { name => 'database' },
); }
);
$self->{options}->parse_options(); $self->{options}->parse_options();
my $options_result = $self->{options}->get_options(); my $options_result = $self->{options}->get_options();
$self->{options}->clean(); $self->{options}->clean();
if (defined($options_result->{server})) {
@{$self->{sqldefault}->{dbi}} = ();
for (my $i = 0; $i < scalar(@{$options_result->{server}}); $i++) {
$self->{sqldefault}->{dbi}[$i] = { data_source => 'Sybase:server=' . $options_result->{server}[$i] };
if ((defined($options_result->{database})) && ($options_result->{database} ne '')) {
$self->{sqldefault}->{dbi}[$i]->{data_source} .= ';database=' . $options_result->{database};
}
}
}
if (defined($options_result->{hostname})) { if (defined($options_result->{hostname})) {
@{$self->{sqldefault}->{dbi}} = (); @{$self->{sqldefault}->{dbi}} = ();
for (my $i = 0; $i < scalar(@{$options_result->{hostname}}); $i++) { for (my $i = 0; $i < scalar(@{$options_result->{hostname}}); $i++) {
$self->{sqldefault}->{dbi}[$i] = { data_source => 'Sybase:host=' . $options_result->{hostname}[$i] }; $self->{sqldefault}->{dbi}[$i] = { data_source => 'Sybase:host=' . $options_result->{hostname}[$i] };
if (defined($options_result->{port}[$i])) { if (defined($options_result->{port}[$i])) {
@ -78,6 +90,7 @@ sub init {
} }
} }
} }
$self->SUPER::init(%options); $self->SUPER::init(%options);
} }
@ -99,6 +112,10 @@ Hostname to query.
Database Server Port. Database Server Port.
=item B<--server>
An alternative to hostname+port. <server> will be looked up in the file freetds.conf.
=back =back
=cut =cut