Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1792)

Unified Diff: Tools/GardeningServer/scripts/builders.js

Issue 173133003: Convert garden-o-matic guts over to promises where appropriate (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: update to ToT Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Tools/GardeningServer/scripts/builders.js
diff --git a/Tools/GardeningServer/scripts/builders.js b/Tools/GardeningServer/scripts/builders.js
index 9d2aafb1d0e21434cf7d61ba62d9aa6aadf08293..29be9f5164c8f484c6b7ffc765d83043938d1105 100644
--- a/Tools/GardeningServer/scripts/builders.js
+++ b/Tools/GardeningServer/scripts/builders.js
@@ -70,9 +70,9 @@ function mostRecentCompletedBuildNumber(individualBuilderStatus)
return null;
}
-var g_buildInfoCache = new base.AsynchronousCache(function(key, callback) {
+var g_buildInfoCache = new base.AsynchronousCache(function(key) {
var explodedKey = key.split('\n');
- net.json(urlForBuildInfo(explodedKey[0], explodedKey[1])).then(callback);
+ return net.json(urlForBuildInfo(explodedKey[0], explodedKey[1]));
});
builders.clearBuildInfoCache = function()
@@ -80,36 +80,35 @@ builders.clearBuildInfoCache = function()
g_buildInfoCache.clear();
};
-function fetchMostRecentBuildInfoByBuilder(callback)
+function fetchMostRecentBuildInfoByBuilder()
{
- net.json(config.buildConsoleURL + '/json/builders').then(function(builderStatus) {
- var buildInfoByBuilder = {};
+ var buildInfoByBuilder = {};
+ var requestPromises = [];
+ return net.json(config.buildConsoleURL + '/json/builders').then(function(builderStatus) {
var builderNames = Object.keys(builderStatus);
- var requestTracker = new base.RequestTracker(builderNames.length, callback, [buildInfoByBuilder]);
builderNames.forEach(function(builderName) {
- if (!config.builderApplies(builderName)) {
- requestTracker.requestComplete();
+ if (!config.builderApplies(builderName))
return;
- }
var buildNumber = mostRecentCompletedBuildNumber(builderStatus[builderName]);
- if (!buildNumber) {
- buildInfoByBuilder[builderName] = null;
- requestTracker.requestComplete();
+ if (!buildNumber)
return;
- }
- g_buildInfoCache.get(builderName + '\n' + buildNumber, function(buildInfo) {
- buildInfoByBuilder[builderName] = buildInfo;
- requestTracker.requestComplete();
- });
+ requestPromises.push(g_buildInfoCache.get(builderName + '\n' + buildNumber)
+ .then(function(buildInfo) {
+ buildInfoByBuilder[builderName] = buildInfo;
+ }));
+ });
+
+ return Promise.all(requestPromises).then(function() {
+ return buildInfoByBuilder;
});
});
}
-builders.buildersFailingNonLayoutTests = function(callback)
+builders.buildersFailingNonLayoutTests = function()
{
- fetchMostRecentBuildInfoByBuilder(function(buildInfoByBuilder) {
+ return fetchMostRecentBuildInfoByBuilder().then(function(buildInfoByBuilder) {
var failureList = {};
$.each(buildInfoByBuilder, function(builderName, buildInfo) {
if (!buildInfo)
@@ -118,15 +117,15 @@ builders.buildersFailingNonLayoutTests = function(callback)
if (failures.length)
failureList[builderName] = failures.map(function(failure) { return failure.name; });
});
- callback(failureList);
+ return failureList;
});
};
-builders.mostRecentBuildForBuilder = function(builderName, callback) {
- net.json(config.buildConsoleURL + '/json/builders/' + builderName).then(function(builderStatus) {
+builders.mostRecentBuildForBuilder = function(builderName) {
+ return net.json(config.buildConsoleURL + '/json/builders/' + builderName).then(function(builderStatus) {
var cachedBuilds = builderStatus.cachedBuilds;
var mostRecentBuild = Math.max.apply(Math, cachedBuilds);
- callback(mostRecentBuild);
+ return mostRecentBuild;
});
};
« no previous file with comments | « Tools/GardeningServer/scripts/base_unittests.js ('k') | Tools/GardeningServer/scripts/builders_unittests.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698