You are here

function acquia_agent_migrate_form_submit in Acquia Connector 6.2

Same name and namespace in other branches
  1. 7.2 acquia_agent/acquia_agent.pages.inc \acquia_agent_migrate_form_submit()

Submit handler for Acquia Cloud migrate button.

File

acquia_agent/acquia_agent.pages.inc, line 627
Acquia Agent configuration page.

Code

function acquia_agent_migrate_form_submit($form, &$form_state) {
  module_load_include('inc', 'acquia_agent', 'acquia_agent.migrate');
  if (empty($form_state['values']['envs'])) {

    // Sanity check.
    return;
  }
  $migrate_files = isset($form_state['values']['migrate_files']) ? $form_state['values']['migrate_files'] : 1;
  variable_set('acquia_migrate_files', $migrate_files);
  $reduce_db_size = !empty($form_state['values']['reduce_db_size']) ? $form_state['values']['reduce_db_size'] : 0;
  if (count($form_state['values']['envs']) > 1) {

    // Use selected environment.
    $env = $form_state['values']['envs'][$form_state['values']['environment']];
    $site_name = $form_state['values']['environment'];
  }
  else {
    $env = array_pop($form_state['values']['envs']);
    $site_name = $env;
  }

  // Prepare for migration.
  $migration = acquia_migrate_prepare($env);
  $migration['site_name'] = $site_name;
  if ($reduce_db_size) {
    $migration['no_data_tables'] = array(
      'cache',
      'cache_menu',
      'cache_page',
      'sessions',
      'watchdog',
    );
  }
  if (isset($migration['error']) && $migration['error'] !== FALSE) {
    drupal_set_message(t('Unable to begin migration. @error', array(
      '@error' => $migration['error'],
    )), 'error');
    $form_state['redirect'] = 'admin/settings/acquia-agent';
  }
  else {
    $batch = array(
      'title' => t('Acquia Cloud Migrate'),
      'operations' => array(
        array(
          'acquia_migrate_batch_test',
          array(
            $migration,
          ),
        ),
        array(
          'acquia_migrate_batch_db',
          array(
            $migration,
          ),
        ),
        array(
          'acquia_migrate_batch_tar',
          array(
            $migration,
          ),
        ),
        array(
          'acquia_migrate_batch_transmit',
          array(
            $migration,
          ),
        ),
      ),
      'init_message' => t('Preparing for migration'),
      'progress_message' => t('Completed @current of @total steps.'),
      'finished' => 'acquia_migrate_batch_finished',
      'file' => drupal_get_path('module', 'acquia_agent') . '/acquia_agent.migrate.inc',
    );
    batch_set($batch);
  }
}