mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +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{}
|
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)
|
rollback, ok := obj.(*apps.DeploymentRollback)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, errors.NewBadRequest(fmt.Sprintf("not a DeploymentRollback: %#v", obj))
|
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 createValidation != nil {
|
||||||
if err := createValidation(obj.DeepCopyObject()); err != nil {
|
if err := createValidation(obj.DeepCopyObject()); err != nil {
|
||||||
return nil, err
|
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
|
// Update the Deployment with information in DeploymentRollback to trigger rollback
|
||||||
err := r.rollbackDeployment(ctx, rollback.Name, &rollback.RollbackTo, rollback.UpdatedAnnotations, dryrun.IsDryRun(options.DryRun))
|
err := r.rollbackDeployment(ctx, rollback.Name, &rollback.RollbackTo, rollback.UpdatedAnnotations, dryrun.IsDryRun(options.DryRun))
|
||||||
if err != nil {
|
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 {
|
if _, err := storage.Deployment.Create(ctx, validNewDeployment(), rest.ValidateAllObjectFunc, &metav1.CreateOptions{}); err != nil {
|
||||||
t.Fatalf("%s: unexpected error: %v", k, err)
|
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) {
|
if !test.errOK(err) {
|
||||||
t.Errorf("%s: unexpected error: %v", k, err)
|
t.Errorf("%s: unexpected error: %v", k, err)
|
||||||
} else if err == nil {
|
} else if err == nil {
|
||||||
@ -392,7 +392,7 @@ func TestCreateDeploymentRollbackValidation(t *testing.T) {
|
|||||||
|
|
||||||
validationError := fmt.Errorf("admission deny")
|
validationError := fmt.Errorf("admission deny")
|
||||||
alwaysDenyValidationFunc := func(obj runtime.Object) error { return validationError }
|
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 {
|
if err == nil || validationError != err {
|
||||||
t.Errorf("expected: %v, got: %v", validationError, err)
|
t.Errorf("expected: %v, got: %v", validationError, err)
|
||||||
@ -411,7 +411,7 @@ func TestEtcdCreateDeploymentRollbackNoDeployment(t *testing.T) {
|
|||||||
rollbackStorage := storage.Rollback
|
rollbackStorage := storage.Rollback
|
||||||
ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace)
|
ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace)
|
||||||
|
|
||||||
_, err := rollbackStorage.Create(ctx, &apps.DeploymentRollback{
|
_, err := rollbackStorage.Create(ctx, name, &apps.DeploymentRollback{
|
||||||
Name: name,
|
Name: name,
|
||||||
UpdatedAnnotations: map[string]string{},
|
UpdatedAnnotations: map[string]string{},
|
||||||
RollbackTo: apps.RollbackConfig{Revision: 1},
|
RollbackTo: apps.RollbackConfig{Revision: 1},
|
||||||
|
Loading…
Reference in New Issue
Block a user