code: func (i *Info) Refresh(obj runtime.Object, ignoreError bool) error {
  	name, err := metadataAccessor.Name(obj)
  	if err != nil {
  		if !ignoreError {
  			return err
  		}
  	} else {
  		i.Name = name
  	}
  	namespace, err := metadataAccessor.Namespace(obj)
  	if err != nil {
  		if !ignoreError {
  			return err
  		}
  	} else {
  		i.Namespace = namespace
  	}
  	version, err := metadataAccessor.ResourceVersion(obj)
  	if err != nil {
  		if !ignoreError {
  			return err
  		}
  	} else {
  		i.ResourceVersion = version
  	}
  	i.Object = obj
  	return nil
  }
docs: // Refresh updates the object with another object. If ignoreError is set
  // the Object will be updated even if name, namespace, or resourceVersion
  // attributes cannot be loaded from the object.