weldr: Add distribution selection allRepositories and its callers
And use it for blueprints/depsolve results.
This commit is contained in:
parent
d63dd09686
commit
dd6a7550f1
1 changed files with 18 additions and 13 deletions
|
|
@ -871,7 +871,7 @@ func (api *API) modulesListHandler(writer http.ResponseWriter, request *http.Req
|
|||
|
||||
modulesParam := params.ByName("modules")
|
||||
|
||||
availablePackages, err := api.fetchPackageList()
|
||||
availablePackages, err := api.fetchPackageList(api.hostDistroName)
|
||||
|
||||
if err != nil {
|
||||
errors := responseError{
|
||||
|
|
@ -957,7 +957,7 @@ func (api *API) projectsListHandler(writer http.ResponseWriter, request *http.Re
|
|||
return
|
||||
}
|
||||
|
||||
availablePackages, err := api.fetchPackageList()
|
||||
availablePackages, err := api.fetchPackageList(api.hostDistroName)
|
||||
|
||||
if err != nil {
|
||||
errors := responseError{
|
||||
|
|
@ -1029,7 +1029,7 @@ func (api *API) modulesInfoHandler(writer http.ResponseWriter, request *http.Req
|
|||
|
||||
names := strings.Split(modules, ",")
|
||||
|
||||
availablePackages, err := api.fetchPackageList()
|
||||
availablePackages, err := api.fetchPackageList(api.hostDistroName)
|
||||
|
||||
if err != nil {
|
||||
errors := responseError{
|
||||
|
|
@ -2836,13 +2836,18 @@ func (api *API) composeFailedHandler(writer http.ResponseWriter, request *http.R
|
|||
common.PanicOnError(err)
|
||||
}
|
||||
|
||||
func (api *API) fetchPackageList() (rpmmd.PackageList, error) {
|
||||
repos, err := api.allRepositories()
|
||||
// fetchPackageList returns the package list or the selected distribution
|
||||
func (api *API) fetchPackageList(distroName string) (rpmmd.PackageList, error) {
|
||||
d := api.distros.GetDistro(distroName)
|
||||
if d == nil {
|
||||
return nil, fmt.Errorf("GetDistro - unknown distribution: %s", distroName)
|
||||
}
|
||||
repos, err := api.allRepositories(distroName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
packages, _, err := api.rpmmd.FetchMetadata(repos, api.distro.ModulePlatformID(), api.arch.Name())
|
||||
packages, _, err := api.rpmmd.FetchMetadata(repos, d.ModulePlatformID(), api.arch.Name())
|
||||
return packages, err
|
||||
}
|
||||
|
||||
|
|
@ -2865,8 +2870,8 @@ func (api *API) allRepositoriesByImageType(imageType distro.ImageType) ([]rpmmd.
|
|||
}
|
||||
|
||||
// Returns all configured repositories (base + sources) as rpmmd.RepoConfig
|
||||
func (api *API) allRepositories() ([]rpmmd.RepoConfig, error) {
|
||||
archRepos, err := api.repoRegistry.ReposByArch(api.arch, false)
|
||||
func (api *API) allRepositories(distroName string) ([]rpmmd.RepoConfig, error) {
|
||||
archRepos, err := api.repoRegistry.ReposByArchName(distroName, api.arch.Name(), false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -2880,16 +2885,16 @@ func (api *API) allRepositories() ([]rpmmd.RepoConfig, error) {
|
|||
}
|
||||
|
||||
func (api *API) depsolveBlueprint(bp blueprint.Blueprint) ([]rpmmd.PackageSpec, error) {
|
||||
repos, err := api.allRepositories()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Depsolve using the host distro if none has been specified
|
||||
if bp.Distro == "" {
|
||||
bp.Distro = api.hostDistroName
|
||||
}
|
||||
|
||||
repos, err := api.allRepositories(bp.Distro)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
packages, _, err := api.rpmmd.Depsolve(rpmmd.PackageSet{Include: bp.GetPackages()}, repos, api.distro.ModulePlatformID(), api.arch.Name())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue