You are here

function acquia_search_multi_subs_apachesolr_set_default_core in Acquia Search Multiple Indexes 7

Sets our default search core for the acquia index.

Parameters

string $env_id: Environment identifier

array $search_core: The search core data array from the connector subscription data

1 call to acquia_search_multi_subs_apachesolr_set_default_core()
acquia_search_multi_subs_apachesolr_init in lib/Drupal/Apachesolr/acquia_search_multi_subs.apachesolr.inc
Initializes this module's Apache Solr Search Integration module support.

File

lib/Drupal/Apachesolr/acquia_search_multi_subs.apachesolr.inc, line 255
Contains code specific to the Apache Solr Search Integration module.

Code

function acquia_search_multi_subs_apachesolr_set_default_core($env_id, array $search_core) {

  // Get the derived key salt from the subscription.
  $key = acquia_agent_settings('acquia_key');
  $subscription = acquia_agent_settings('acquia_subscription_data');
  $derived_key_salt = $subscription['derived_key_salt'];

  // Create our derived key.
  $derived_key = _acquia_search_multi_subs_create_derived_key($derived_key_salt, $search_core['core_id'], $key);

  // Set our variables in the subscription array.
  apachesolr_environment_variable_set($env_id, 'acquia_override_subscription_corename', $search_core['core_id']);
  apachesolr_environment_variable_set($env_id, 'acquia_search_key', $derived_key);
  apachesolr_environment_variable_set($env_id, 'acquia_override_selector', $search_core['core_id']);

  // Generate the url where this core should connect to.
  $url = 'http://' . $search_core['balancer'] . variable_get('acquia_search_path', '/solr/' . $search_core['core_id']);
  $apachesolr_environments = variable_get('apachesolr_environments', array());
  $apachesolr_environments[$env_id]['url'] = $url;
  $apachesolr_environments[$env_id]['conf']['acquia_search_key'] = $derived_key;

  // Set our variable, needs two page loads to make sure it is in the system.
  // Setting the global conf variable is not valid as some calls to
  // apachesolr_load_all_environments happen too early in the process. If we set
  // the variable, we are sure it is there in the next page load. Also, setting
  // this variable only happens when the environment changes and another
  // environment which fits is found.
  variable_set('apachesolr_environments', $apachesolr_environments);
  $GLOBALS['conf']['apachesolr_environments'] = $apachesolr_environments;
  drupal_static_reset('apachesolr_load_all_environments');
}