mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-20 20:40:56 +01:00
Don't let autoplans be run manually
Summary: Ref T8096. Like stop/start, autoplans are pushed into the system from outside (normally by `arc`) so it doesn't make any sense to run them manually. Test Plan: - Tried to run an autoplan from web UI, got an error. - Ran a normal plan from web UI. - Tried to run an autoplan from CLI, got an error. - Ran a noraml plan from CLI. Reviewers: chad Reviewed By: chad Maniphest Tasks: T8096 Differential Revision: https://secure.phabricator.com/D13844
This commit is contained in:
parent
2752419160
commit
a1499ceb8f
4 changed files with 26 additions and 2 deletions
|
@ -22,6 +22,15 @@ final class HarbormasterPlanRunController extends HarbormasterController {
|
|||
return new Aphront404Response();
|
||||
}
|
||||
|
||||
$cancel_uri = $this->getApplicationURI("plan/{$plan_id}/");
|
||||
|
||||
if (!$plan->canRunManually()) {
|
||||
return $this->newDialog()
|
||||
->setTitle(pht('Can Not Run Plan'))
|
||||
->appendParagraph(pht('This plan can not be run manually.'))
|
||||
->addCancelButton($cancel_uri);
|
||||
}
|
||||
|
||||
$e_name = true;
|
||||
$v_name = null;
|
||||
|
||||
|
@ -65,7 +74,6 @@ final class HarbormasterPlanRunController extends HarbormasterController {
|
|||
}
|
||||
|
||||
$title = pht('Run Build Plan Manually');
|
||||
$cancel_uri = $this->getApplicationURI("plan/{$plan_id}/");
|
||||
$save_button = pht('Run Plan Manually');
|
||||
|
||||
$form = id(new PHUIFormLayoutView())
|
||||
|
|
|
@ -289,12 +289,14 @@ final class HarbormasterPlanViewController extends HarbormasterPlanController {
|
|||
->setIcon('fa-ban'));
|
||||
}
|
||||
|
||||
$can_run = ($has_manage && $plan->canRunManually());
|
||||
|
||||
$list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setName(pht('Run Plan Manually'))
|
||||
->setHref($this->getApplicationURI("plan/run/{$id}/"))
|
||||
->setWorkflow(true)
|
||||
->setDisabled(!$has_manage)
|
||||
->setDisabled(!$can_run)
|
||||
->setIcon('fa-play-circle'));
|
||||
|
||||
return $list;
|
||||
|
|
|
@ -64,6 +64,11 @@ final class HarbormasterManagementBuildWorkflow
|
|||
pht('Build plan "%s" does not exist.', $plan_id));
|
||||
}
|
||||
|
||||
if (!$plan->canRunManually()) {
|
||||
throw new PhutilArgumentUsageException(
|
||||
pht('This build plan can not be run manually.'));
|
||||
}
|
||||
|
||||
$console = PhutilConsole::getConsole();
|
||||
|
||||
$buildable = HarbormasterBuildable::initializeNewBuildable($viewer)
|
||||
|
|
|
@ -85,6 +85,15 @@ final class HarbormasterBuildPlan extends HarbormasterDAO
|
|||
}
|
||||
|
||||
|
||||
public function canRunManually() {
|
||||
if ($this->isAutoplan()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public function getName() {
|
||||
$autoplan = $this->getAutoplan();
|
||||
if ($autoplan) {
|
||||
|
|
Loading…
Reference in a new issue