Instead of having a static repository checksum, set it dynamically from the metadata that osbuild-composer last saw. This is implemented in dnf-json, which returns the checksums for each repository on every call. This enables the use of repositories that change over time, such as fedora-updates. Note that the osbuild pipeline will break when such a repository changes. This is intentional: pipelines have to be reproducible.
39 lines
966 B
Go
39 lines
966 B
Go
package rpmmd_mock
|
|
|
|
import (
|
|
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
|
"github.com/osbuild/osbuild-composer/internal/store"
|
|
)
|
|
|
|
type fetchPackageList struct {
|
|
ret rpmmd.PackageList
|
|
checksums map[string]string
|
|
err error
|
|
}
|
|
type depsolve struct {
|
|
ret []rpmmd.PackageSpec
|
|
checksums map[string]string
|
|
err error
|
|
}
|
|
|
|
type Fixture struct {
|
|
fetchPackageList
|
|
depsolve
|
|
*store.Store
|
|
}
|
|
|
|
type rpmmdMock struct {
|
|
Fixture Fixture
|
|
}
|
|
|
|
func NewRPMMDMock(fixture Fixture) rpmmd.RPMMD {
|
|
return &rpmmdMock{Fixture: fixture}
|
|
}
|
|
|
|
func (r *rpmmdMock) FetchPackageList(repos []rpmmd.RepoConfig) (rpmmd.PackageList, map[string]string, error) {
|
|
return r.Fixture.fetchPackageList.ret, r.Fixture.fetchPackageList.checksums, r.Fixture.fetchPackageList.err
|
|
}
|
|
|
|
func (r *rpmmdMock) Depsolve(specs []string, repos []rpmmd.RepoConfig) ([]rpmmd.PackageSpec, map[string]string, error) {
|
|
return r.Fixture.depsolve.ret, r.Fixture.fetchPackageList.checksums, r.Fixture.depsolve.err
|
|
}
|