function acquia_spi_handle_server_response in Acquia Connector 7.3
Same name and namespace in other branches
- 6.2 acquia_spi/acquia_spi.module \acquia_spi_handle_server_response()
- 7.2 acquia_spi/acquia_spi.module \acquia_spi_handle_server_response()
Act on specific elements of SPI update server response.
Parameters
mixed $spi_response: Array response from acquia_spi_send_data().
2 calls to acquia_spi_handle_server_response()
- AcquiaSPITestCase::testAcquiaSpiRevokedInstall in acquia_spi/
tests/ acquia_spi.test - Needs comment.
- acquia_spi_send_full_spi in acquia_spi/
acquia_spi.module - Gather full SPI data and send to Acquia Insight.
File
- acquia_spi/
acquia_spi.module, line 450 - Send site profile information (NSPI) and system data to Acquia Insight.
Code
function acquia_spi_handle_server_response($spi_response) {
$changed_action = variable_get('acquia_spi_environment_changed_action');
variable_set('acquia_spi_environment_changed_action', '');
$site_uuid = variable_get('acquia_spi_site_uuid', NULL);
$spi_environment_changes = isset($spi_response['spi_environment_changes']) ? drupal_json_decode($spi_response['spi_environment_changes']) : array();
$site_blocked = array_key_exists('blocked', $spi_environment_changes) || !empty($spi_response['site_revoked']);
// Set site_uuid if it changed or if it hasn't been previously captured.
if (isset($spi_response['site_uuid']) && (is_null($site_uuid) || $spi_response['site_uuid'] != $site_uuid)) {
variable_set('acquia_spi_site_uuid', $spi_response['site_uuid']);
}
// Wipe the site_uuid if it is set locally, but NSPI is trying to create a new
// site.
if (isset($spi_response['site_uuid']) && empty($spi_response['site_uuid']) && !is_null($site_uuid)) {
variable_del('acquia_spi_site_uuid');
}
// Address any actions taken based on a site environment change.
if (!empty($changed_action) || $site_blocked) {
if ($changed_action == 'create' && isset($spi_response['site_uuid'])) {
variable_set('acquia_spi_site_uuid', $spi_response['site_uuid']);
}
elseif ($changed_action == 'block' && isset($spi_response['spi_error']) && empty($spi_response['spi_error']) || $site_blocked) {
variable_set('acquia_spi_blocked', TRUE);
}
elseif ($changed_action == 'unblock' && isset($spi_response['spi_error']) && empty($spi_response['spi_error'])) {
variable_set('acquia_spi_blocked', FALSE);
}
// If there were no errors, clear any pending actions.
if (empty($spi_response['spi_error'])) {
variable_set('acquia_spi_environment_changes', array());
}
}
// Check result for command to update SPI definition.
$update = isset($spi_response['update_spi_definition']) ? $spi_response['update_spi_definition'] : FALSE;
if ($update === TRUE) {
acquia_spi_update_definition();
}
// Check for set_variables command.
$set_variables = isset($spi_response['set_variables']) ? $spi_response['set_variables'] : FALSE;
if ($set_variables !== FALSE) {
acquia_spi_set_variables($set_variables);
}
// Log messages.
$messages = isset($spi_response['nspi_messages']) ? $spi_response['nspi_messages'] : FALSE;
if ($messages !== FALSE) {
watchdog('acquia spi', 'SPI update server response messages: @messages', array(
'@messages' => implode(', ', $messages),
));
}
}