POSTing rollback returns deploymentstatus

This commit is contained in:
Haowei Cai 2018-05-14 17:02:48 -07:00
parent 5782d476c5
commit 98496fa511
2 changed files with 27 additions and 1 deletions

View File

@ -21,6 +21,7 @@ import (
"fmt"
"net/http"
externalappsv1beta1 "k8s.io/api/apps/v1beta1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@ -137,6 +138,20 @@ type RollbackREST struct {
store *genericregistry.Store
}
// ProducesMIMETypes returns a list of the MIME types the specified HTTP verb (GET, POST, DELETE,
// PATCH) can respond with.
func (r *RollbackREST) ProducesMIMETypes(verb string) []string {
return nil
}
// ProducesObject returns an object the specified HTTP verb respond with. It will overwrite storage object if
// it is not nil. Only the type of the return object matters, the value will be ignored.
func (r *RollbackREST) ProducesObject(verb string) interface{} {
return externalappsv1beta1.DeploymentStatus{}
}
var _ = rest.StorageMetadata(&RollbackREST{})
// New creates a rollback
func (r *RollbackREST) New() runtime.Object {
return &extensions.DeploymentRollback{}

View File

@ -47,6 +47,17 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorag
return apiGroupInfo, true
}
type RollbackREST struct {
*deploymentstore.RollbackREST
}
// override RollbackREST.ProducesObject
func (r *RollbackREST) ProducesObject(verb string) interface{} {
return extensionsapiv1beta1.DeploymentStatus{}
}
var _ = rest.StorageMetadata(&RollbackREST{})
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) map[string]rest.Storage {
storage := map[string]rest.Storage{}
@ -65,7 +76,7 @@ func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource serverstorag
deploymentStorage := deploymentstore.NewStorage(restOptionsGetter)
storage["deployments"] = deploymentStorage.Deployment.WithCategories(nil)
storage["deployments/status"] = deploymentStorage.Status
storage["deployments/rollback"] = deploymentStorage.Rollback
storage["deployments/rollback"] = &RollbackREST{deploymentStorage.Rollback}
storage["deployments/scale"] = deploymentStorage.Scale
// ingresses
ingressStorage, ingressStatusStorage := ingressstore.NewREST(restOptionsGetter)