mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 08:17:26 +00:00
Merge pull request #107819 from matthyx/107505
Replace dbus-send for fake PrepareForShutdown message
This commit is contained in:
commit
6ffd13f460
@ -23,9 +23,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
@ -38,13 +36,13 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/apis/scheduling"
|
"k8s.io/kubernetes/pkg/apis/scheduling"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
|
||||||
|
"github.com/godbus/dbus/v5"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
schedulingv1 "k8s.io/api/scheduling/v1"
|
schedulingv1 "k8s.io/api/scheduling/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
|
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
|
||||||
kubelettypes "k8s.io/kubernetes/pkg/kubelet/types"
|
kubelettypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||||
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
|
||||||
testutils "k8s.io/kubernetes/test/utils"
|
testutils "k8s.io/kubernetes/test/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -71,10 +69,6 @@ var _ = SIGDescribe("GracefulNodeShutdown [Serial] [NodeFeature:GracefulNodeShut
|
|||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.BeforeEach(func() {
|
ginkgo.BeforeEach(func() {
|
||||||
if err := lookEmitSignalCommand(); err != nil {
|
|
||||||
e2eskipper.Skipf("skipping test because: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ginkgo.By("Wait for the node to be ready")
|
ginkgo.By("Wait for the node to be ready")
|
||||||
waitForNodeReady()
|
waitForNodeReady()
|
||||||
})
|
})
|
||||||
@ -278,11 +272,6 @@ var _ = SIGDescribe("GracefulNodeShutdown [Serial] [NodeFeature:GracefulNodeShut
|
|||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.BeforeEach(func() {
|
ginkgo.BeforeEach(func() {
|
||||||
if err := lookEmitSignalCommand(); err != nil {
|
|
||||||
e2eskipper.Skipf("skipping test because: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
ginkgo.By("Wait for the node to be ready")
|
ginkgo.By("Wait for the node to be ready")
|
||||||
waitForNodeReady()
|
waitForNodeReady()
|
||||||
customClasses := []*schedulingv1.PriorityClass{customClassA, customClassB, customClassC}
|
customClasses := []*schedulingv1.PriorityClass{customClassA, customClassB, customClassC}
|
||||||
@ -476,14 +465,12 @@ while true; do sleep 5; done
|
|||||||
|
|
||||||
// Emits a fake PrepareForShutdown dbus message on system dbus. Will cause kubelet to react to an active shutdown event.
|
// Emits a fake PrepareForShutdown dbus message on system dbus. Will cause kubelet to react to an active shutdown event.
|
||||||
func emitSignalPrepareForShutdown(b bool) error {
|
func emitSignalPrepareForShutdown(b bool) error {
|
||||||
cmd := "dbus-send --system /org/freedesktop/login1 org.freedesktop.login1.Manager.PrepareForShutdown boolean:" + strconv.FormatBool(b)
|
conn, err := dbus.ConnectSystemBus()
|
||||||
_, err := runCommand("sh", "-c", cmd)
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer conn.Close()
|
||||||
func lookEmitSignalCommand() error {
|
return conn.Emit("/org/freedesktop/login1", "org.freedesktop.login1.Manager.PrepareForShutdown", b)
|
||||||
_, err := exec.LookPath("dbus-send")
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getNodeReadyStatus(f *framework.Framework) bool {
|
func getNodeReadyStatus(f *framework.Framework) bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user