From dc73785c4ffc86bc10348a9aa1644d2d17450e2d Mon Sep 17 00:00:00 2001 From: epriestley Date: Thu, 1 Dec 2016 11:19:36 -0800 Subject: [PATCH] Add a "--force" argument to "bin/config done" Summary: Ref T11922. When we deploy on Saturday I need to rebuild all the cluster indexes, but some instances won't have anything indexed so they won't actually trigger the activity. Add a `--force` flag that just clears an activity even if the activity is not required. Test Plan: Ran `bin/config done reindex --force` several times. Reviewers: chad Reviewed By: chad Maniphest Tasks: T11922 Differential Revision: https://secure.phabricator.com/D16970 --- ...habricatorConfigManagementDoneWorkflow.php | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/applications/config/management/PhabricatorConfigManagementDoneWorkflow.php b/src/applications/config/management/PhabricatorConfigManagementDoneWorkflow.php index 1369e9ebc8..b578aa7952 100644 --- a/src/applications/config/management/PhabricatorConfigManagementDoneWorkflow.php +++ b/src/applications/config/management/PhabricatorConfigManagementDoneWorkflow.php @@ -10,6 +10,13 @@ final class PhabricatorConfigManagementDoneWorkflow ->setSynopsis(pht('Mark a manual upgrade activity as complete.')) ->setArguments( array( + array( + 'name' => 'force', + 'short' => 'f', + 'help' => pht( + 'Mark activities complete even if there is no outstanding '. + 'need to complete them.'), + ), array( 'name' => 'activities', 'wildcard' => true, @@ -18,6 +25,8 @@ final class PhabricatorConfigManagementDoneWorkflow } public function execute(PhutilArgumentParser $args) { + $is_force = $args->getArg('force'); + $activities = $args->getArg('activities'); if (!$activities) { throw new PhutilArgumentUsageException( @@ -29,11 +38,19 @@ final class PhabricatorConfigManagementDoneWorkflow 'activityType = %s', $type); if (!$activity) { - throw new PhutilArgumentUsageException( - pht( - 'Activity "%s" is not currently marked as required, so there '. - 'is no need to complete it.', - $type)); + if ($is_force) { + echo tsprintf( + "%s\n", + pht( + 'Activity "%s" did not need to be marked as complete.', + $type)); + } else { + throw new PhutilArgumentUsageException( + pht( + 'Activity "%s" is not currently marked as required, so there '. + 'is no need to complete it.', + $type)); + } } else { $activity->delete(); echo tsprintf(