From 877f605dc0d5d047bf311e7d5d38dfc6e99b8cb5 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Tue, 24 Feb 2015 20:15:17 -0800 Subject: [PATCH] Add specific errors for missing kind and version. --- pkg/conversion/error.go | 32 ++++++++++++++++++++++++++++++++ pkg/runtime/error.go | 12 ++++++++++++ 2 files changed, 44 insertions(+) diff --git a/pkg/conversion/error.go b/pkg/conversion/error.go index 7ee24ee4380..1c053c3eaae 100644 --- a/pkg/conversion/error.go +++ b/pkg/conversion/error.go @@ -49,3 +49,35 @@ func IsNotRegisteredError(err error) bool { _, ok := err.(*notRegisteredErr) return ok } + +type missingKindErr struct { + data string +} + +func (k *missingKindErr) Error() string { + return fmt.Sprintf("Object 'Kind' is missing in '%s'", k.data) +} + +func IsMissingKind(err error) bool { + if err == nil { + return false + } + _, ok := err.(*missingKindErr) + return ok +} + +type missingVersionErr struct { + data string +} + +func (k *missingVersionErr) Error() string { + return fmt.Sprintf("Object 'apiVersion' is missing in '%s'", k.data) +} + +func IsMissingVersion(err error) bool { + if err == nil { + return false + } + _, ok := err.(*missingVersionErr) + return ok +} diff --git a/pkg/runtime/error.go b/pkg/runtime/error.go index a84fe6ae9f3..e49dfe8f22e 100644 --- a/pkg/runtime/error.go +++ b/pkg/runtime/error.go @@ -25,3 +25,15 @@ import ( func IsNotRegisteredError(err error) bool { return conversion.IsNotRegisteredError(err) } + +// IsMissingKind returns true if the error indicates that the provided object +// is missing a 'Kind' field. +func IsMissingKind(err error) bool { + return conversion.IsMissingKind(err) +} + +// IsMissingVersion returns true if the error indicates that the provided object +// is missing a 'Versioj' field. +func IsMissingVersion(err error) bool { + return conversion.IsMissingVersion(err) +}