mirror of
https://github.com/containers/podman.git
synced 2025-06-19 16:33:24 +08:00
cmd/podman/system: add API server support on FreeBSD
This adds the 'system service' command to the build on FreeBSD and suppresses the call to servicereaper.Start which is only needed to support slirp4netns on Linux. A stub for compat.StatsContainer is also added - stats are still supported via the libpod.StatsContainer API call. [NO NEW TESTS NEEDED] Signed-off-by: Doug Rabson <dfr@rabson.org>
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
//go:build linux && !remote
|
||||
// +build linux,!remote
|
||||
//go:build (linux || freebsd) && !remote
|
||||
// +build linux freebsd
|
||||
// +build !remote
|
||||
|
||||
package system
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
//go:build linux && !remote
|
||||
// +build linux,!remote
|
||||
//go:build (linux || freebsd) && !remote
|
||||
// +build linux freebsd
|
||||
// +build !remote
|
||||
|
||||
package system
|
||||
|
||||
@ -12,7 +13,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"github.com/containers/common/pkg/cgroups"
|
||||
"github.com/containers/common/pkg/servicereaper"
|
||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||
api "github.com/containers/podman/v4/pkg/api/server"
|
||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||
@ -119,7 +119,7 @@ func restService(flags *pflag.FlagSet, cfg *entities.PodmanConfig, opts entities
|
||||
logrus.Debugf("Could not move to subcgroup: %v", err)
|
||||
}
|
||||
|
||||
servicereaper.Start()
|
||||
maybeStartServiceReaper()
|
||||
infra.StartWatcher(libpodRuntime)
|
||||
server, err := api.NewServerWithSettings(libpodRuntime, listener, opts)
|
||||
if err != nil {
|
||||
|
7
cmd/podman/system/service_abi_common.go
Normal file
7
cmd/podman/system/service_abi_common.go
Normal file
@ -0,0 +1,7 @@
|
||||
//go:build !linux && !remote
|
||||
|
||||
package system
|
||||
|
||||
// Currently, we only need servicereaper on Linux to support slirp4netns.
|
||||
func maybeStartServiceReaper() {
|
||||
}
|
12
cmd/podman/system/service_abi_linux.go
Normal file
12
cmd/podman/system/service_abi_linux.go
Normal file
@ -0,0 +1,12 @@
|
||||
//go:build linux && !remote
|
||||
|
||||
package system
|
||||
|
||||
import (
|
||||
"github.com/containers/common/pkg/servicereaper"
|
||||
)
|
||||
|
||||
// Currently, we only need servicereaper on Linux to support slirp4netns.
|
||||
func maybeStartServiceReaper() {
|
||||
servicereaper.Start()
|
||||
}
|
15
pkg/api/handlers/compat/containers_stats_freebsd.go
Normal file
15
pkg/api/handlers/compat/containers_stats_freebsd.go
Normal file
@ -0,0 +1,15 @@
|
||||
package compat
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/containers/podman/v4/pkg/api/handlers/utils"
|
||||
)
|
||||
|
||||
const DefaultStatsPeriod = 5 * time.Second
|
||||
|
||||
func StatsContainer(w http.ResponseWriter, r *http.Request) {
|
||||
utils.Error(w, http.StatusBadRequest, fmt.Errorf("compat.StatsContainer not supported on FreeBSD"))
|
||||
}
|
Reference in New Issue
Block a user