Merge pull request #64654 from atlassian/missing-error-handling

Automatic merge from submit-queue. 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>.

Add missing error handling in schema-related code

**What this PR does / why we need it**:
Adds missing error handling to a few places.

**Which issue(s) this PR fixes**
Updates #51457. Still more work to do to fix the issue - client generation code needs to be updated (addressed in https://github.com/kubernetes/kubernetes/pull/64664).

**Release note**:
```release-note
NONE
```

/kind bug
/sig api-machinery

Kubernetes-commit: 7786bd8c9a99974e2cda31940dd4a1ef0a31c2e5
This commit is contained in:
Kubernetes Publisher 2018-07-02 07:14:34 -07:00
commit f783e1bbe3
4 changed files with 96 additions and 99 deletions

162
Godeps/Godeps.json generated
View File

@ -268,327 +268,327 @@
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1alpha1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/apps/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/authentication/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/authorization/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/batch/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/coordination/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/core/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/events/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/networking/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/rbac/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/scheduling/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/storage/v1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/storage/v1alpha1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "655e4e87cb5a855657ad325d1a615cf870870c9d"
"Rev": "5f0d8f067e3bc465077d0333e891450326a577a3"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "49fb9c9ee47ede1ead7dc90a697c0652526b072c"
"Rev": "cce7a330881575ce32ac9f50852de77237194a55"
},
{
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto",

View File

@ -36,6 +36,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/pkg/apis/clientauthentication"
"k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1"
"k8s.io/client-go/pkg/apis/clientauthentication/v1beta1"
@ -51,9 +52,9 @@ var codecs = serializer.NewCodecFactory(scheme)
func init() {
v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"})
v1alpha1.AddToScheme(scheme)
v1beta1.AddToScheme(scheme)
clientauthentication.AddToScheme(scheme)
utilruntime.Must(v1alpha1.AddToScheme(scheme))
utilruntime.Must(v1beta1.AddToScheme(scheme))
utilruntime.Must(clientauthentication.AddToScheme(scheme))
}
var (

View File

@ -25,6 +25,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/discovery"
scalescheme "k8s.io/client-go/scale/scheme"
scaleappsint "k8s.io/client-go/scale/scheme/appsint"
@ -143,13 +144,13 @@ type ScaleConverter struct {
// Scales in autoscaling/v1 and extensions/v1beta1.
func NewScaleConverter() *ScaleConverter {
scheme := runtime.NewScheme()
scaleautoscaling.AddToScheme(scheme)
scalescheme.AddToScheme(scheme)
scaleext.AddToScheme(scheme)
scaleextint.AddToScheme(scheme)
scaleappsint.AddToScheme(scheme)
scaleappsv1beta1.AddToScheme(scheme)
scaleappsv1beta2.AddToScheme(scheme)
utilruntime.Must(scaleautoscaling.AddToScheme(scheme))
utilruntime.Must(scalescheme.AddToScheme(scheme))
utilruntime.Must(scaleext.AddToScheme(scheme))
utilruntime.Must(scaleextint.AddToScheme(scheme))
utilruntime.Must(scaleappsint.AddToScheme(scheme))
utilruntime.Must(scaleappsv1beta1.AddToScheme(scheme))
utilruntime.Must(scaleappsv1beta2.AddToScheme(scheme))
return &ScaleConverter{
scheme: scheme,

View File

@ -21,6 +21,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer/json"
"k8s.io/apimachinery/pkg/runtime/serializer/versioning"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/tools/clientcmd/api"
"k8s.io/client-go/tools/clientcmd/api/v1"
)
@ -47,14 +48,8 @@ var (
func init() {
Scheme = runtime.NewScheme()
if err := api.AddToScheme(Scheme); err != nil {
// Programmer error, detect immediately
panic(err)
}
if err := v1.AddToScheme(Scheme); err != nil {
// Programmer error, detect immediately
panic(err)
}
utilruntime.Must(api.AddToScheme(Scheme))
utilruntime.Must(v1.AddToScheme(Scheme))
yamlSerializer := json.NewYAMLSerializer(json.DefaultMetaFactory, Scheme, Scheme)
Codec = versioning.NewDefaultingCodecForScheme(
Scheme,