Merge pull request #63837 from roycaihw/fix-rollback-return-object

Automatic merge from submit-queue (batch tested with PRs 65377, 63837, 65370, 65294, 65376). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix openapi spec: posting a rollback returns a deploymentstatus

**What this PR does / why we need it**:
Fix openapi spec and documentation. Posting a rollback doesnt return a rollback object, it instead returns a deployment status.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
ref #56591 

**Release note**:

```release-note
NONE
```

/sig api-machinery
/sig apps
This commit is contained in:
Kubernetes Submit Queue 2018-06-22 16:16:08 -07:00 committed by GitHub
commit 32c3ffa19e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 48 additions and 21 deletions

View File

@ -29443,19 +29443,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": {
@ -47879,19 +47879,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": {

View File

@ -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": [

View File

@ -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": [

View File

@ -2950,17 +2950,17 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">202</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Accepted</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentrollback">v1beta1.DeploymentRollback</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentstatus">v1beta1.DeploymentStatus</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentrollback">v1beta1.DeploymentRollback</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentstatus">v1beta1.DeploymentStatus</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">201</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Created</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentrollback">v1beta1.DeploymentRollback</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentstatus">v1beta1.DeploymentStatus</a></p></td>
</tr>
</tbody>
</table>

View File

@ -3508,17 +3508,17 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">202</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Accepted</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentrollback">v1beta1.DeploymentRollback</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentstatus">v1beta1.DeploymentStatus</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentrollback">v1beta1.DeploymentRollback</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentstatus">v1beta1.DeploymentStatus</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">201</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Created</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentrollback">v1beta1.DeploymentRollback</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1beta1_deploymentstatus">v1beta1.DeploymentStatus</a></p></td>
</tr>
</tbody>
</table>

View File

@ -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",

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)