You are here

function acquia_agent_get_subscription in Acquia Connector 7.3

Same name and namespace in other branches
  1. 6.2 acquia_agent/acquia_agent.module \acquia_agent_get_subscription()
  2. 7.2 acquia_agent/acquia_agent.module \acquia_agent_get_subscription()

Get subscription status from Acquia.

This check also sends a heartbeat to Acquia Insight unless $params['no_heartbeat'] == 1.

Parameters

array $params: Params.

string $identifier: Identifier.

string $key: Key.

string $acquia_network_address: Network address.

Return value

mixed FALSE, integer (xmlrpc error number), or subscription data

4 calls to acquia_agent_get_subscription()
acquia_agent_check_subscription in acquia_agent/acquia_agent.module
Get subscription status from Acquia, and store the result.
acquia_agent_subscription_is_active in acquia_agent/acquia_agent.module
Helper function to check if the site has an active subscription.
acquia_search_get_environment in acquia_search/acquia_search.module
Predefined Acquia Search network environment.
acquia_search_set_derived_key_for_env in acquia_search/drush/acquia_search.drush.inc
Drush callback.

File

acquia_agent/acquia_agent.module, line 300
Acquia Agent securely sends information to Acquia Insight.

Code

function acquia_agent_get_subscription(array $params = array(), $identifier = NULL, $key = NULL, $acquia_network_address = NULL) {

  // There is an identifier and key, so attempt communication.
  $subscription = array();
  $subscription['timestamp'] = time();

  // Include version number information.
  acquia_agent_load_versions();
  if (IS_ACQUIA_DRUPAL) {
    $params['version'] = ACQUIA_DRUPAL_VERSION;
    $params['series'] = ACQUIA_DRUPAL_SERIES;
    $params['branch'] = ACQUIA_DRUPAL_BRANCH;
    $params['revision'] = ACQUIA_DRUPAL_REVISION;
  }

  // Include Acquia Search module version number.
  if (module_exists('acquia_search')) {
    foreach (array(
      'acquia_search',
      'apachesolr',
    ) as $name) {
      $info = system_get_info('module', $name);

      // Send the version, or at least the core compatibility as a fallback.
      $params['search_version'][$name] = isset($info['version']) ? (string) $info['version'] : (string) $info['core'];
    }
  }

  // Include Acquia Search for Search API module version number.
  if (module_exists('search_api_acquia')) {
    foreach (array(
      'search_api_acquia',
      'search_api',
      'search_api_solr',
    ) as $name) {
      $info = system_get_info('module', $name);

      // Send the version, or at least the core compatibility as a fallback.
      $params['search_version'][$name] = isset($info['version']) ? (string) $info['version'] : (string) $info['core'];
    }
  }

  // Retrieve our subscription details.
  $data = acquia_agent_call('acquia.agent.subscription', $params, $identifier, $key, $acquia_network_address);

  // Check for errors.
  if ($errno = xmlrpc_errno()) {
    return $errno;
  }
  elseif (acquia_agent_valid_response($data, $key)) {

    // Add the response to our subscription array.
    $subscription += $data['result']['body'];
  }
  else {
    watchdog('acquia agent', 'HMAC validation error: <pre>@data</pre>', array(
      '@data' => var_export($data, TRUE),
    ), WATCHDOG_ERROR);
    return FALSE;
  }
  return $subscription;
}