/** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { $values = $form_state->getValues(); // Sanity check. if (empty($values['envs'])) { return; } $migrate_files = isset($values['migrate_files']) ? $values['migrate_files'] : TRUE; $this->config('acquia_connector.settings')->set('migrate.files', $migrate_files)->save(); $reduce_db_size = !empty($values['reduce_db_size']) ? $values['reduce_db_size'] : FALSE; if (count($values['envs']) > 1) { // Use selected environment. $env = $values['envs'][$values['environment']]; $site_name = $values['environment']; } else { $env = array_pop($values['envs']); $site_name = $env; } // Prepare for migration. $migration_class = new Migration(); $migration = $migration_class->prepare($env); $migration['site_name'] = $site_name; if ($reduce_db_size) { $migration['no_data_tables'] = array('cachetags', 'cache_bootstrap', 'cache_config', 'cache_data', 'cache_default', 'cache_discovery', 'cache_entity', 'cache_menu', 'cache_render', 'cache_toolbar', 'sessions', 'watchdog'); } if (isset($migration['error']) && $migration['error'] !== FALSE) { drupal_set_message($this->t('Unable to begin migration. @error', array('@error' => $migration['error'])), 'error'); $form_state->setRedirect('acquia_connector.settings'); } else { $batch = array('title' => $this->t('Acquia Cloud Migrate'), 'operations' => array(array(array($migration_class, 'batchTest'), array($migration)), array(array($migration_class, 'batchDb'), array($migration)), array(array($migration_class, 'batchTar'), array($migration)), array(array($migration_class, 'batchTransmit'), array($migration))), 'init_message' => $this->t('Preparing for migration'), 'progress_message' => $this->t('Completed @current of @total steps.'), 'finished' => array($migration_class, 'batchFinished')); batch_set($batch); } }