function acquia_spi_get in Acquia Connector 7.2
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.3 acquia_spi/acquia_spi.module \acquia_spi_get()
- 7 acquia_spi/acquia_spi.module \acquia_spi_get()
Gather site profile information about this site.
Return value
An associative array keyed by types of information.
7 calls to acquia_spi_get()
- AcquiaSPITestCase::testAcquiaSPIGet in acquia_spi/
tests/ acquia_spi.test - AcquiaSPITestCase::testAcquiaSPIMessages in acquia_spi/
tests/ acquia_spi.test - AcquiaSPITestCase::testAcquiaSPISend in acquia_spi/
tests/ acquia_spi.test - AcquiaSPITestCase::testAcquiaSPISetVariables in acquia_spi/
tests/ acquia_spi.test - AcquiaSPITestCase::testAcquiaSPIUpdateResponse in acquia_spi/
tests/ acquia_spi.test
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 505 - Send site profile information (NSPI) and system data to Acquia Insight.
Code
function acquia_spi_get() {
// Get file hashes and compute serialized version.
list($hashes, $fileinfo) = acquia_spi_file_hashes();
$hashes_string = serialize($hashes);
// 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();
}
$spi = array(
'spi_data_version' => ACQUIA_SPI_DATA_VERSION,
'site_key' => sha1(drupal_get_private_key()),
'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) ? acquai_spi_get_last_nodes() : array(),
'last_users' => variable_get('acquia_spi_send_node_user', 1) ? acquai_spi_get_last_users() : array(),
'extra_files' => acquia_spi_check_files_present(),
'ssl_login' => acquia_spi_check_login(),
'file_hashes' => $hashes,
'hashes_md5' => md5($hashes_string),
'hashes_sha1' => sha1($hashes_string),
'fileinfo' => $fileinfo,
'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);
}
}