toolchain-utils: Auto abandon old CLs
Abandon CLs without any update that are older than 2 weeks.
Ignoring days to preserve intentionally since sometimes
CLs can be older than several days.
BUG=chromium:1067029
TEST=unit tests
Change-Id: Ie0f377a32ccf40331221c579401b5aaa2e84cf6c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2147820
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Tiancong Wang <tcwang@google.com>
diff --git a/auto_delete_nightly_test_data.py b/auto_delete_nightly_test_data.py
index 429d0b4..8f15654 100755
--- a/auto_delete_nightly_test_data.py
+++ b/auto_delete_nightly_test_data.py
@@ -179,6 +179,29 @@
return rv
+def CleanOldCLs(days_to_preserve='1', dry_run=False):
+ """Abandon old CLs created by automation tooling."""
+ ce = command_executer.GetCommandExecuter()
+ chromeos_root = os.path.join(constants.CROSTC_WORKSPACE, 'chromeos')
+ # Find Old CLs.
+ old_cls_cmd = (
+ 'gerrit --raw search "owner:me status:open age:%sd"' % days_to_preserve)
+ _, cls, _ = ce.ChrootRunCommandWOutput(
+ chromeos_root, old_cls_cmd, print_to_console=False)
+ # Convert any whitespaces to spaces.
+ cls = ' '.join(cls.split())
+ if not cls:
+ return 0
+
+ abandon_cls_cmd = ('gerrit abandon %s' % cls)
+ if dry_run:
+ print('Going to execute: %s' % abandon_cls_cmd)
+ return 0
+
+ return ce.ChrootRunCommand(
+ chromeos_chroot, abandon_cls_cmd, print_to_console=False)
+
+
def Main(argv):
"""Delete nightly test data directories, tmps and test images."""
options = ProcessArguments(argv)
@@ -201,12 +224,15 @@
os.path.join(NIGHTLY_TESTS_WORKSPACE, dated_dir),
options.dry_run) else 1
-
-## Finally clean temporaries, images under crostc/chromeos
+ ## Clean temporaries, images under crostc/chromeos
rv2 = CleanChromeOsTmpAndImages(
int(options.days_to_preserve), options.dry_run)
- return rv + rv2
+ # Clean CLs that are not updated in last 2 weeks.
+ rv3 = CleanOldCLs('14', options.dry_run)
+
+ return rv + rv2 + rv3
+
if __name__ == '__main__':
retval = Main(sys.argv[1:])