You are here

function elasticsearch_connector_check_plugin_exists in Elasticsearch Connector 8

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

Parameters

\Elasticsearch\Client $client:

string $plugin_name:

Return value

bool

See also

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mo...

File

./elasticsearch_connector.module, line 472
Provides hook implementations and functions accessible from other modules.

Code

function elasticsearch_connector_check_plugin_exists(\Elasticsearch\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;
  }
}