You are here

function acquia_search_search_api_server_load in Acquia Connector 8

Implements hook_search_api_server_load().

Flag when a certain server should be enforcing read-only mode.

Throws

\Drupal\search_api\SearchApiException

File

acquia_search/acquia_search.module, line 205
Integration between Acquia Drupal and Acquia's hosted solr search service.

Code

function acquia_search_search_api_server_load($entities) {
  $acquia_servers = array_filter($entities, function ($server) {

    /** @var \Drupal\search_api\Entity\Server $server */
    return acquia_search_is_acquia_server($server
      ->getBackendConfig());
  });
  $core_service = acquia_search_get_core_service();

  /** @var \Drupal\search_api\Entity\Server $server */
  foreach ($acquia_servers as $server) {

    /** @var \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend $backend */
    $backend = $server
      ->getBackend();
    $connector_config = $backend
      ->getSolrConnector()
      ->getConfiguration();

    // Set a list of eligible cores.
    $connector_config['acquia_search_possible_cores'] = $core_service
      ->getListOfPossibleCores();
    unset($connector_config['overridden_by_acquia_search']);
    if (acquia_search_should_set_read_only_mode()) {
      $connector_config['overridden_by_acquia_search'] = ACQUIA_SEARCH_AUTO_OVERRIDE_READ_ONLY;
    }
    $backend
      ->getSolrConnector()
      ->setConfiguration($connector_config);
  }
}