You are here

function elasticsearch_connector_check_plugin_exists in Elasticsearch Connector 7.5

Same name and namespace in other branches
  1. 8.7 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
  2. 8 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
  3. 8.2 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
  4. 8.5 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
  5. 8.6 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
  6. 7 elasticsearch_connector.module \elasticsearch_connector_check_plugin_exists()
  7. 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.

Read more about plugins system here: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mo...

Parameters

\nodespark\DESConnector\ClientInterface $client:

string $plugin:

Return value

boolean

File

./elasticsearch_connector.module, line 928
This module provide an interface to connecting to the elasticsearch cluster and implementing the official Elasticsearch library.

Code

function elasticsearch_connector_check_plugin_exists(\nodespark\DESConnector\ClientInterface $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;
  }
}