manage case insensitive

This commit is contained in:
garnier-quentin 2021-12-16 09:33:59 +01:00
parent 045042e2c8
commit 48e8de1efc
1 changed files with 44 additions and 27 deletions

View File

@ -162,6 +162,11 @@ sub init {
$self->{centreon_vmware_config} = {%{$self->{centreon_vmware_default_config}}, %centreon_vmware_config}; $self->{centreon_vmware_config} = {%{$self->{centreon_vmware_default_config}}, %centreon_vmware_config};
foreach my $name (keys %{$self->{centreon_vmware_config}->{vsphere_server}}) {
my $iname = lc($name);
$self->{centreon_vmware_config}->{vsphere_server}->{$iname} = delete $self->{centreon_vmware_config}->{vsphere_server}->{$name};
}
##### Load modules ##### Load modules
$self->load_module(@load_modules); $self->load_module(@load_modules);
@ -354,16 +359,23 @@ sub request_dynamic {
my $container = md5_hex($options{result}->{vsphere_address} . $options{result}->{vsphere_username} . $options{result}->{vsphere_password}); my $container = md5_hex($options{result}->{vsphere_address} . $options{result}->{vsphere_username} . $options{result}->{vsphere_password});
# Need to create fork # Need to create fork
if (!defined($self->{centreon_vmware_config}->{vsphere_server}->{$container})) { if (!defined($self->{centreon_vmware_config}->{vsphere_server}->{$container})) {
$self->{centreon_vmware_config}->{vsphere_server}->{$container} = { url => 'https://' . $options{result}->{vsphere_address} . '/sdk', $self->{centreon_vmware_config}->{vsphere_server}->{$container} = {
url => 'https://' . $options{result}->{vsphere_address} . '/sdk',
username => $options{result}->{vsphere_username}, username => $options{result}->{vsphere_username},
password => $options{result}->{vsphere_password}, password => $options{result}->{vsphere_password},
last_request => time() }; last_request => time()
$self->{logger}->writeLogError(sprintf("Dynamic creation: identity = %s [address: %s] [username: %s] [password: %s]", };
$container, $options{result}->{vsphere_address}, $options{result}->{vsphere_username}, $options{result}->{vsphere_password})); $self->{logger}->writeLogError(
sprintf(
"Dynamic creation: identity = %s [address: %s] [username: %s] [password: %s]",
$container, $options{result}->{vsphere_address}, $options{result}->{vsphere_username}, $options{result}->{vsphere_password}
)
);
$centreon_vmware->create_vsphere_child(vsphere_name => $container, dynamic => 1); $centreon_vmware->create_vsphere_child(vsphere_name => $container, dynamic => 1);
} }
return if ($self->waiting_ready(container => $container, manager => $options{manager}, return if ($self->waiting_ready(
container => $container, manager => $options{manager},
identity => $options{identity}) == 0); identity => $options{identity}) == 0);
$self->{centreon_vmware_config}->{vsphere_server}->{$container}->{last_request} = time(); $self->{centreon_vmware_config}->{vsphere_server}->{$container}->{last_request} = time();
@ -400,7 +412,8 @@ sub request {
centreon::vmware::common::response(token => 'RESPSERVER', endpoint => $frontend, identity => $options{identity}); centreon::vmware::common::response(token => 'RESPSERVER', endpoint => $frontend, identity => $options{identity});
return ; return ;
} }
if ($self->{modules_registry}->{$result->{command}}->checkArgs(manager => $options{manager}, if ($self->{modules_registry}->{ $result->{command} }->checkArgs(
manager => $options{manager},
arguments => $result)) { arguments => $result)) {
centreon::vmware::common::response(token => 'RESPSERVER', endpoint => $frontend, identity => $options{identity}); centreon::vmware::common::response(token => 'RESPSERVER', endpoint => $frontend, identity => $options{identity});
return ; return ;
@ -412,19 +425,21 @@ sub request {
return ; return ;
} }
$result->{container} = lc($result->{container});
if (!defined($self->{centreon_vmware_config}->{vsphere_server}->{ $result->{container} })) { if (!defined($self->{centreon_vmware_config}->{vsphere_server}->{ $result->{container} })) {
centreon::vmware::common::set_response(code => 1, short_message => "Unknown container name '$result->{container}'"); centreon::vmware::common::set_response(code => 1, short_message => "Unknown container name '$result->{container}'");
centreon::vmware::common::response(token => 'RESPSERVER', endpoint => $frontend, identity => $options{identity}); centreon::vmware::common::response(token => 'RESPSERVER', endpoint => $frontend, identity => $options{identity});
return ; return ;
} }
return if ($self->waiting_ready(container => $result->{container}, manager => $options{manager}, return if ($self->waiting_ready(
container => $result->{container}, manager => $options{manager},
identity => $options{identity}) == 0); identity => $options{identity}) == 0);
$self->{counter_stats}->{ $result->{container} }++; $self->{counter_stats}->{ $result->{container} }++;
my $flag = ZMQ_NOBLOCK | ZMQ_SNDMORE; my $flag = ZMQ_NOBLOCK | ZMQ_SNDMORE;
my $msg = zmq_msg_init_data("server-" . $result->{container}); my $msg = zmq_msg_init_data('server-' . $result->{container});
zmq_msg_send($msg, $frontend, $flag); zmq_msg_send($msg, $frontend, $flag);
zmq_msg_close($msg); zmq_msg_close($msg);
$msg = zmq_msg_init_data('REQCLIENT ' . $options{data}); $msg = zmq_msg_init_data('REQCLIENT ' . $options{data});
@ -448,8 +463,10 @@ sub repserver {
$result->{identity} =~ /^client-(.*)$/; $result->{identity} =~ /^client-(.*)$/;
my $identity = 'client-' . pack('H*', $1); my $identity = 'client-' . pack('H*', $1);
centreon::vmware::common::response(token => 'RESPSERVER', endpoint => $frontend, centreon::vmware::common::response(
identity => $identity, force_response => $options{data}); token => 'RESPSERVER', endpoint => $frontend,
identity => $identity, force_response => $options{data}
);
} }
sub router_event { sub router_event {
@ -518,7 +535,7 @@ sub create_vsphere_child {
modules_registry => $self->{modules_registry}, modules_registry => $self->{modules_registry},
config => $self->{centreon_vmware_config}, config => $self->{centreon_vmware_config},
logger => $self->{logger}, logger => $self->{logger},
vsan_enabled => $self->{vsan_enabled}, vsan_enabled => $self->{vsan_enabled}
); );
$connector->run(); $connector->run();
exit(0); exit(0);