lifecycle icon indicating copy to clipboard operation
lifecycle copied to clipboard

Move logic out of cmd/restorer

Open jabrown85 opened this issue 4 years ago • 2 comments

Description

We would like to push as much validation and processing out of the cmd/restorer.go as possible. The cmds are hard to test and keep growing because there is already validation logic present.

Proposed solution

Instead of validating inside of cmd/restorer.go, we should put as much validation as possible into restorer.go. This probably means introducing and using interfaces that wrap file, registry/docker, cache stores, and env access. We should write unit tests to cover and possibly remove validation specific acceptance tests.

Additional context

  • We need to keep creator as well as library authors in mind here a bit. Having group, plan, err := restorer.Restore(cacheStore) makes sense for platforms building on top of lifecycle, like buildkit. So we may wish to introduce new methods that write the files that can optionally be executed by those platforms and always executed by cmd/restorer.go.

jabrown85 avatar Jun 14 '21 19:06 jabrown85

TODO: eventually layer.NewSBOMRestorer should become layer.NewDefaultSBOMRestorer, and then we can use the constructor in cmd/analyzer.go

natalieparellano avatar May 02 '22 16:05 natalieparellano

See #805 (analyzer) and #860 (detector) for how this is done for other phases.

natalieparellano avatar May 25 '22 15:05 natalieparellano