mirror of
https://github.com/kubernetes/client-go.git
synced 2025-06-26 07:02:01 +00:00
Add custom error struct for Group/Version not found
Kubernetes-commit: dc83af0b44bd6432dea3ccd29a77ca3a0b6122a2
This commit is contained in:
parent
3f4372de09
commit
4c5eaaf0d7
@ -125,7 +125,7 @@ func (r *root) retrieveGVBytes(gv schema.GroupVersion) ([]byte, error) {
|
|||||||
apiPath := gvToAPIPath(gv)
|
apiPath := gvToAPIPath(gv)
|
||||||
gvOpenAPI, found := paths[apiPath]
|
gvOpenAPI, found := paths[apiPath]
|
||||||
if !found {
|
if !found {
|
||||||
return nil, fmt.Errorf("GroupVersion (%s) not found in OpenAPI V3 root document", gv)
|
return nil, &GroupVersionNotFoundError{gv: gv}
|
||||||
}
|
}
|
||||||
return gvOpenAPI.Schema(runtime.ContentTypeJSON)
|
return gvOpenAPI.Schema(runtime.ContentTypeJSON)
|
||||||
}
|
}
|
||||||
@ -170,3 +170,13 @@ func pathToGroupVersion(path string) (schema.GroupVersion, error) {
|
|||||||
}
|
}
|
||||||
return gv, nil
|
return gv, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Encapsulates GroupVersion not found as one of the paths
|
||||||
|
// at OpenAPI V3 endpoint.
|
||||||
|
type GroupVersionNotFoundError struct {
|
||||||
|
gv schema.GroupVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *GroupVersionNotFoundError) Error() string {
|
||||||
|
return fmt.Sprintf("GroupVersion (%v) not found as OpenAPI V3 path", r.gv)
|
||||||
|
}
|
||||||
|
@ -113,7 +113,7 @@ func TestOpenAPIV3Root_GVSpec(t *testing.T) {
|
|||||||
name string
|
name string
|
||||||
gv schema.GroupVersion
|
gv schema.GroupVersion
|
||||||
expectedPaths []string
|
expectedPaths []string
|
||||||
err bool
|
err error
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "OpenAPI V3 for apps/v1 works",
|
name: "OpenAPI V3 for apps/v1 works",
|
||||||
@ -144,7 +144,7 @@ func TestOpenAPIV3Root_GVSpec(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "OpenAPI V3 spec not found",
|
name: "OpenAPI V3 spec not found",
|
||||||
gv: schema.GroupVersion{Group: "not", Version: "found"},
|
gv: schema.GroupVersion{Group: "not", Version: "found"},
|
||||||
err: true,
|
err: &GroupVersionNotFoundError{gv: schema.GroupVersion{Group: "not", Version: "found"}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,8 +153,8 @@ func TestOpenAPIV3Root_GVSpec(t *testing.T) {
|
|||||||
client := openapitest.NewFileClient(t)
|
client := openapitest.NewFileClient(t)
|
||||||
root := NewRoot(client)
|
root := NewRoot(client)
|
||||||
gvSpec, err := root.GVSpec(test.gv)
|
gvSpec, err := root.GVSpec(test.gv)
|
||||||
if test.err {
|
if test.err != nil {
|
||||||
require.Error(t, err)
|
assert.True(t, reflect.DeepEqual(test.err, err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -172,7 +172,7 @@ func TestOpenAPIV3Root_GVSpecAsMap(t *testing.T) {
|
|||||||
name string
|
name string
|
||||||
gv schema.GroupVersion
|
gv schema.GroupVersion
|
||||||
expectedPaths []string
|
expectedPaths []string
|
||||||
err bool
|
err error
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "OpenAPI V3 for apps/v1 works",
|
name: "OpenAPI V3 for apps/v1 works",
|
||||||
@ -203,7 +203,7 @@ func TestOpenAPIV3Root_GVSpecAsMap(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "OpenAPI V3 spec not found",
|
name: "OpenAPI V3 spec not found",
|
||||||
gv: schema.GroupVersion{Group: "not", Version: "found"},
|
gv: schema.GroupVersion{Group: "not", Version: "found"},
|
||||||
err: true,
|
err: &GroupVersionNotFoundError{gv: schema.GroupVersion{Group: "not", Version: "found"}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,8 +212,8 @@ func TestOpenAPIV3Root_GVSpecAsMap(t *testing.T) {
|
|||||||
client := openapitest.NewFileClient(t)
|
client := openapitest.NewFileClient(t)
|
||||||
root := NewRoot(client)
|
root := NewRoot(client)
|
||||||
gvSpecAsMap, err := root.GVSpecAsMap(test.gv)
|
gvSpecAsMap, err := root.GVSpecAsMap(test.gv)
|
||||||
if test.err {
|
if test.err != nil {
|
||||||
require.Error(t, err)
|
assert.True(t, reflect.DeepEqual(test.err, err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
Loading…
Reference in New Issue
Block a user