Merge pull request #10416 from tych0/activation-drop-FDNAMES

pkg/systemd: don't require LISTEN_FDNAMES for socket activation
This commit is contained in:
OpenShift Merge Robot
2021-06-25 03:27:44 -04:00
committed by GitHub
2 changed files with 32 additions and 6 deletions

View File

@ -25,11 +25,5 @@ func SocketActivated() bool {
if err != nil || nfds == 0 { if err != nil || nfds == 0 {
return false return false
} }
// "github.com/coreos/go-systemd/v22/activation" will use and validate this variable's
// value. We're just providing a fast fail
if _, found = os.LookupEnv("LISTEN_FDNAMES"); !found {
return false
}
return true return true
} }

View File

@ -0,0 +1,32 @@
package systemd
import (
"fmt"
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestSocketActivated(t *testing.T) {
assert := assert.New(t)
assert.False(SocketActivated())
// different pid
assert.NoError(os.Setenv("LISTEN_PID", "1"))
assert.False(SocketActivated())
// same pid no fds
assert.NoError(os.Setenv("LISTEN_PID", fmt.Sprintf("%d", os.Getpid())))
assert.NoError(os.Setenv("LISTEN_FDS", "0"))
assert.False(SocketActivated())
// same pid some fds
assert.NoError(os.Setenv("LISTEN_FDS", "1"))
assert.True(SocketActivated())
// FDNAME is ok too (but not required)
assert.NoError(os.Setenv("LISTEN_FDNAMES", "/meshuggah/rocks"))
assert.True(SocketActivated())
}