You are here

function elasticsearch_connector_check_plugin_exists in Elasticsearch Connector 8.6

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. 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: 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::messenger()
      ->addError($e
      ->getMessage());
    return FALSE;
  }
}