2015-07-16 11:32:42 +02:00
|
|
|
<?php
|
2016-06-23 01:37:22 +02:00
|
|
|
|
2016-08-19 00:51:35 +02:00
|
|
|
namespace SilverStripe\Dev\Tasks;
|
|
|
|
|
|
|
|
use SilverStripe\Control\Director;
|
|
|
|
use SilverStripe\Dev\SapphireTest;
|
|
|
|
use SilverStripe\Dev\BuildTask;
|
2016-06-23 01:37:22 +02:00
|
|
|
use SilverStripe\Security\Permission;
|
|
|
|
use SilverStripe\Security\Security;
|
2016-08-19 00:51:35 +02:00
|
|
|
|
2015-07-16 11:32:42 +02:00
|
|
|
/**
|
|
|
|
* Cleans up leftover databases from aborted test executions (starting with ss_tmpdb)
|
|
|
|
* Task is restricted to users with administrator rights or running through CLI.
|
|
|
|
*/
|
2016-11-29 00:31:16 +01:00
|
|
|
class CleanupTestDatabasesTask extends BuildTask
|
|
|
|
{
|
2016-08-19 00:51:35 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
private static $segment = 'CleanupTestDatabasesTask';
|
2016-08-19 00:51:35 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
protected $title = 'Deletes all temporary test databases';
|
2015-07-16 11:32:42 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
protected $description = 'Cleans up leftover databases from aborted test executions (starting with ss_tmpdb)';
|
2015-07-16 11:32:42 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
public function run($request)
|
|
|
|
{
|
|
|
|
if (!Permission::check('ADMIN') && !Director::is_cli()) {
|
|
|
|
$response = Security::permissionFailure();
|
|
|
|
if ($response) {
|
|
|
|
$response->output();
|
|
|
|
}
|
|
|
|
die;
|
|
|
|
}
|
2015-07-16 11:32:42 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
SapphireTest::delete_all_temp_dbs();
|
|
|
|
}
|
2016-03-08 21:50:18 +01:00
|
|
|
}
|