mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 21:17:23 +00:00
wait for store update before modify
This commit is contained in:
parent
158dc1a863
commit
98ff390a63
@ -31,6 +31,7 @@ import (
|
|||||||
fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
|
fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
|
||||||
"k8s.io/kubernetes/pkg/client/testing/core"
|
"k8s.io/kubernetes/pkg/client/testing/core"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/util/wait"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -111,6 +112,12 @@ func TestNamespaceController(t *testing.T) {
|
|||||||
assert.NotNil(t, createdNamespace)
|
assert.NotNil(t, createdNamespace)
|
||||||
assert.Equal(t, ns1.Name, createdNamespace.Name)
|
assert.Equal(t, ns1.Name, createdNamespace.Name)
|
||||||
|
|
||||||
|
// Wait for the secret to appear in the informer store
|
||||||
|
err := WaitForStoreUpdate(
|
||||||
|
namespaceController.namespaceFederatedInformer.GetTargetStore(),
|
||||||
|
cluster1.Name, ns1.Name, wait.ForeverTestTimeout)
|
||||||
|
assert.Nil(t, err, "namespace should have appeared in the informer store")
|
||||||
|
|
||||||
// Test update federated namespace.
|
// Test update federated namespace.
|
||||||
ns1.Annotations = map[string]string{
|
ns1.Annotations = map[string]string{
|
||||||
"A": "B",
|
"A": "B",
|
||||||
|
@ -29,6 +29,7 @@ import (
|
|||||||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||||
fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
|
fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/util/wait"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -96,6 +97,12 @@ func TestSecretController(t *testing.T) {
|
|||||||
assert.Equal(t, secret1.Name, createdSecret.Name)
|
assert.Equal(t, secret1.Name, createdSecret.Name)
|
||||||
assert.True(t, secretsEqual(secret1, *createdSecret))
|
assert.True(t, secretsEqual(secret1, *createdSecret))
|
||||||
|
|
||||||
|
// Wait for the secret to appear in the informer store
|
||||||
|
err := WaitForStoreUpdate(
|
||||||
|
secretController.secretFederatedInformer.GetTargetStore(),
|
||||||
|
cluster1.Name, getSecretKey(secret1.Namespace, secret1.Name), wait.ForeverTestTimeout)
|
||||||
|
assert.Nil(t, err, "secret should have appeared in the informer store")
|
||||||
|
|
||||||
// Test update federated secret.
|
// Test update federated secret.
|
||||||
secret1.Annotations = map[string]string{
|
secret1.Annotations = map[string]string{
|
||||||
"A": "B",
|
"A": "B",
|
||||||
|
@ -28,6 +28,7 @@ import (
|
|||||||
api_v1 "k8s.io/kubernetes/pkg/api/v1"
|
api_v1 "k8s.io/kubernetes/pkg/api/v1"
|
||||||
"k8s.io/kubernetes/pkg/client/testing/core"
|
"k8s.io/kubernetes/pkg/client/testing/core"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/util/wait"
|
||||||
"k8s.io/kubernetes/pkg/watch"
|
"k8s.io/kubernetes/pkg/watch"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
@ -211,3 +212,13 @@ func NewCluster(name string, readyStatus api_v1.ConditionStatus) *federation_api
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure a key is in the store before returning (or timeout w/ error)
|
||||||
|
func WaitForStoreUpdate(store util.FederatedReadOnlyStore, clusterName, key string, timeout time.Duration) error {
|
||||||
|
retryInterval := 100 * time.Millisecond
|
||||||
|
err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) {
|
||||||
|
_, found, err := store.GetByKey(clusterName, key)
|
||||||
|
return found, err
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user