mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 18:31:15 +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.IncludeObject = true
|
||||
|
||||
metadataClient := fakemetadata.NewSimpleMetadataClient(legacyscheme.Scheme)
|
||||
metadataClient := fakemetadata.NewSimpleMetadataClient(fakemetadata.NewTestScheme())
|
||||
|
||||
tweakableRM := meta.NewDefaultRESTMapper(nil)
|
||||
tweakableRM.AddSpecific(
|
||||
|
@ -34,7 +34,6 @@ import (
|
||||
"k8s.io/client-go/discovery"
|
||||
"k8s.io/client-go/dynamic"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
scheme "k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/metadata"
|
||||
metadatafake "k8s.io/client-go/metadata/fake"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
@ -420,7 +419,7 @@ func TestDeleteEncounters404(t *testing.T) {
|
||||
}
|
||||
return false, nil, nil
|
||||
}
|
||||
mockMetadataClient := metadatafake.NewSimpleMetadataClient(scheme.Scheme)
|
||||
mockMetadataClient := metadatafake.NewSimpleMetadataClient(metadatafake.NewTestScheme())
|
||||
mockMetadataClient.PrependReactor("delete-collection", "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)
|
||||
}
|
||||
|
||||
// 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
|
||||
// provided objects when requests are made. It will track actions made to the client which can be checked
|
||||
// with GetActions().
|
||||
|
@ -39,13 +39,6 @@ const (
|
||||
testAPIVersion = "testgroup/testversion"
|
||||
)
|
||||
|
||||
var scheme *runtime.Scheme
|
||||
|
||||
func init() {
|
||||
scheme = runtime.NewScheme()
|
||||
metav1.AddMetaToScheme(scheme)
|
||||
}
|
||||
|
||||
func newPartialObjectMetadata(apiVersion, kind, namespace, name string) *metav1.PartialObjectMetadata {
|
||||
return &metav1.PartialObjectMetadata{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
@ -66,6 +59,8 @@ func newPartialObjectMetadataWithAnnotations(annotations map[string]string) *met
|
||||
}
|
||||
|
||||
func TestList(t *testing.T) {
|
||||
scheme := NewTestScheme()
|
||||
metav1.AddMetaToScheme(scheme)
|
||||
client := NewSimpleMetadataClient(scheme,
|
||||
newPartialObjectMetadata("group/version", "TheKind", "ns-foo", "name-foo"),
|
||||
newPartialObjectMetadata("group2/version", "TheKind", "ns-foo", "name2-foo"),
|
||||
@ -98,6 +93,8 @@ type patchTestCase struct {
|
||||
}
|
||||
|
||||
func (tc *patchTestCase) runner(t *testing.T) {
|
||||
scheme := NewTestScheme()
|
||||
metav1.AddMetaToScheme(scheme)
|
||||
client := NewSimpleMetadataClient(scheme, tc.object)
|
||||
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)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), timeout)
|
||||
defer cancel()
|
||||
scheme := runtime.NewScheme()
|
||||
scheme := fake.NewTestScheme()
|
||||
metav1.AddMetaToScheme(scheme)
|
||||
informerReciveObjectCh := make(chan *metav1.PartialObjectMetadata, 1)
|
||||
objs := []runtime.Object{}
|
||||
|
Loading…
Reference in New Issue
Block a user