function elasticsearch_connector_check_plugin_exists in Elasticsearch Connector 8.5
Same name and namespace in other branches
- 8.7 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
- 8 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
- 8.2 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
- 8.6 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
- 7.5 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
- 7 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
- 7.2 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
Check if a specific plugin exists on all nodes.
TODO: This should be changed to check all data Nodes only but for now lets check all of them.
Parameters
\Elasticsearch\Client $client: Fully loaded Client object.
string $plugin_name: Plugin name.
Return value
bool TRUE or FALSE depending if the plugin exists.
See also
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mo...
File
- ./
elasticsearch_connector.module, line 475 - Provides hook implementations and functions accessible from other modules.
Code
function elasticsearch_connector_check_plugin_exists(Client $client, $plugin_name) {
$nodes_plugins = array();
$result = FALSE;
try {
$plugins = $client
->nodes()
->info(array(
'node_id' => '_all',
));
foreach ($plugins['nodes'] as $elastic_node_id => $elastic_node) {
$nodes_plugins[$elastic_node_id][$plugin_name] = FALSE;
foreach ($elastic_node['plugins'] as $plugin) {
if ($plugin['name'] == $plugin_name) {
$nodes_plugins[$elastic_node_id][$plugin_name] = TRUE;
}
}
if (empty($nodes_plugins[$elastic_node_id][$plugin_name])) {
$result = FALSE;
break;
}
else {
$result = TRUE;
}
}
return $result;
} catch (\Exception $e) {
drupal_set_message($e
->getMessage(), 'error');
return FALSE;
}
}