private async Task <CodePackage> GetCodePackageAsync(
            CodePackageType codePackageType,
            ServiceManifest serviceManifest,
            StoreLayoutSpecification storeLayoutSpecification,
            TimeSpan timeout)
        {
            var checksumFile = storeLayoutSpecification.GetCodePackageChecksumFile(
                this.ApplicationTypeName,
                serviceManifest.ServiceManifestType.Name,
                codePackageType.Name,
                codePackageType.Version);
            var checksumTask = await this.ImageStoreWrapper.TryGetFromStoreAsync(checksumFile, timeout);

            return(new CodePackage(codePackageType)
            {
                Checksum = checksumTask.Item1                                       /*checksumValue*/
            });
        }