1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-18 22:05:13 +03:00

Allowed using cached CI info after timeout when GET fails

This commit is contained in:
Andrey Mironov 2018-08-07 11:21:08 +03:00
parent 402863837c
commit b3ca039b9a

View file

@ -26,6 +26,14 @@ JenkinsLoader.prototype.loadJobs = function (viewName, callback) {
var cachedJobsData = result[jobsDataTag]; var cachedJobsData = result[jobsDataTag];
var cachedJobsLastUpdate = result[cacheLastUpdateTag]; var cachedJobsLastUpdate = result[cacheLastUpdateTag];
var cachedCallback = () => {
if (cachedJobsData) {
GUI.log(i18n.getMessage('buildServerUsingCached', ['jobs']));
}
wrappedCallback(cachedJobsData ? cachedJobsData : []);
};
if (!cachedJobsData || !cachedJobsLastUpdate || jobsDataTimestamp - cachedJobsLastUpdate > self._cacheExpirationPeriod) { if (!cachedJobsData || !cachedJobsLastUpdate || jobsDataTimestamp - cachedJobsLastUpdate > self._cacheExpirationPeriod) {
var url = `${viewUrl}${self._jobsRequest}`; var url = `${viewUrl}${self._jobsRequest}`;
@ -46,13 +54,9 @@ JenkinsLoader.prototype.loadJobs = function (viewName, callback) {
wrappedCallback(jobs); wrappedCallback(jobs);
}).error(xhr => { }).error(xhr => {
GUI.log(i18n.getMessage('buildServerLoadFailed', ['jobs', `HTTP ${xhr.status}`])); GUI.log(i18n.getMessage('buildServerLoadFailed', ['jobs', `HTTP ${xhr.status}`]));
}).fail(() => wrappedCallback([])); }).fail(cachedCallback);
} else { } else {
if (cachedJobsData) { cachedCallback();
GUI.log(i18n.getMessage('buildServerUsingCached', ['jobs']));
}
wrappedCallback(cachedJobsData);
} }
}); });
} }
@ -69,6 +73,14 @@ JenkinsLoader.prototype.loadBuilds = function (jobName, callback) {
var cachedBuildsData = result[buildsDataTag]; var cachedBuildsData = result[buildsDataTag];
var cachedBuildsLastUpdate = result[cacheLastUpdateTag]; var cachedBuildsLastUpdate = result[cacheLastUpdateTag];
var cachedCallback = () => {
if (cachedBuildsData) {
GUI.log(i18n.getMessage('buildServerUsingCached', [jobName]));
}
self._parseBuilds(jobUrl, jobName, cachedBuildsData ? cachedBuildsData : [], callback);
};
if (!cachedBuildsData || !cachedBuildsLastUpdate || buildsDataTimestamp - cachedBuildsLastUpdate > self._cacheExpirationPeriod) { if (!cachedBuildsData || !cachedBuildsLastUpdate || buildsDataTimestamp - cachedBuildsLastUpdate > self._cacheExpirationPeriod) {
var url = `${jobUrl}${self._buildsRequest}`; var url = `${jobUrl}${self._buildsRequest}`;
@ -93,15 +105,9 @@ JenkinsLoader.prototype.loadBuilds = function (jobName, callback) {
self._parseBuilds(jobUrl, jobName, builds, callback); self._parseBuilds(jobUrl, jobName, builds, callback);
}).error(xhr => { }).error(xhr => {
GUI.log(i18n.getMessage('buildServerLoadFailed', [jobName, `HTTP ${xhr.status}`])); GUI.log(i18n.getMessage('buildServerLoadFailed', [jobName, `HTTP ${xhr.status}`]));
}).fail(() => { }).fail(cachedCallback);
self._parseBuilds(jobUrl, jobName, [], callback);
});
} else { } else {
if (cachedBuildsData) { cachedCallback();
GUI.log(i18n.getMessage('buildServerUsingCached', [jobName]));
}
self._parseBuilds(jobUrl, jobName, cachedBuildsData, callback);
} }
}); });
} }