dnf-json: Change dnf-json to be a daemon
The service is started via systemd activation sockets. The service serves http POST requests, the same json as before is expected as the body of the request, and the same json as before is sent as the response of the request.
This commit is contained in:
parent
4875998cbe
commit
ca126e9747
14 changed files with 217 additions and 141 deletions
|
|
@ -66,7 +66,7 @@ func NewComposer(config *ComposerConfigFile, stateDir, cacheDir string) (*Compos
|
|||
c.distros = distroregistry.NewDefault()
|
||||
logrus.Infof("Loaded %d distros", len(c.distros.List()))
|
||||
|
||||
c.rpm = rpmmd.NewRPMMD(path.Join(c.cacheDir, "rpmmd"), "/usr/libexec/osbuild-composer/dnf-json")
|
||||
c.rpm = rpmmd.NewRPMMD(path.Join(c.cacheDir, "rpmmd"))
|
||||
|
||||
var jobs jobqueue.JobQueue
|
||||
if config.Worker.PGDatabase != "" {
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
|
|
@ -23,6 +23,11 @@ import (
|
|||
|
||||
func TestFetchChecksum(t *testing.T) {
|
||||
dir, err := test.SetUpTemporaryRepository()
|
||||
fs := http.FileServer(http.Dir(dir))
|
||||
go func() {
|
||||
err := http.ListenAndServe(":9000", fs)
|
||||
assert.Nilf(t, err, "Could not start the http server: %v", err)
|
||||
}()
|
||||
defer func(dir string) {
|
||||
err := test.TearDownTemporaryRepository(dir)
|
||||
assert.Nil(t, err, "Failed to clean up temporary repository.")
|
||||
|
|
@ -31,13 +36,13 @@ func TestFetchChecksum(t *testing.T) {
|
|||
|
||||
repoCfg := rpmmd.RepoConfig{
|
||||
Name: "repo",
|
||||
BaseURL: fmt.Sprintf("file://%s", dir),
|
||||
BaseURL: "http://localhost:9000",
|
||||
IgnoreSSL: true,
|
||||
}
|
||||
|
||||
// use a fullpath to dnf-json, this allows this test to have an arbitrary
|
||||
// working directory
|
||||
rpmMetadata := rpmmd.NewRPMMD(path.Join(dir, "rpmmd"), "/usr/libexec/osbuild-composer/dnf-json")
|
||||
rpmMetadata := rpmmd.NewRPMMD(path.Join(dir, "rpmmd"))
|
||||
_, c, err := rpmMetadata.FetchMetadata([]rpmmd.RepoConfig{repoCfg}, "platform:f31", "x86_64", "31")
|
||||
assert.Nilf(t, err, "Failed to fetch checksum: %v", err)
|
||||
assert.NotEqual(t, "", c["repo"], "The checksum is empty")
|
||||
|
|
@ -64,7 +69,7 @@ func TestCrossArchDepsolve(t *testing.T) {
|
|||
|
||||
// use a fullpath to dnf-json, this allows this test to have an arbitrary
|
||||
// working directory
|
||||
rpm := rpmmd.NewRPMMD(dir, "/usr/libexec/osbuild-composer/dnf-json")
|
||||
rpm := rpmmd.NewRPMMD(dir)
|
||||
|
||||
repos, err := rpmmd.LoadRepositories([]string{repoDir}, distroStruct.Name())
|
||||
require.NoErrorf(t, err, "Failed to LoadRepositories %v", distroStruct.Name())
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ func main() {
|
|||
panic("os.UserHomeDir(): " + err.Error())
|
||||
}
|
||||
|
||||
rpm_md := rpmmd.NewRPMMD(path.Join(home, ".cache/osbuild-composer/rpmmd"), "/usr/libexec/osbuild-composer/dnf-json")
|
||||
rpm_md := rpmmd.NewRPMMD(path.Join(home, ".cache/osbuild-composer/rpmmd"))
|
||||
|
||||
packageSpecSets := make(map[string][]rpmmd.PackageSpec)
|
||||
for name, packages := range packageSets {
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ func main() {
|
|||
if err != nil {
|
||||
panic("os.UserHomeDir(): " + err.Error())
|
||||
}
|
||||
rpmmd := rpmmd.NewRPMMD(path.Join(homeDir, ".cache/osbuild-composer/rpmmd"), "/usr/libexec/osbuild-composer/dnf-json")
|
||||
rpmmd := rpmmd.NewRPMMD(path.Join(homeDir, ".cache/osbuild-composer/rpmmd"))
|
||||
|
||||
s := store.New(&cwd, a, nil)
|
||||
if s == nil {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ type DepsolveJobImpl struct {
|
|||
}
|
||||
|
||||
func (impl *DepsolveJobImpl) depsolve(packageSets map[string]rpmmd.PackageSet, repos []rpmmd.RepoConfig, modulePlatformID, arch, releasever string) (map[string][]rpmmd.PackageSpec, error) {
|
||||
rpmMD := rpmmd.NewRPMMD(impl.RPMMDCache, "/usr/libexec/osbuild-composer/dnf-json")
|
||||
rpmMD := rpmmd.NewRPMMD(impl.RPMMDCache)
|
||||
|
||||
packageSpecs := make(map[string][]rpmmd.PackageSpec)
|
||||
for name, packageSet := range packageSets {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue