Rollback.

This commit is contained in:
Andrés Montañez 2013-11-07 19:26:32 -02:00
parent 09ac6a1e19
commit 1e65281ca3

View file

@ -13,7 +13,7 @@ namespace Mage\Task\BuiltIn\Releases;
use Mage\Console; use Mage\Console;
use Mage\Task\Factory; use Mage\Task\Factory;
use Mage\Task\AbstractTask; use Mage\Task\AbstractTask;
use Mage\Task\Releases\BuiltIn as ReleaseTask; use Mage\Task\Releases\IsReleaseAware;
use Mage\Task\Releases\RollbackAware; use Mage\Task\Releases\RollbackAware;
use Exception; use Exception;
@ -23,7 +23,7 @@ use Exception;
* *
* @author Andrés Montañez <andres@andresmontanez.com> * @author Andrés Montañez <andres@andresmontanez.com>
*/ */
class RollbackTask extends AbstractTask implements ReleaseTask class RollbackTask extends AbstractTask implements IsReleaseAware
{ {
/** /**
* The Relase ID to Rollback To * The Relase ID to Rollback To
@ -110,30 +110,24 @@ class RollbackTask extends AbstractTask implements ReleaseTask
$completedTasks = 0; $completedTasks = 0;
$tasksToRun = $this->getConfig()->getTasks(); $tasksToRun = $this->getConfig()->getTasks();
$this->getConfig()->setReleaseId($releaseId); $this->getConfig()->setReleaseId($releaseId);
if (count($tasksToRun) == 0) {
Console::output('<light_purple>Warning!</light_purple> <dark_gray>No </dark_gray><light_cyan>Deployment</light_cyan> <dark_gray>tasks defined.</dark_gray>', 2);
Console::output('Deployment to <dark_gray>' . $this->getConfig()->getHost() . '</dark_gray> skipped!', 1, 3);
} else { foreach ($tasksToRun as $taskData) {
foreach ($tasksToRun as $taskData) { $task = Factory::get($taskData, $this->getConfig(), true, 'deploy');
$task = Factory::get($taskData, $this->getConfig(), true, 'deploy'); $task->init();
$task->init(); Console::output('Running <purple>' . $task->getName() . '</purple> ... ', 2, false);
Console::output('Running <purple>' . $task->getName() . '</purple> ... ', 2, false);
if ($task instanceOf RollbackAware) { if ($task instanceOf RollbackAware) {
$tasks++; $tasks++;
$result = $task->run(); $result = $task->run();
if ($result == true) { if ($result == true) {
Console::output('<green>OK</green>', 0); Console::output('<green>OK</green>', 0);
$completedTasks++; $completedTasks++;
} else { } else {
Console::output('<red>FAIL</red>', 0); Console::output('<red>FAIL</red>', 0);
} }
} else { } else {
Console::output('<yellow>SKIPPED</yellow>', 0); Console::output('<yellow>SKIPPED</yellow>', 0);
}
} }
} }