fix(datastore): gracefully handle empty manifests during metadata import
Context
It's possible for manifest blobs to contain no data, but still be referenced by tag: #333 (closed)
Problem
These are not recoverable, so we should ensure that the importer skips them while successfully importing the valid manifests in the rest of the repository. Rather than failing the import for that repository.
Solution
Calls to manifestService.Get
will return a distribution.ErrManifestEmpty
error when this situation is encountered, so we should check for this error type whenever this method is used. This is also an easy error to simulate in our test fixtures by simply truncating the content of a file with otherwise valid manifest JSON.
Edited by Hayley Swimelar