function hosting_migrate_platform_batch in Hostmaster (Aegir) 6
Batch comparison of site packages between platforms to determine if the site can be migrated to the target platform or not.
1 string reference to 'hosting_migrate_platform_batch'
- hosting_migrate_platform_submit in modules/
hosting/ migrate/ hosting_migrate.batch.inc - Implements hook_submit().
File
- modules/
hosting/ migrate/ hosting_migrate.batch.inc, line 224 - Implemented batch migration of sites.
Code
function hosting_migrate_platform_batch($site_id, $target_platform, $context) {
if (!isset($context['sandbox']['progress'])) {
$context['sandbox']['progress'] = 0;
}
$site = node_load($site_id);
$profile = node_load($site->profile);
$batch =& batch_get();
// Determine whether the install profile is available on the target platform
$profile_instance = hosting_package_instance_load(array(
'i.rid' => $target_platform,
'r.type' => 'platform',
'n.nid' => $site->profile,
));
if (!$profile_instance) {
// Check if there is a possibly renamed profile available
$profile_instance = hosting_package_instance_load(array(
'i.rid' => $target_platform,
'r.type' => 'platform',
'p.old_short_name' => $profile->short_name,
));
}
if ($profile_instance) {
$status = hosting_package_comparison($site->nid, $profile_instance->iid);
$batch['form_state']['storage']['status'][$site->nid] = $status;
$batch['form_state']['storage']['instance'][$site->nid] = $profile_instance->iid;
// If there were no errors, this site passes and can be migrated
if (!$status['error'] && $profile->short_name != 'hostmaster') {
// The hostmaster site can not be upgraded via the interface.
$batch['form_state']['storage']['passed'][$site->nid] = strtolower(trim($site->title));
return TRUE;
}
}
else {
$batch['form_state']['storage']['status'][$site->nid] = array(
'error' => 1,
'missing' => 0,
'upgrade' => 0,
);
}
$batch['form_state']['storage']['failed'][$site->nid] = strtolower(trim($site->title));
}