mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Error instead of crash on GetRef of nil object
This commit is contained in:
		@@ -17,18 +17,24 @@ limitations under the License.
 | 
			
		||||
package api
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"regexp"
 | 
			
		||||
 | 
			
		||||
	"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var ErrNilObject = errors.New("Can't reference a nil object")
 | 
			
		||||
 | 
			
		||||
var versionFromSelfLink = regexp.MustCompile("/api/([^/]*)/")
 | 
			
		||||
 | 
			
		||||
// GetReference returns an ObjectReference which refers to the given
 | 
			
		||||
// object, or an error if the object doesn't follow the conventions
 | 
			
		||||
// that would allow this.
 | 
			
		||||
func GetReference(obj runtime.Object) (*ObjectReference, error) {
 | 
			
		||||
	if obj == nil {
 | 
			
		||||
		return nil, ErrNilObject
 | 
			
		||||
	}
 | 
			
		||||
	jsonBase, err := runtime.FindTypeMeta(obj)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
 
 | 
			
		||||
@@ -80,6 +80,11 @@ func TestGetReference(t *testing.T) {
 | 
			
		||||
			ref:       nil,
 | 
			
		||||
			shouldErr: true,
 | 
			
		||||
		},
 | 
			
		||||
		"errorNil": {
 | 
			
		||||
			obj:       nil,
 | 
			
		||||
			ref:       nil,
 | 
			
		||||
			shouldErr: true,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for name, item := range table {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user