Index: tools/gardening/bin/luci_api.dart |
diff --git a/tools/gardening/bin/luci_api.dart b/tools/gardening/bin/luci_api.dart |
deleted file mode 100644 |
index 484408f53f85b00fa1f60195e310951b99f1dc05..0000000000000000000000000000000000000000 |
--- a/tools/gardening/bin/luci_api.dart |
+++ /dev/null |
@@ -1,173 +0,0 @@ |
-// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-import 'dart:async'; |
- |
-import 'package:gardening/src/luci_api.dart'; |
-import 'package:gardening/src/luci_services.dart'; |
-import 'package:gardening/src/logger.dart'; |
-import 'package:gardening/src/cache_new.dart'; |
-import 'package:args/args.dart'; |
- |
-ArgParser setupArgs() { |
- return new ArgParser() |
- ..addOption("client", |
- abbr: "c", defaultsTo: 'client.dart', help: "Set which client to use.") |
- ..addFlag("verbose", |
- abbr: "v", negatable: false, help: "Print debugging information.") |
- ..addFlag("no-cache", |
- negatable: false, |
- defaultsTo: false, |
- help: "Use this flag to bypass caching. This may be slower.") |
- ..addFlag("help", |
- negatable: false, |
- help: "Shows information on how to use the luci_api tool.") |
- ..addFlag("build-bots", |
- negatable: false, |
- help: "Use this flag to see the primary build bots for --client.") |
- ..addFlag("build-bots-all", |
- negatable: false, |
- help: "Use this flag to see all build bots for --client.") |
- ..addFlag("build-bot-details", |
- negatable: false, |
- help: "Use this flag as `--build-bot-details <name>` where " |
- "<name> is the name of the build bot, to see details of " |
- "a specific build bot.") |
- ..addFlag("build-details", |
- negatable: false, |
- help: "use this option as `--build-details <name> <buildNo>` where " |
- "<name> is the name of the bot and " |
- "<buildNo> is the number of the build.") |
- ..addFlag("commit-builds", |
- negatable: false, |
- help: "Fetches all builds for a specific commit. Use this flag as " |
- "`--commit-builds <commit-hash>` where the <commit-hash> is the " |
- "hash of the commit"); |
-} |
- |
-void printHelp(ArgParser parser) { |
- print("This tool calls different pages on Luci and aggregate the information " |
- "found. Below is stated information about flags and options:"); |
- print(""); |
- print(parser.usage); |
-} |
- |
-main(List<String> args) async { |
- var parser = setupArgs(); |
- var results = parser.parse(args); |
- |
- if (results["help"]) { |
- printHelp(parser); |
- return; |
- } |
- |
- var luciApi = new LuciApi(); |
- Logger logger = |
- new StdOutLogger(results['verbose'] ? Level.debug : Level.info); |
- CreateCacheFunction createCache = results['no-cache'] |
- ? noCache() |
- : initCache(Uri.base.resolve('temp/gardening-cache/'), logger); |
- |
- if (results["build-bots"]) { |
- await performBuildBotsPrimary(luciApi, createCache, results); |
- } else if (results["build-bots-all"]) { |
- await performBuildBotsAll(luciApi, createCache, results); |
- } else if (results["build-bot-details"]) { |
- await performBuildBotDetails(luciApi, createCache, results); |
- } else if (results["build-details"]) { |
- await performBuildDetails(luciApi, createCache, results); |
- } else if (results["commit-builds"]) { |
- await performFindBuildsForCommit(luciApi, createCache, logger, results); |
- } else { |
- printHelp(parser); |
- } |
- |
- luciApi.close(); |
-} |
- |
-Future performBuildBotsPrimary( |
- LuciApi api, CreateCacheFunction createCache, ArgResults results) async { |
- var res = await api.getPrimaryBuilders( |
- results['client'], createCache(duration: new Duration(hours: 1))); |
- res.fold((ex, stackTrace) { |
- print(ex); |
- print(stackTrace); |
- }, (bots) => bots.forEach(print)); |
-} |
- |
-Future performBuildBotsAll( |
- LuciApi api, CreateCacheFunction cache, ArgResults results) async { |
- var res = await api.getAllBuildBots( |
- results['client'], cache(duration: new Duration(hours: 1))); |
- res.fold((ex, stackTrace) { |
- print(ex); |
- print(stackTrace); |
- }, (bots) => bots.forEach(print)); |
-} |
- |
-Future performBuildBotDetails( |
- LuciApi api, CreateCacheFunction cache, ArgResults results) async { |
- if (results.rest.length == 0) { |
- print("No argument given for <name>. To see help, use --help"); |
- return; |
- } |
- var result = await api.getBuildBotDetails(results['client'], results.rest[0], |
- cache(duration: new Duration(minutes: 15))); |
- result.fold((ex, stackTrace) { |
- print(ex); |
- print(stackTrace); |
- }, (detail) => print(detail)); |
-} |
- |
-Future performBuildDetails( |
- LuciApi api, CreateCacheFunction createCache, ArgResults results) async { |
- if (results.rest.length < 2) { |
- print("Missing argument for <name> or <buildNo>. To see help, use --help"); |
- return; |
- } |
- int buildNumber = int.parse(results.rest[1], onError: (source) => 0); |
- if (buildNumber <= 0) { |
- print("The buildnumber ${results['build-details']} must be a integer " |
- "greater than zero"); |
- return; |
- } |
- |
- var result = await api.getBuildBotBuildDetails( |
- results['client'], |
- results.rest[0], |
- buildNumber, |
- createCache(duration: new Duration(minutes: 15))); |
- result.fold((ex, stackTrace) { |
- print(ex); |
- print(stackTrace); |
- }, (detail) => print(detail)); |
-} |
- |
-Future performFindBuildsForCommit(LuciApi api, CreateCacheFunction createCache, |
- Logger logger, ArgResults results) async { |
- if (results.rest.length == 0) { |
- print("Missing argument for <commit>. To see help, use --help"); |
- return; |
- } |
- |
- int amount = 25; |
- logger.info( |
- "Sorry - this is going to take some time, since we have to look into all " |
- "$amount latest builds for all bots for client ${results['client']}.\n" |
- "Subsequent queries run faster if caching is not turned off..."); |
- |
- var result = await fetchBuildsForCommmit( |
- api, logger, results['client'], results.rest[0], createCache, amount); |
- result.fold((ex, st) { |
- print(ex); |
- print(st); |
- }, (List<BuildDetail> details) { |
- print("The commit '${results.rest[0]} is used in the following builds:"); |
- details.forEach((detail) { |
- String url = "https://luci-milo.appspot.com/buildbot/" |
- "${detail.client}/${detail.botName}/${detail.buildNumber}"; |
- print("${detail.botName}: #${detail.buildNumber}\t$url"); |
- }); |
- }); |
-} |