remove request context.WithUID
This commit is contained in:
		| @@ -20,7 +20,6 @@ import ( | ||||
| 	"context" | ||||
|  | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/types" | ||||
| 	"k8s.io/apiserver/pkg/apis/audit" | ||||
| 	"k8s.io/apiserver/pkg/authentication/user" | ||||
| ) | ||||
| @@ -35,12 +34,6 @@ const ( | ||||
| 	// userKey is the context key for the request user. | ||||
| 	userKey | ||||
|  | ||||
| 	// uidKey is the context key for the uid to assign to an object on create. | ||||
| 	uidKey | ||||
|  | ||||
| 	// userAgentKey is the context key for the request user agent. | ||||
| 	userAgentKey | ||||
|  | ||||
| 	// auditKey is the context key for the audit event. | ||||
| 	auditKey | ||||
| ) | ||||
| @@ -77,15 +70,6 @@ func NamespaceValue(ctx context.Context) string { | ||||
| 	return namespace | ||||
| } | ||||
|  | ||||
| // WithNamespaceDefaultIfNone returns a context whose namespace is the default if and only if the parent context has no namespace value | ||||
| func WithNamespaceDefaultIfNone(parent context.Context) context.Context { | ||||
| 	namespace, ok := NamespaceFrom(parent) | ||||
| 	if !ok || len(namespace) == 0 { | ||||
| 		return WithNamespace(parent, metav1.NamespaceDefault) | ||||
| 	} | ||||
| 	return parent | ||||
| } | ||||
|  | ||||
| // WithUser returns a copy of parent in which the user value is set | ||||
| func WithUser(parent context.Context, user user.Info) context.Context { | ||||
| 	return WithValue(parent, userKey, user) | ||||
| @@ -97,17 +81,6 @@ func UserFrom(ctx context.Context) (user.Info, bool) { | ||||
| 	return user, ok | ||||
| } | ||||
|  | ||||
| // WithUID returns a copy of parent in which the uid value is set | ||||
| func WithUID(parent context.Context, uid types.UID) context.Context { | ||||
| 	return WithValue(parent, uidKey, uid) | ||||
| } | ||||
|  | ||||
| // UIDFrom returns the value of the uid key on the ctx | ||||
| func UIDFrom(ctx context.Context) (types.UID, bool) { | ||||
| 	uid, ok := ctx.Value(uidKey).(types.UID) | ||||
| 	return uid, ok | ||||
| } | ||||
|  | ||||
| // WithAuditEvent returns set audit event struct. | ||||
| func WithAuditEvent(parent context.Context, ev *audit.Event) context.Context { | ||||
| 	return WithValue(parent, auditKey, ev) | ||||
|   | ||||
| @@ -20,7 +20,6 @@ import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/types" | ||||
| 	"k8s.io/apiserver/pkg/authentication/user" | ||||
| ) | ||||
|  | ||||
| @@ -92,20 +91,3 @@ func TestUserContext(t *testing.T) { | ||||
| 	} | ||||
|  | ||||
| } | ||||
|  | ||||
| //TestUIDContext validates that a UID can be get/set on a context object | ||||
| func TestUIDContext(t *testing.T) { | ||||
| 	ctx := NewContext() | ||||
| 	_, ok := UIDFrom(ctx) | ||||
| 	if ok { | ||||
| 		t.Fatalf("Should not be ok because there is no UID on the context") | ||||
| 	} | ||||
| 	ctx = WithUID( | ||||
| 		ctx, | ||||
| 		types.UID("testUID"), | ||||
| 	) | ||||
| 	_, ok = UIDFrom(ctx) | ||||
| 	if !ok { | ||||
| 		t.Fatalf("Error getting UID") | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -87,7 +87,7 @@ func BeforeCreate(strategy RESTCreateStrategy, ctx context.Context, obj runtime. | ||||
| 	objectMeta.SetDeletionTimestamp(nil) | ||||
| 	objectMeta.SetDeletionGracePeriodSeconds(nil) | ||||
| 	strategy.PrepareForCreate(ctx, obj) | ||||
| 	FillObjectMetaSystemFields(ctx, objectMeta) | ||||
| 	FillObjectMetaSystemFields(objectMeta) | ||||
| 	if len(objectMeta.GetGenerateName()) > 0 && len(objectMeta.GetName()) == 0 { | ||||
| 		objectMeta.SetName(strategy.GenerateName(objectMeta.GetGenerateName())) | ||||
| 	} | ||||
|   | ||||
| @@ -25,15 +25,9 @@ import ( | ||||
| ) | ||||
|  | ||||
| // FillObjectMetaSystemFields populates fields that are managed by the system on ObjectMeta. | ||||
| func FillObjectMetaSystemFields(ctx context.Context, meta metav1.Object) { | ||||
| func FillObjectMetaSystemFields(meta metav1.Object) { | ||||
| 	meta.SetCreationTimestamp(metav1.Now()) | ||||
| 	// allows admission controllers to assign a UID earlier in the request processing | ||||
| 	// to support tracking resources pending creation. | ||||
| 	uid, found := genericapirequest.UIDFrom(ctx) | ||||
| 	if !found { | ||||
| 		uid = uuid.NewUUID() | ||||
| 	} | ||||
| 	meta.SetUID(uid) | ||||
| 	meta.SetUID(uuid.NewUUID()) | ||||
| 	meta.SetSelfLink("") | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -21,34 +21,26 @@ import ( | ||||
|  | ||||
| 	"k8s.io/apimachinery/pkg/api/meta" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/util/uuid" | ||||
| 	"k8s.io/apiserver/pkg/apis/example" | ||||
| 	genericapirequest "k8s.io/apiserver/pkg/endpoints/request" | ||||
| ) | ||||
|  | ||||
| // TestFillObjectMetaSystemFields validates that system populated fields are set on an object | ||||
| func TestFillObjectMetaSystemFields(t *testing.T) { | ||||
| 	ctx := genericapirequest.NewDefaultContext() | ||||
| 	resource := metav1.ObjectMeta{} | ||||
| 	FillObjectMetaSystemFields(ctx, &resource) | ||||
| 	FillObjectMetaSystemFields(&resource) | ||||
| 	if resource.CreationTimestamp.Time.IsZero() { | ||||
| 		t.Errorf("resource.CreationTimestamp is zero") | ||||
| 	} else if len(resource.UID) == 0 { | ||||
| 		t.Errorf("resource.UID missing") | ||||
| 	} | ||||
| 	// verify we can inject a UID | ||||
| 	uid := uuid.NewUUID() | ||||
| 	ctx = genericapirequest.WithUID(ctx, uid) | ||||
| 	resource = metav1.ObjectMeta{} | ||||
| 	FillObjectMetaSystemFields(ctx, &resource) | ||||
| 	if resource.UID != uid { | ||||
| 		t.Errorf("resource.UID expected: %v, actual: %v", uid, resource.UID) | ||||
| 	if len(resource.UID) == 0 { | ||||
| 		t.Errorf("resource.UID missing") | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // TestHasObjectMetaSystemFieldValues validates that true is returned if and only if all fields are populated | ||||
| func TestHasObjectMetaSystemFieldValues(t *testing.T) { | ||||
| 	ctx := genericapirequest.NewDefaultContext() | ||||
| 	resource := metav1.ObjectMeta{} | ||||
| 	objMeta, err := meta.Accessor(&resource) | ||||
| 	if err != nil { | ||||
| @@ -57,7 +49,7 @@ func TestHasObjectMetaSystemFieldValues(t *testing.T) { | ||||
| 	if metav1.HasObjectMetaSystemFieldValues(objMeta) { | ||||
| 		t.Errorf("the resource does not have all fields yet populated, but incorrectly reports it does") | ||||
| 	} | ||||
| 	FillObjectMetaSystemFields(ctx, &resource) | ||||
| 	FillObjectMetaSystemFields(&resource) | ||||
| 	if !metav1.HasObjectMetaSystemFieldValues(objMeta) { | ||||
| 		t.Errorf("the resource does have all fields populated, but incorrectly reports it does not") | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 xuzhonghu
					xuzhonghu