You are here

function acquia_agent_get_subscription in Acquia Connector 7.2

Same name and namespace in other branches
  1. 6.2 acquia_agent/acquia_agent.module \acquia_agent_get_subscription()
  2. 7.3 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.

Return value

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 Set the derived key for a specific environment, using an id and key. Also set the url to point to the acquia service to make it easier for customers to set any environment as an acquia environment

File

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

Code

function acquia_agent_get_subscription($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;
}