mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Merge pull request #107876 from jlsong01/fix-concurrent-scheme-usage
Fix concurrent usage issue of the same scheme
This commit is contained in:
commit
cf9b5ab95a
@ -2243,7 +2243,7 @@ func TestConflictingData(t *testing.T) {
|
|||||||
eventRecorder := record.NewFakeRecorder(100)
|
eventRecorder := record.NewFakeRecorder(100)
|
||||||
eventRecorder.IncludeObject = true
|
eventRecorder.IncludeObject = true
|
||||||
|
|
||||||
metadataClient := fakemetadata.NewSimpleMetadataClient(legacyscheme.Scheme)
|
metadataClient := fakemetadata.NewSimpleMetadataClient(fakemetadata.NewTestScheme())
|
||||||
|
|
||||||
tweakableRM := meta.NewDefaultRESTMapper(nil)
|
tweakableRM := meta.NewDefaultRESTMapper(nil)
|
||||||
tweakableRM.AddSpecific(
|
tweakableRM.AddSpecific(
|
||||||
|
@ -34,7 +34,6 @@ import (
|
|||||||
"k8s.io/client-go/discovery"
|
"k8s.io/client-go/discovery"
|
||||||
"k8s.io/client-go/dynamic"
|
"k8s.io/client-go/dynamic"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
scheme "k8s.io/client-go/kubernetes/scheme"
|
|
||||||
"k8s.io/client-go/metadata"
|
"k8s.io/client-go/metadata"
|
||||||
metadatafake "k8s.io/client-go/metadata/fake"
|
metadatafake "k8s.io/client-go/metadata/fake"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
@ -420,7 +419,7 @@ func TestDeleteEncounters404(t *testing.T) {
|
|||||||
}
|
}
|
||||||
return false, nil, nil
|
return false, nil, nil
|
||||||
}
|
}
|
||||||
mockMetadataClient := metadatafake.NewSimpleMetadataClient(scheme.Scheme)
|
mockMetadataClient := metadatafake.NewSimpleMetadataClient(metadatafake.NewTestScheme())
|
||||||
mockMetadataClient.PrependReactor("delete-collection", "flakes", ns1FlakesNotFound)
|
mockMetadataClient.PrependReactor("delete-collection", "flakes", ns1FlakesNotFound)
|
||||||
mockMetadataClient.PrependReactor("list", "flakes", ns1FlakesNotFound)
|
mockMetadataClient.PrependReactor("list", "flakes", ns1FlakesNotFound)
|
||||||
|
|
||||||
|
@ -41,6 +41,11 @@ type MetadataClient interface {
|
|||||||
UpdateFake(obj *metav1.PartialObjectMetadata, opts metav1.UpdateOptions, subresources ...string) (*metav1.PartialObjectMetadata, error)
|
UpdateFake(obj *metav1.PartialObjectMetadata, opts metav1.UpdateOptions, subresources ...string) (*metav1.PartialObjectMetadata, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewTestScheme creates a unique Scheme for each test.
|
||||||
|
func NewTestScheme() *runtime.Scheme {
|
||||||
|
return runtime.NewScheme()
|
||||||
|
}
|
||||||
|
|
||||||
// NewSimpleMetadataClient creates a new client that will use the provided scheme and respond with the
|
// NewSimpleMetadataClient creates a new client that will use the provided scheme and respond with the
|
||||||
// provided objects when requests are made. It will track actions made to the client which can be checked
|
// provided objects when requests are made. It will track actions made to the client which can be checked
|
||||||
// with GetActions().
|
// with GetActions().
|
||||||
|
@ -39,13 +39,6 @@ const (
|
|||||||
testAPIVersion = "testgroup/testversion"
|
testAPIVersion = "testgroup/testversion"
|
||||||
)
|
)
|
||||||
|
|
||||||
var scheme *runtime.Scheme
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
scheme = runtime.NewScheme()
|
|
||||||
metav1.AddMetaToScheme(scheme)
|
|
||||||
}
|
|
||||||
|
|
||||||
func newPartialObjectMetadata(apiVersion, kind, namespace, name string) *metav1.PartialObjectMetadata {
|
func newPartialObjectMetadata(apiVersion, kind, namespace, name string) *metav1.PartialObjectMetadata {
|
||||||
return &metav1.PartialObjectMetadata{
|
return &metav1.PartialObjectMetadata{
|
||||||
TypeMeta: metav1.TypeMeta{
|
TypeMeta: metav1.TypeMeta{
|
||||||
@ -66,6 +59,8 @@ func newPartialObjectMetadataWithAnnotations(annotations map[string]string) *met
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestList(t *testing.T) {
|
func TestList(t *testing.T) {
|
||||||
|
scheme := NewTestScheme()
|
||||||
|
metav1.AddMetaToScheme(scheme)
|
||||||
client := NewSimpleMetadataClient(scheme,
|
client := NewSimpleMetadataClient(scheme,
|
||||||
newPartialObjectMetadata("group/version", "TheKind", "ns-foo", "name-foo"),
|
newPartialObjectMetadata("group/version", "TheKind", "ns-foo", "name-foo"),
|
||||||
newPartialObjectMetadata("group2/version", "TheKind", "ns-foo", "name2-foo"),
|
newPartialObjectMetadata("group2/version", "TheKind", "ns-foo", "name2-foo"),
|
||||||
@ -98,6 +93,8 @@ type patchTestCase struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (tc *patchTestCase) runner(t *testing.T) {
|
func (tc *patchTestCase) runner(t *testing.T) {
|
||||||
|
scheme := NewTestScheme()
|
||||||
|
metav1.AddMetaToScheme(scheme)
|
||||||
client := NewSimpleMetadataClient(scheme, tc.object)
|
client := NewSimpleMetadataClient(scheme, tc.object)
|
||||||
resourceInterface := client.Resource(schema.GroupVersionResource{Group: testGroup, Version: testVersion, Resource: testResource}).Namespace(testNamespace)
|
resourceInterface := client.Resource(schema.GroupVersionResource{Group: testGroup, Version: testVersion, Resource: testResource}).Namespace(testNamespace)
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ func TestMetadataSharedInformerFactory(t *testing.T) {
|
|||||||
timeout := time.Duration(3 * time.Second)
|
timeout := time.Duration(3 * time.Second)
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), timeout)
|
ctx, cancel := context.WithTimeout(context.Background(), timeout)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
scheme := runtime.NewScheme()
|
scheme := fake.NewTestScheme()
|
||||||
metav1.AddMetaToScheme(scheme)
|
metav1.AddMetaToScheme(scheme)
|
||||||
informerReciveObjectCh := make(chan *metav1.PartialObjectMetadata, 1)
|
informerReciveObjectCh := make(chan *metav1.PartialObjectMetadata, 1)
|
||||||
objs := []runtime.Object{}
|
objs := []runtime.Object{}
|
||||||
|
Loading…
Reference in New Issue
Block a user