From 5ba137ab57ab296cd4243b5d21fb83b433d663e4 Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Wed, 3 Aug 2016 14:37:29 +0200 Subject: [PATCH] + Fix #14 --- .../src/centreon/script/centreon_vmware.pm | 3 ++- .../src/centreon/vmware/cmdalarmdatacenter.pm | 13 ++-------- .../src/centreon/vmware/cmdalarmhost.pm | 12 ++-------- .../vmware/src/centreon/vmware/cmdbase.pm | 24 +++++++++++++++++++ .../src/centreon/vmware/cmdcountvmhost.pm | 11 ++------- .../vmware/src/centreon/vmware/cmdcpuhost.pm | 12 ++-------- .../vmware/src/centreon/vmware/cmdcpuvm.pm | 13 +++------- .../centreon/vmware/cmddatastorecountvm.pm | 11 ++------- .../src/centreon/vmware/cmddatastorehost.pm | 11 ++------- .../src/centreon/vmware/cmddatastoreio.pm | 11 ++------- .../src/centreon/vmware/cmddatastoreiops.pm | 11 ++------- .../centreon/vmware/cmddatastoresnapshot.pm | 11 ++------- .../src/centreon/vmware/cmddatastoreusage.pm | 11 ++------- .../src/centreon/vmware/cmddatastorevm.pm | 13 +++------- .../vmware/src/centreon/vmware/cmdgetmap.pm | 12 ++-------- .../src/centreon/vmware/cmdhealthhost.pm | 13 ++-------- .../vmware/src/centreon/vmware/cmdlimitvm.pm | 13 +++------- .../src/centreon/vmware/cmdlistdatacenters.pm | 12 ++-------- .../src/centreon/vmware/cmdlistdatastores.pm | 12 ++-------- .../src/centreon/vmware/cmdlistnichost.pm | 4 ++-- .../src/centreon/vmware/cmdmaintenancehost.pm | 12 ++-------- .../vmware/src/centreon/vmware/cmdmemhost.pm | 11 ++------- .../vmware/src/centreon/vmware/cmdmemvm.pm | 13 +++------- .../vmware/src/centreon/vmware/cmdnethost.pm | 11 ++------- .../src/centreon/vmware/cmdservicehost.pm | 12 ++-------- .../src/centreon/vmware/cmdsnapshotvm.pm | 13 +++------- .../src/centreon/vmware/cmdstatushost.pm | 12 ++-------- .../vmware/src/centreon/vmware/cmdstatusvm.pm | 14 +++-------- .../vmware/src/centreon/vmware/cmdswaphost.pm | 11 ++------- .../vmware/src/centreon/vmware/cmdswapvm.pm | 17 ++++--------- .../centreon/vmware/cmdthinprovisioningvm.pm | 13 +++------- .../vmware/src/centreon/vmware/cmdtimehost.pm | 12 ++-------- .../vmware/src/centreon/vmware/cmdtoolsvm.pm | 13 +++------- .../src/centreon/vmware/cmduptimehost.pm | 13 +++------- .../centreon/vmware/cmdvmoperationcluster.pm | 11 ++------- 35 files changed, 104 insertions(+), 317 deletions(-) diff --git a/connectors/vmware/src/centreon/script/centreon_vmware.pm b/connectors/vmware/src/centreon/script/centreon_vmware.pm index b18507cbc..440ffeae6 100644 --- a/connectors/vmware/src/centreon/script/centreon_vmware.pm +++ b/connectors/vmware/src/centreon/script/centreon_vmware.pm @@ -120,6 +120,7 @@ sub new { vm_state_error => 'UNKNOWN', host_state_error => 'UNKNOWN', retention_dir => '/var/lib/centreon/centplugins', + case_insensitive => 0, vsphere_server => { #'default' => {'url' => 'https://XXXXXX/sdk', # 'username' => 'XXXXX', @@ -262,7 +263,7 @@ sub load_module { for (@_) { (my $file = "$_.pm") =~ s{::}{/}g; require $file; - my $obj = $_->new(logger => $self->{logger}); + my $obj = $_->new(logger => $self->{logger}, case_insensitive => $self->{centreon_vmware_config}->{case_insensitive}); $self->{modules_registry}->{$obj->getCommandName()} = $obj; } } diff --git a/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm b/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm index 52953906f..d660ad6b6 100644 --- a/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm +++ b/connectors/vmware/src/centreon/vmware/cmdalarmdatacenter.pm @@ -71,25 +71,16 @@ sub run { return if ($self->{statefile_cache}->error() == 1); } - my %filters = (); my $multiple = 0; - if (defined($self->{filter_time}) && $self->{filter_time} ne '' && $self->{connector}->{module_date_parse_loaded} == 0) { $self->{manager}->{output}->output_add(severity => 'UNKNOWN', short_msg => "Need to install Date::Parse CPAN Module"); return ; } - if (defined($self->{datacenter}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datacenter}\E$/; - } elsif (!defined($self->{datacenter})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datacenter}/; - } - + my $filters = $self->build_filter(label => 'name', search_option => 'datacenter', is_regexp => 'filter'); my @properties = ('name', 'triggeredAlarmState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datacenter', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datacenter', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm b/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm index 5a61e69a1..92b6f106d 100644 --- a/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdalarmhost.pm @@ -71,7 +71,6 @@ sub run { return if ($self->{statefile_cache}->error() == 1); } - my %filters = (); my $multiple = 0; if (defined($self->{filter_time}) && $self->{filter_time} ne '' && $self->{connector}->{module_date_parse_loaded} == 0) { @@ -80,16 +79,9 @@ sub run { return ; } - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } - + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'triggeredAlarmState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdbase.pm b/connectors/vmware/src/centreon/vmware/cmdbase.pm index 5c72067f4..b9021df23 100644 --- a/connectors/vmware/src/centreon/vmware/cmdbase.pm +++ b/connectors/vmware/src/centreon/vmware/cmdbase.pm @@ -29,6 +29,7 @@ sub new { bless $self, $class; $self->{logger} = $options{logger}; + $self->{case_insensitive} = defined($options{case_insensitive}) ? $options{case_insensitive} : 0; return $self; } @@ -66,4 +67,27 @@ sub set_connector { alarm(300); } +sub build_filter { + my ($self, %options) = @_; + + my $filters = {}; + if (defined($self->{$options{search_option}}) && !defined($self->{$options{is_regexp}})) { + if ($self->{case_insensitive} == 1) { + $filters->{name} = qr/^\Q$self->{$options{search_option}}\E$/i; + } else { + $filters->{name} = qr/^\Q$self->{$options{search_option}}\E$/; + } + } elsif (!defined($self->{$options{search_option}})) { + $filters->{name} = qr/.*/; + } else { + if ($self->{case_insensitive} == 1) { + $filters->{name} = qr/$self->{$options{search_option}}/i; + } else { + $filters->{name} = qr/$self->{$options{search_option}}/; + } + } + + return $filters; +} + 1; diff --git a/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm b/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm index b750be4dd..7262f48f7 100644 --- a/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdcountvmhost.pm @@ -74,17 +74,10 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'vm', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm b/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm index 0cf5a084b..01508faec 100644 --- a/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdcpuhost.pm @@ -82,18 +82,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } - + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'runtime.connectionState', 'summary.hardware.numCpuCores', 'summary.hardware.cpuMhz'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm b/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm index f1bdc0abe..7f9161121 100644 --- a/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdcpuvm.pm @@ -86,24 +86,17 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'runtime.connectionState', 'runtime.powerState'); if (defined($self->{display_description})) { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); my @instances = ('*'); diff --git a/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm b/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm index f7ae0476a..2426c793e 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastorecountvm.pm @@ -74,17 +74,10 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - if (defined($self->{datastore_name}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datastore_name}\E$/; - } elsif (!defined($self->{datastore_name})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datastore_name}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'datastore_name', is_regexp => 'filter'); my @properties = ('summary.name', 'vm', 'summary.accessible'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm b/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm index b00344914..567cf9b71 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastorehost.pm @@ -86,17 +86,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'config.fileSystemVolume.mountInfo', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm b/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm index ca9f0f6b3..ee1b66bf8 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoreio.pm @@ -80,17 +80,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{datastore_name}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datastore_name}\E$/; - } elsif (!defined($self->{datastore_name})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datastore_name}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'datastore_name', is_regexp => 'filter'); my @properties = ('summary.name', 'summary.accessible'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => $filters); return if (!defined($result)); my $values = centreon::vmware::common::generic_performance_values_historic($self->{connector}, diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm b/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm index 490cbd5e6..e03cd012c 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoreiops.pm @@ -80,17 +80,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{datastore_name}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datastore_name}\E$/; - } elsif (!defined($self->{datastore_name})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datastore_name}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'datastore_name', is_regexp => 'filter'); my @properties = ('summary.accessible', 'summary.name', 'vm', 'info'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm b/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm index 45bc17133..70d1385b2 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoresnapshot.pm @@ -74,17 +74,10 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - if (defined($self->{datastore_name}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datastore_name}\E$/; - } elsif (!defined($self->{datastore_name})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datastore_name}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'datastore_name', is_regexp => 'filter'); my @properties = ('summary.accessible', 'summary.name', 'browser'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm b/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm index 1b78eb6ef..9c48cd711 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastoreusage.pm @@ -78,18 +78,11 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - if (defined($self->{datastore_name}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datastore_name}\E$/; - } elsif (!defined($self->{datastore_name})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datastore_name}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'datastore_name', is_regexp => 'filter'); my @properties = ('summary'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm b/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm index d8d989565..b323956f0 100644 --- a/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm +++ b/connectors/vmware/src/centreon/vmware/cmddatastorevm.pm @@ -92,24 +92,17 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'datastore', 'runtime.connectionState', 'runtime.powerState'); if (defined($self->{display_description})) { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdgetmap.pm b/connectors/vmware/src/centreon/vmware/cmdgetmap.pm index e6afd9808..f62ac294f 100644 --- a/connectors/vmware/src/centreon/vmware/cmdgetmap.pm +++ b/connectors/vmware/src/centreon/vmware/cmdgetmap.pm @@ -58,17 +58,9 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); - - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'vm', 'config.product.version'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); $self->{manager}->{output}->output_add(severity => 'OK', diff --git a/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm b/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm index 0ba3e5397..f1d860cb0 100644 --- a/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdhealthhost.pm @@ -66,20 +66,11 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } - + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'runtime.healthSystemRuntime.hardwareStatusInfo', 'runtime.healthSystemRuntime.systemHealthInfo.numericSensorInfo', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm b/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm index 6c47929fe..a495034f9 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlimitvm.pm @@ -95,17 +95,10 @@ sub display_verbose { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'runtime.connectionState', 'runtime.powerState', 'config.cpuAllocation.limit', 'config.memoryAllocation.limit'); @@ -116,7 +109,7 @@ sub run { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm b/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm index 79d8407cd..40c0f2ff4 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlistdatacenters.pm @@ -58,19 +58,11 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - - if (defined($self->{datacenter}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datacenter}\E$/; - } elsif (!defined($self->{datacenter})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datacenter}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'datacenter', is_regexp => 'filter'); my @properties = ('name'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datacenter', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datacenter', properties => \@properties, filter => $filters); return if (!defined($result)); if (!defined($self->{disco_show})) { diff --git a/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm b/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm index a221ba219..5a2e00f94 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlistdatastores.pm @@ -58,19 +58,11 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - - if (defined($self->{datastore_name}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{datastore_name}\E$/; - } elsif (!defined($self->{datastore_name})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{datastore_name}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'datastore_name', is_regexp => 'filter'); my @properties = ('summary'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'Datastore', properties => \@properties, filter => $filters); return if (!defined($result)); if (!defined($self->{disco_show})) { diff --git a/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm b/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm index d0f4ef9ce..d95c4d35f 100644 --- a/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdlistnichost.pm @@ -59,9 +59,9 @@ sub run { my $self = shift; my %nic_in_vswitch = (); - my %filters = (name => $self->{esx_hostname}); + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('config.network.pnic', 'config.network.vswitch', 'config.network.proxySwitch'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); # Get Name from vswitch diff --git a/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm b/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm index 2cd2095aa..5f7d7781a 100644 --- a/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdmaintenancehost.pm @@ -70,19 +70,11 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'runtime.inMaintenanceMode', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdmemhost.pm b/connectors/vmware/src/centreon/vmware/cmdmemhost.pm index 42d3f9ca6..9b776eaf4 100644 --- a/connectors/vmware/src/centreon/vmware/cmdmemhost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdmemhost.pm @@ -82,17 +82,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'summary.hardware.memorySize', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdmemvm.pm b/connectors/vmware/src/centreon/vmware/cmdmemvm.pm index 1aa22444a..075a7b08e 100644 --- a/connectors/vmware/src/centreon/vmware/cmdmemvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdmemvm.pm @@ -88,24 +88,17 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'summary.config.memorySizeMB', 'runtime.connectionState', 'runtime.powerState'); if (defined($self->{display_description})) { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); my $values = centreon::vmware::common::generic_performance_values_historic($self->{connector}, diff --git a/connectors/vmware/src/centreon/vmware/cmdnethost.pm b/connectors/vmware/src/centreon/vmware/cmdnethost.pm index 52bc4a25f..5a16e2244 100644 --- a/connectors/vmware/src/centreon/vmware/cmdnethost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdnethost.pm @@ -91,20 +91,13 @@ sub run { return ; } - my %filters = (); my ($multiple, $number_nic) = (0, 0); - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'config.network.pnic', 'runtime.connectionState', 'config.network.vswitch'); if (!defined($self->{no_proxyswitch})) { push @properties, 'config.network.proxySwitch'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdservicehost.pm b/connectors/vmware/src/centreon/vmware/cmdservicehost.pm index c46baf588..24a180931 100644 --- a/connectors/vmware/src/centreon/vmware/cmdservicehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdservicehost.pm @@ -64,18 +64,10 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'runtime.connectionState', 'runtime.inMaintenanceMode', 'configManager.serviceSystem'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); my %host_names = (); diff --git a/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm b/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm index da068ac0b..43add42a1 100644 --- a/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdsnapshotvm.pm @@ -80,17 +80,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('snapshot.rootSnapshotList', 'name', 'runtime.connectionState', 'runtime.powerState'); @@ -101,7 +94,7 @@ sub run { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); my %vm_consolidate = (); diff --git a/connectors/vmware/src/centreon/vmware/cmdstatushost.pm b/connectors/vmware/src/centreon/vmware/cmdstatushost.pm index 1ce5d361c..6031c5f85 100644 --- a/connectors/vmware/src/centreon/vmware/cmdstatushost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdstatushost.pm @@ -64,18 +64,10 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'summary.overallStatus', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm b/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm index eec24446d..ea07c3b45 100644 --- a/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdstatusvm.pm @@ -64,24 +64,16 @@ sub initArgs { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'summary.overallStatus', 'runtime.connectionState'); if (defined($self->{display_description})) { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdswaphost.pm b/connectors/vmware/src/centreon/vmware/cmdswaphost.pm index 58ac8feb8..1956635e1 100644 --- a/connectors/vmware/src/centreon/vmware/cmdswaphost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdswaphost.pm @@ -82,17 +82,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdswapvm.pm b/connectors/vmware/src/centreon/vmware/cmdswapvm.pm index a2c28178e..e20af75f9 100644 --- a/connectors/vmware/src/centreon/vmware/cmdswapvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdswapvm.pm @@ -88,17 +88,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'runtime.connectionState', 'runtime.powerState'); @@ -106,7 +99,7 @@ sub run { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); my $values = centreon::vmware::common::generic_performance_values_historic($self->{connector}, @@ -140,8 +133,8 @@ sub run { my $swap_in = centreon::vmware::common::simplify_number(centreon::vmware::common::convert_number($values->{$entity_value}->{$self->{connector}->{perfcounter_cache}->{'mem.swapinRate.average'}->{'key'} . ":"})) * 1024; my $swap_out = centreon::vmware::common::simplify_number(centreon::vmware::common::convert_number($values->{$entity_value}->{$self->{connector}->{perfcounter_cache}->{'mem.swapoutRate.average'}->{'key'} . ":"})) * 1024; - my $exit1 = $self->{manager}->{perfdata}->threshold_check(value => $swap_in, threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); - my $exit2 = $self->{manager}->{perfdata}->threshold_check(value => $swap_out, threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); + my $exit1 = $self->{manager}->{perfdata}->threshold_check(value => $swap_in, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); + my $exit2 = $self->{manager}->{perfdata}->threshold_check(value => $swap_out, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); my $exit = $self->{manager}->{output}->get_most_critical(status => [ $exit1, $exit2 ]); my ($swap_in_value, $swap_in_unit) = $self->{manager}->{perfdata}->change_bytes(value => $swap_in); my ($swap_out_value, $swap_out_unit) = $self->{manager}->{perfdata}->change_bytes(value => $swap_out); diff --git a/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm b/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm index dc2f08552..17ca1a231 100644 --- a/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdthinprovisioningvm.pm @@ -86,17 +86,10 @@ sub display_verbose { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'config.hardware.device', 'runtime.connectionState', 'runtime.powerState'); @@ -104,7 +97,7 @@ sub run { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdtimehost.pm b/connectors/vmware/src/centreon/vmware/cmdtimehost.pm index ed11260f3..d6f7014a7 100644 --- a/connectors/vmware/src/centreon/vmware/cmdtimehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmdtimehost.pm @@ -80,19 +80,11 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'configManager.dateTimeSystem', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm b/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm index 9ad8aa312..862a13ce2 100644 --- a/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm +++ b/connectors/vmware/src/centreon/vmware/cmdtoolsvm.pm @@ -95,17 +95,10 @@ sub display_verbose { sub run { my $self = shift; - my %filters = (); my $multiple = 0; - if (defined($self->{vm_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{vm_hostname}\E$/; - } elsif (!defined($self->{vm_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{vm_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'vm_hostname', is_regexp => 'filter'); if (defined($self->{filter_description}) && $self->{filter_description} ne '') { - $filters{'config.annotation'} = qr/$self->{filter_description}/; + $filters->{'config.annotation'} = qr/$self->{filter_description}/; } my @properties = ('name', 'summary.guest.toolsStatus', 'runtime.connectionState', 'runtime.powerState'); @@ -113,7 +106,7 @@ sub run { push @properties, 'config.annotation'; } - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'VirtualMachine', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { diff --git a/connectors/vmware/src/centreon/vmware/cmduptimehost.pm b/connectors/vmware/src/centreon/vmware/cmduptimehost.pm index cdd41764f..321795c68 100644 --- a/connectors/vmware/src/centreon/vmware/cmduptimehost.pm +++ b/connectors/vmware/src/centreon/vmware/cmduptimehost.pm @@ -82,17 +82,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{esx_hostname}) && !defined($self->{filter})) { - $filters{name} = qr/^\Q$self->{esx_hostname}\E$/; - } elsif (!defined($self->{esx_hostname})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{esx_hostname}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'esx_hostname', is_regexp => 'filter'); my @properties = ('name', 'runtime.bootTime', 'runtime.connectionState'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'HostSystem', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) { @@ -120,7 +113,7 @@ sub run { my $diff_time = time() - $create_time; my $days = int($diff_time / 60 / 60 / 24); - my $exit = $self->{manager}->{perfdata}->threshold_check(value => $diff_time, threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); + my $exit = $self->{manager}->{perfdata}->threshold_check(value => $diff_time, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); $self->{manager}->{output}->output_add(long_msg => sprintf("'%s' Uptime: %s day(s)", $entity_view->{name}, $days)); diff --git a/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm b/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm index 0548bf0a4..28909261b 100644 --- a/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm +++ b/connectors/vmware/src/centreon/vmware/cmdvmoperationcluster.pm @@ -85,17 +85,10 @@ sub run { return ; } - my %filters = (); my $multiple = 0; - if (defined($self->{cluster}) && !defined($self->{cluster})) { - $filters{name} = qr/^\Q$self->{cluster}\E$/; - } elsif (!defined($self->{cluster})) { - $filters{name} = qr/.*/; - } else { - $filters{name} = qr/$self->{cluster}/; - } + my $filters = $self->build_filter(label => 'name', search_option => 'cluster', is_regexp => 'filter'); my @properties = ('name'); - my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'ClusterComputeResource', properties => \@properties, filter => \%filters); + my $result = centreon::vmware::common::search_entities(command => $self, view_type => 'ClusterComputeResource', properties => \@properties, filter => $filters); return if (!defined($result)); if (scalar(@$result) > 1) {