mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 04:33:26 +00:00
Fix deploymentrollback to be named creator, populate object name in admission
This commit is contained in:
parent
dced88e703
commit
cc3252d13d
@ -158,24 +158,27 @@ func (r *RollbackREST) New() runtime.Object {
|
||||
return &apps.DeploymentRollback{}
|
||||
}
|
||||
|
||||
var _ = rest.Creater(&RollbackREST{})
|
||||
var _ = rest.NamedCreater(&RollbackREST{})
|
||||
|
||||
func (r *RollbackREST) Create(ctx context.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, options *metav1.CreateOptions) (runtime.Object, error) {
|
||||
func (r *RollbackREST) Create(ctx context.Context, name string, obj runtime.Object, createValidation rest.ValidateObjectFunc, options *metav1.CreateOptions) (runtime.Object, error) {
|
||||
rollback, ok := obj.(*apps.DeploymentRollback)
|
||||
if !ok {
|
||||
return nil, errors.NewBadRequest(fmt.Sprintf("not a DeploymentRollback: %#v", obj))
|
||||
}
|
||||
|
||||
if errs := appsvalidation.ValidateDeploymentRollback(rollback); len(errs) != 0 {
|
||||
return nil, errors.NewInvalid(apps.Kind("DeploymentRollback"), rollback.Name, errs)
|
||||
}
|
||||
if name != rollback.Name {
|
||||
return nil, errors.NewBadRequest("name in URL does not match name in DeploymentRollback object")
|
||||
}
|
||||
|
||||
if createValidation != nil {
|
||||
if err := createValidation(obj.DeepCopyObject()); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
if errs := appsvalidation.ValidateDeploymentRollback(rollback); len(errs) != 0 {
|
||||
return nil, errors.NewInvalid(apps.Kind("DeploymentRollback"), rollback.Name, errs)
|
||||
}
|
||||
|
||||
// Update the Deployment with information in DeploymentRollback to trigger rollback
|
||||
err := r.rollbackDeployment(ctx, rollback.Name, &rollback.RollbackTo, rollback.UpdatedAnnotations, dryrun.IsDryRun(options.DryRun))
|
||||
if err != nil {
|
||||
|
@ -351,7 +351,7 @@ func TestEtcdCreateDeploymentRollback(t *testing.T) {
|
||||
if _, err := storage.Deployment.Create(ctx, validNewDeployment(), rest.ValidateAllObjectFunc, &metav1.CreateOptions{}); err != nil {
|
||||
t.Fatalf("%s: unexpected error: %v", k, err)
|
||||
}
|
||||
rollbackRespStatus, err := rollbackStorage.Create(ctx, &test.rollback, rest.ValidateAllObjectFunc, &metav1.CreateOptions{})
|
||||
rollbackRespStatus, err := rollbackStorage.Create(ctx, test.rollback.Name, &test.rollback, rest.ValidateAllObjectFunc, &metav1.CreateOptions{})
|
||||
if !test.errOK(err) {
|
||||
t.Errorf("%s: unexpected error: %v", k, err)
|
||||
} else if err == nil {
|
||||
@ -392,7 +392,7 @@ func TestCreateDeploymentRollbackValidation(t *testing.T) {
|
||||
|
||||
validationError := fmt.Errorf("admission deny")
|
||||
alwaysDenyValidationFunc := func(obj runtime.Object) error { return validationError }
|
||||
_, err := rollbackStorage.Create(ctx, &rollback, alwaysDenyValidationFunc, &metav1.CreateOptions{})
|
||||
_, err := rollbackStorage.Create(ctx, rollback.Name, &rollback, alwaysDenyValidationFunc, &metav1.CreateOptions{})
|
||||
|
||||
if err == nil || validationError != err {
|
||||
t.Errorf("expected: %v, got: %v", validationError, err)
|
||||
@ -411,7 +411,7 @@ func TestEtcdCreateDeploymentRollbackNoDeployment(t *testing.T) {
|
||||
rollbackStorage := storage.Rollback
|
||||
ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace)
|
||||
|
||||
_, err := rollbackStorage.Create(ctx, &apps.DeploymentRollback{
|
||||
_, err := rollbackStorage.Create(ctx, name, &apps.DeploymentRollback{
|
||||
Name: name,
|
||||
UpdatedAnnotations: map[string]string{},
|
||||
RollbackTo: apps.RollbackConfig{Revision: 1},
|
||||
|
Loading…
Reference in New Issue
Block a user