function acquia_spi_get in Acquia Connector 7.3
Same name and namespace in other branches
- 6.2 acquia_spi/acquia_spi.module \acquia_spi_get()
- 6 acquia_spi/acquia_spi.module \acquia_spi_get()
- 7 acquia_spi/acquia_spi.module \acquia_spi_get()
- 7.2 acquia_spi/acquia_spi.module \acquia_spi_get()
Gather site profile information about this site.
Return value
array An associative array keyed by types of information.
8 calls to acquia_spi_get()
- AcquiaSPITestCase::testAcquiaSpiGet in acquia_spi/
tests/ acquia_spi.test - Needs comment.
- AcquiaSPITestCase::testAcquiaSpiMessages in acquia_spi/
tests/ acquia_spi.test - Needs comment.
- AcquiaSPITestCase::testAcquiaSpiRevokedInstall in acquia_spi/
tests/ acquia_spi.test - Needs comment.
- AcquiaSPITestCase::testAcquiaSpiSend in acquia_spi/
tests/ acquia_spi.test - Needs comment.
- AcquiaSPITestCase::testAcquiaSpiSetVariables in acquia_spi/
tests/ acquia_spi.test - Needs comment.
1 string reference to 'acquia_spi_get'
- _acquia_spi_drush_get in acquia_spi/
acquia_spi.drush.inc - If the Acquia SPI module is not enabled, include acquia_spi.module.
File
- acquia_spi/
acquia_spi.module, line 553 - Send site profile information (NSPI) and system data to Acquia Insight.
Code
function acquia_spi_get() {
// Get the Drupal version.
$drupal_version = acquia_spi_get_version_info();
$stored = acquia_spi_data_store_get(array(
'platform',
));
if (!empty($stored['platform'])) {
$platform = $stored['platform'];
}
else {
$platform = acquia_spi_get_platform();
}
$acquia_hosted = acquia_spi_check_acquia_hosted();
$environment = variable_get('acquia_spi_site_environment');
$env_detection_enabled = variable_get('acquia_spi_env_detection_enabled');
$server = acquia_agent_get_server_superglobal();
if ($acquia_hosted) {
if ($environment != $server['AH_SITE_ENVIRONMENT']) {
variable_set('acquia_spi_site_environment', $server['AH_SITE_ENVIRONMENT']);
$environment = $server['AH_SITE_ENVIRONMENT'];
if ($env_detection_enabled) {
variable_set('acquia_spi_site_machine_name', acquia_spi_get_acquia_hosted_machine_name());
}
}
}
else {
if ($environment) {
variable_set('acquia_spi_site_environment', NULL);
}
$environment = NULL;
}
if ($env_detection_enabled === NULL) {
variable_set('acquia_spi_env_detection_enabled', TRUE);
}
$spi = array(
'spi_data_version' => ACQUIA_SPI_DATA_VERSION,
'site_key' => sha1(drupal_get_private_key()),
'site_uuid' => variable_get('acquia_spi_site_uuid'),
'env_changed_action' => variable_get('acquia_spi_environment_changed_action'),
'acquia_hosted' => $acquia_hosted,
'name' => variable_get('acquia_spi_site_name'),
'machine_name' => variable_get('acquia_spi_site_machine_name'),
'environment' => $environment,
'modules' => acquia_spi_get_modules(),
'platform' => $platform,
'quantum' => acquia_spi_get_quantum(),
'system_status' => acquia_spi_get_system_status(),
'failed_logins' => variable_get('acquia_spi_send_watchdog', 1) ? acquia_spi_get_failed_logins() : array(),
'404s' => variable_get('acquia_spi_send_watchdog', 1) ? acquai_spi_get_404s() : array(),
'watchdog_size' => acquai_spi_get_watchdog_size(),
'watchdog_data' => variable_get('acquia_spi_send_watchdog', 1) ? acquia_spi_get_watchdog_data() : array(),
'last_nodes' => variable_get('acquia_spi_send_node_user', 1) ? acquia_spi_get_last_nodes() : array(),
'last_users' => variable_get('acquia_spi_send_node_user', 1) ? acquia_spi_get_last_users() : array(),
'extra_files' => acquia_spi_check_files_present(),
'ssl_login' => acquia_spi_check_login(),
'distribution' => isset($drupal_version['distribution']) ? $drupal_version['distribution'] : '',
'base_version' => $drupal_version['base_version'],
'build_data' => $drupal_version,
'roles' => drupal_json_encode(user_roles()),
'uid_0_present' => acquia_spi_uid_0_present(),
);
$scheme = parse_url(variable_get('acquia_spi_server', 'https://nspi.acquia.com'), PHP_URL_SCHEME);
$via_ssl = in_array('ssl', stream_get_transports(), TRUE) && $scheme == 'https' ? TRUE : FALSE;
if (variable_get('acquia_spi_ssl_override', FALSE)) {
$via_ssl = TRUE;
}
$additional_data = array();
$security_review_results = acquia_spi_run_security_review();
// It's worth sending along node access control information even if there are
// no modules implementing it - some alerts are simpler if we know we don't
// have to worry about node access.
// Check for node grants modules.
$additional_data['node_grants_modules'] = module_implements("node_grants", TRUE);
// Check for node access modules.
$additional_data['node_access_modules'] = module_implements("node_access", TRUE);
// Check for drupal_fast_404 usage.
$additional_data['fast_404'] = acquia_spi_get_fast404();
if (!empty($security_review_results)) {
$additional_data['security_review'] = $security_review_results['security_review'];
}
// Collect all user-contributed custom tests that pass validation.
$custom_tests_results = acquia_spi_test_collect();
if (!empty($custom_tests_results)) {
$additional_data['custom_tests'] = $custom_tests_results;
}
$spi_data = module_invoke_all('acquia_spi_get');
if (!empty($spi_data)) {
foreach ($spi_data as $name => $data) {
if (is_string($name) && is_array($data)) {
$additional_data[$name] = $data;
}
}
}
// Database updates required?
// Based on code from system.install.
include_once DRUPAL_ROOT . '/includes/install.inc';
drupal_load_updates();
$additional_data['pending_updates'] = FALSE;
foreach (module_list() as $module) {
$updates = drupal_get_schema_versions($module);
if ($updates !== FALSE) {
$default = drupal_get_installed_schema_version($module);
if (max($updates) > $default) {
$additional_data['pending_updates'] = TRUE;
break;
}
}
}
if (!empty($additional_data)) {
// JSON encode this additional data.
$spi['additional_data'] = drupal_json_encode($additional_data);
}
if (!$via_ssl) {
return $spi;
}
else {
// Values returned only over SSL.
$spi_ssl = array(
'system_vars' => acquia_spi_get_variables_data(),
'settings_ra' => acquia_spi_get_settings_permissions(),
'admin_count' => variable_get('acquia_spi_admin_priv', 1) ? acquia_spi_get_admin_count() : '',
'admin_name' => variable_get('acquia_spi_admin_priv', 1) ? acquia_spi_get_super_name() : '',
);
return array_merge($spi, $spi_ssl);
}
}