You are here

function acquia_agent_get_subscription in Acquia Connector 6.2

Same name and namespace in other branches
  1. 7.3 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 unless $params['no_heartbeat'] == 1.

Return value

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

1 call to acquia_agent_get_subscription()
acquia_agent_check_subscription in acquia_agent/acquia_agent.module
Get subscription status from Acquia, and store the result.

File

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

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')) {
    if (defined('ACQUIA_SEARCH_VERSION')) {
      $params['search_version']['acquia_search'] = ACQUIA_SEARCH_VERSION;
    }
    else {
      $params['search_version']['acquia_search'] = variable_get('acquia_search_version', '6.x-3.x');
    }
    $info = db_result(db_query("SELECT info FROM {system} WHERE name = 'apachesolr'"));
    if ($info = unserialize($info)) {

      // Send the Drupal core version if the module version is blank
      $params['search_version']['apachesolr'] = isset($info['version']) ? (string) $info['version'] : $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' => print_r($data, TRUE),
    ), WATCHDOG_ERROR);
    return FALSE;
  }
  return $subscription;
}