From 98496fa511eb40778cb83e54f490a10d274b5a4d Mon Sep 17 00:00:00 2001 From: Haowei Cai Date: Mon, 14 May 2018 17:02:48 -0700 Subject: [PATCH 1/2] POSTing rollback returns deploymentstatus --- pkg/registry/apps/deployment/storage/storage.go | 15 +++++++++++++++ .../extensions/rest/storage_extensions.go | 13 ++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/pkg/registry/apps/deployment/storage/storage.go b/pkg/registry/apps/deployment/storage/storage.go index c8b469ec45d..24a143f4b31 100644 --- a/pkg/registry/apps/deployment/storage/storage.go +++ b/pkg/registry/apps/deployment/storage/storage.go @@ -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{} diff --git a/pkg/registry/extensions/rest/storage_extensions.go b/pkg/registry/extensions/rest/storage_extensions.go index 2b21e502f07..0d7e7ebb299 100644 --- a/pkg/registry/extensions/rest/storage_extensions.go +++ b/pkg/registry/extensions/rest/storage_extensions.go @@ -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) From 5ebcdb33ffdc88032b02660d25c8b690f6741e13 Mon Sep 17 00:00:00 2001 From: Haowei Cai Date: Fri, 25 May 2018 17:13:44 -0700 Subject: [PATCH 2/2] generated --- api/openapi-spec/swagger.json | 12 ++++++------ api/swagger-spec/apps_v1beta1.json | 8 ++++---- api/swagger-spec/extensions_v1beta1.json | 8 ++++---- docs/api-reference/apps/v1beta1/operations.html | 6 +++--- .../api-reference/extensions/v1beta1/operations.html | 6 +++--- pkg/registry/apps/deployment/storage/BUILD | 1 + 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index f42b0c90960..6332e341db9 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -29279,19 +29279,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus" } }, "401": { @@ -47633,19 +47633,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus" } }, "401": { diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json index 3811b8905da..b3c70263ca8 100644 --- a/api/swagger-spec/apps_v1beta1.json +++ b/api/swagger-spec/apps_v1beta1.json @@ -1957,7 +1957,7 @@ "description": "API at /apis/apps/v1beta1", "operations": [ { - "type": "v1beta1.DeploymentRollback", + "type": "v1beta1.DeploymentStatus", "method": "POST", "summary": "create rollback of a Deployment", "nickname": "createNamespacedDeploymentRollback", @@ -1999,17 +1999,17 @@ { "code": 200, "message": "OK", - "responseModel": "v1beta1.DeploymentRollback" + "responseModel": "v1beta1.DeploymentStatus" }, { "code": 201, "message": "Created", - "responseModel": "v1beta1.DeploymentRollback" + "responseModel": "v1beta1.DeploymentStatus" }, { "code": 202, "message": "Accepted", - "responseModel": "v1beta1.DeploymentRollback" + "responseModel": "v1beta1.DeploymentStatus" } ], "produces": [ diff --git a/api/swagger-spec/extensions_v1beta1.json b/api/swagger-spec/extensions_v1beta1.json index 4ab3384c071..7c0bf05e1a1 100644 --- a/api/swagger-spec/extensions_v1beta1.json +++ b/api/swagger-spec/extensions_v1beta1.json @@ -2127,7 +2127,7 @@ "description": "API at /apis/extensions/v1beta1", "operations": [ { - "type": "v1beta1.DeploymentRollback", + "type": "v1beta1.DeploymentStatus", "method": "POST", "summary": "create rollback of a Deployment", "nickname": "createNamespacedDeploymentRollback", @@ -2169,17 +2169,17 @@ { "code": 200, "message": "OK", - "responseModel": "v1beta1.DeploymentRollback" + "responseModel": "v1beta1.DeploymentStatus" }, { "code": 201, "message": "Created", - "responseModel": "v1beta1.DeploymentRollback" + "responseModel": "v1beta1.DeploymentStatus" }, { "code": 202, "message": "Accepted", - "responseModel": "v1beta1.DeploymentRollback" + "responseModel": "v1beta1.DeploymentStatus" } ], "produces": [ diff --git a/docs/api-reference/apps/v1beta1/operations.html b/docs/api-reference/apps/v1beta1/operations.html index 9baddda3061..5f070284504 100755 --- a/docs/api-reference/apps/v1beta1/operations.html +++ b/docs/api-reference/apps/v1beta1/operations.html @@ -2950,17 +2950,17 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

202

Accepted

-

v1beta1.DeploymentRollback

+

v1beta1.DeploymentStatus

200

success

-

v1beta1.DeploymentRollback

+

v1beta1.DeploymentStatus

201

Created

-

v1beta1.DeploymentRollback

+

v1beta1.DeploymentStatus

diff --git a/docs/api-reference/extensions/v1beta1/operations.html b/docs/api-reference/extensions/v1beta1/operations.html index d5fc70c6620..eb056f7f0e3 100755 --- a/docs/api-reference/extensions/v1beta1/operations.html +++ b/docs/api-reference/extensions/v1beta1/operations.html @@ -3508,17 +3508,17 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

202

Accepted

-

v1beta1.DeploymentRollback

+

v1beta1.DeploymentStatus

200

success

-

v1beta1.DeploymentRollback

+

v1beta1.DeploymentStatus

201

Created

-

v1beta1.DeploymentRollback

+

v1beta1.DeploymentStatus

diff --git a/pkg/registry/apps/deployment/storage/BUILD b/pkg/registry/apps/deployment/storage/BUILD index 600ff2032d2..c77794d0665 100644 --- a/pkg/registry/apps/deployment/storage/BUILD +++ b/pkg/registry/apps/deployment/storage/BUILD @@ -49,6 +49,7 @@ go_library( "//pkg/printers/internalversion:go_default_library", "//pkg/printers/storage:go_default_library", "//pkg/registry/apps/deployment:go_default_library", + "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",