Merge pull request #999 from balena-io/reparallel-image-code

Re-parallelise current image retrieval code
This commit is contained in:
CameronDiver 2019-06-11 00:58:25 -07:00 committed by GitHub
commit 118d052022
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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