fix bugs of pvc api
This commit is contained in:
@@ -28,6 +28,36 @@ func New(factory informers.InformerFactory) *Handler {
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Handler) handleGetResources(request *restful.Request, response *restful.Response) {
|
||||
namespace := request.PathParameter("namespace")
|
||||
resourceType := request.PathParameter("resources")
|
||||
name := request.PathParameter("name")
|
||||
|
||||
result, err := h.resourceGetterV1alpha3.Get(resourceType, namespace, name)
|
||||
if err == nil {
|
||||
response.WriteEntity(result)
|
||||
return
|
||||
}
|
||||
|
||||
if err != resource.ErrResourceNotSupported {
|
||||
klog.Error(err)
|
||||
api.HandleInternalError(response, nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
// fallback to v1alpha2
|
||||
resultV1alpha2, err := h.resourcesGetterV1alpha2.GetResource(namespace, resourceType, name)
|
||||
|
||||
if err != nil {
|
||||
klog.Error(err)
|
||||
api.HandleInternalError(response, nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
response.WriteEntity(resultV1alpha2)
|
||||
|
||||
}
|
||||
|
||||
// handleListResources retrieves resources
|
||||
func (h *Handler) handleListResources(request *restful.Request, response *restful.Response) {
|
||||
query := query.ParseQueryParameter(request)
|
||||
|
||||
@@ -70,6 +70,15 @@ func AddToContainer(c *restful.Container, informerFactory informers.InformerFact
|
||||
Param(webservice.QueryParameter(query.ParameterOrderBy, "sort parameters, e.g. orderBy=createTime")).
|
||||
Returns(http.StatusOK, ok, api.ListResult{}))
|
||||
|
||||
webservice.Route(webservice.GET("/namespaces/{namespace}/{resources}/{name}").
|
||||
To(handler.handleGetResources).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{tagNamespacedResource}).
|
||||
Doc("Namespace level get resource query").
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("resources", "namespace level resource type, e.g. pods,jobs,configmaps,services.")).
|
||||
Param(webservice.PathParameter("name", "the name of resource")).
|
||||
Returns(http.StatusOK, ok, api.ListResult{}))
|
||||
|
||||
webservice.Route(webservice.GET("/components").
|
||||
To(handler.handleGetComponents).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{tagComponentStatus}).
|
||||
|
||||
Reference in New Issue
Block a user