Example #1
0
// This will Convert the v1 representation of VolumeSource to our internal representation
// Used for keeping backwards compatibility for the Metadata field
func Convert_v1_VolumeSource_To_api_VolumeSource(in *VolumeSource, out *api.VolumeSource, s conversion.Scope) error {
	if err := autoConvert_v1_VolumeSource_To_api_VolumeSource(in, out, s); err != nil {
		return err
	}

	// Metadata overrides DownwardAPI
	if in.Metadata != nil {
		out.DownwardAPI = &api.DownwardAPIVolumeSource{}
		for _, item := range in.Metadata.Items {
			file := api.DownwardAPIVolumeFile{Path: item.Path}
			if item.FieldRef != nil {
				file.FieldRef = new(api.ObjectFieldSelector)
				if err := Convert_v1_ObjectFieldSelector_To_api_ObjectFieldSelector(item.FieldRef, file.FieldRef, s); err != nil {
					return err
				}
			}
			if item.ResourceFieldRef != nil {
				file.ResourceFieldRef = new(api.ResourceFieldSelector)
				if err := Convert_v1_ResourceFieldSelector_To_api_ResourceFieldSelector(item.ResourceFieldRef, file.ResourceFieldRef, s); err != nil {
					return err
				}
			}
			out.DownwardAPI.Items = append(out.DownwardAPI.Items, file)
		}
	}
	return nil
}