View source
<?php
function drush_hosting_site_pre_hosting_task($task) {
$task =& drush_get_context('HOSTING_TASK');
if ($task->ref->type == 'site') {
$task->args[0] = $task->ref->title;
$task->options['site_id'] = $task->ref->nid;
if ($task->task_type != 'import') {
$task->options['language'] = $task->ref->language;
}
}
if ($task->task_type == 'restore') {
$backup = hosting_site_get_backup($task->task_args['bid']);
$task->args[1] = $backup['filename'];
}
}
function hosting_site_post_hosting_install_task($task, $data) {
if ($task->ref->type == 'site') {
$context = $data['context'];
$packages = $context['packages'];
hosting_package_sync($packages);
hosting_package_instance_sync($task->ref->nid, $packages);
$task->ref->site_status = HOSTING_SITE_ENABLED;
$task->ref->no_verify = TRUE;
$task->ref->verified = mktime();
node_save($task->ref);
}
}
function hosting_site_hosting_install_task_rollback($task, $data) {
if (drush_cmp_error('PROVISION_DRUPAL_SITE_INSTALLED')) {
drush_log(dt("This site appears to be installed already. Generating an import task."));
hosting_add_task($task->rid, 'import');
}
else {
$task->ref->no_verify = TRUE;
$task->ref->site_status = HOSTING_SITE_DISABLED;
node_save($task->ref);
}
}
function hosting_site_post_hosting_disable_task($task, $data) {
if ($data['context']['backup_file'] && $data->ref->type == 'site') {
$platform = node_load($task->ref->platform);
hosting_site_add_backup($task->ref->nid, $platform->web_server, $data['context']['backup_file'], t('Generated before being disabled'));
}
$task->ref->site_status = HOSTING_SITE_DISABLED;
$task->ref->no_verify = TRUE;
node_save($task->ref);
}
function hosting_site_post_hosting_restore_task($task, $data) {
if ($data['context']['backup_file'] && $task->ref->type == 'site') {
$platform = node_load($task->ref->platform);
hosting_site_add_backup($task->ref->nid, $platform->web_server, $data['context']['backup_file'], t('Generated before being restored to a previous version'));
}
}
function hosting_site_post_hosting_enable_task($task, $data) {
$task->ref->site_status = HOSTING_SITE_ENABLED;
$task->ref->no_verify = TRUE;
node_save($task->ref);
}
function hosting_site_post_hosting_delete_task($task, $data) {
$task->ref->site_status = HOSTING_SITE_DELETED;
$task->ref->no_verify = TRUE;
node_save($task->ref);
}
function hosting_site_post_hosting_backup_task($task, $data) {
if ($data['context']['backup_file'] && $task->ref->type == 'site') {
$platform = node_load($task->ref->platform);
hosting_site_add_backup($task->ref->nid, $platform->web_server, $data['context']['backup_file'], t('Generated on request'));
}
}
function hosting_site_post_hosting_import_task($task, $data) {
hosting_import_site($task->ref->nid, $data['context'], $task->ref->platform);
}
function hosting_site_post_hosting_verify_task($task, $data) {
if ($task->ref->type == 'site') {
$task->ref->verified = mktime();
$task->ref->no_verify = TRUE;
node_save($task->ref);
$context = $data['context'];
$packages = $context['packages'];
hosting_package_sync($packages);
hosting_package_instance_sync($task->ref->nid, $packages);
}
}
function hosting_site_hosting_verify_task_rollback($task, $data) {
if ($task->ref->type == 'site') {
$task->ref->no_verify = TRUE;
$task->ref->verified = 0;
node_save($task->ref);
}
}
function hosting_site_hosting_import_task_rollback($task, $data) {
if ($task->ref->type == 'site') {
$task->ref->no_verify = TRUE;
$task->ref->verified = 0;
$task->ref->site_status = HOSTING_SITE_DISABLED;
node_save($task->ref);
}
}