Re-parallelise current image retrieval code

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
This commit is contained in:
Cameron Diver 2019-06-10 20:49:05 +01:00
parent 6256572815
commit b1e4e8399b
No known key found for this signature in database
GPG Key ID: 49690ED87032539F

View File

@ -219,15 +219,15 @@ export class Images extends (EventEmitter as new () => ImageEventEmitter) {
private async withImagesFromDockerAndDB<T>(
cb: (dockerImages: NormalisedDockerImage[], composeImages: Image[]) => T,
) {
const images = await this.docker.listImages({ digests: true });
const newImages = await Bluebird.map(images, async image => {
const newImage = _.clone(image) as NormalisedDockerImage;
newImage.NormalisedRepoTags = await this.getNormalisedTags(image);
return newImage;
});
const dbImages = await this.db.models('images').select();
return cb(newImages, dbImages);
const [normalisedImages, dbImages] = await Promise.all([
Bluebird.map(this.docker.listImages({ digests: true }), async image => {
const newImage = _.clone(image) as NormalisedDockerImage;
newImage.NormalisedRepoTags = await this.getNormalisedTags(image);
return newImage;
}),
this.db.models('images').select(),
]);
return cb(normalisedImages, dbImages);
}
private addImageFailure(imageName: string, time = process.hrtime()) {