func ExtractFieldPathAsString(obj interface{}, fieldPath string) (string, error) {
	accessor, err := meta.Accessor(obj)
	if err != nil {
		return "", nil
	}
	switch fieldPath {
	case "metadata.annotations":
		return formatMap(accessor.GetAnnotations()), nil
	case "metadata.labels":
		return formatMap(accessor.GetLabels()), nil
	case "metadata.name":
		return accessor.GetName(), nil
	case "metadata.namespace":
		return accessor.GetNamespace(), nil
	}
	return "", fmt.Errorf("Unsupported fieldPath: %v", fieldPath)
}
ExtractFieldPathAsString extracts the field from the given object
and returns it as a string.  The object must be a pointer to an
API type.

Currently, this API is limited to supporting the fieldpaths:

1.  metadata.name - The name of an API object
2.  metadata.namespace - The namespace of an API object
package fieldpath
import (
	"fmt"
	"k8s.io/kubernetes/pkg/api/meta"
)
func formatMap(m map[string]string) (fmtStr string) {
	for key, value := range m {
		fmtStr += fmt.Sprintf("%v=%q\n", key, value)
	}
	return
}