func init() { err := kapi.Scheme.AddDefaultingFuncs( func(strategy *BuildStrategy) { if (strategy != nil) && (strategy.Type == DockerBuildStrategyType) { // initialize DockerStrategy to a default state if it's not set. if strategy.DockerStrategy == nil { strategy.DockerStrategy = &DockerBuildStrategy{} } } }, func(obj *SourceBuildStrategy) { if len(obj.From.Kind) == 0 { obj.From.Kind = "ImageStreamTag" } }, func(obj *DockerBuildStrategy) { if obj.From != nil && len(obj.From.Kind) == 0 { obj.From.Kind = "ImageStreamTag" } }, func(obj *CustomBuildStrategy) { if len(obj.From.Kind) == 0 { obj.From.Kind = "ImageStreamTag" } }, func(obj *BuildTriggerPolicy) { if obj.Type == ImageChangeBuildTriggerType && obj.ImageChange == nil { obj.ImageChange = &ImageChangeTrigger{} } }, ) if err != nil { panic(err) } kapi.Scheme.AddConversionFuncs( convert_v1_SourceBuildStrategy_To_api_SourceBuildStrategy, convert_api_SourceBuildStrategy_To_v1_SourceBuildStrategy, convert_v1_DockerBuildStrategy_To_api_DockerBuildStrategy, convert_api_DockerBuildStrategy_To_v1_DockerBuildStrategy, convert_v1_CustomBuildStrategy_To_api_CustomBuildStrategy, convert_api_CustomBuildStrategy_To_v1_CustomBuildStrategy, convert_v1_BuildOutput_To_api_BuildOutput, convert_api_BuildOutput_To_v1_BuildOutput, convert_v1_BuildTriggerPolicy_To_api_BuildTriggerPolicy, convert_api_BuildTriggerPolicy_To_v1_BuildTriggerPolicy, ) if err := kapi.Scheme.AddFieldLabelConversionFunc("v1", "Build", oapi.GetFieldLabelConversionFunc(newer.BuildToSelectableFields(&newer.Build{}), map[string]string{"name": "metadata.name"}), ); err != nil { panic(err) } if err := kapi.Scheme.AddFieldLabelConversionFunc("v1", "BuildConfig", oapi.GetFieldLabelConversionFunc(newer.BuildConfigToSelectableFields(&newer.BuildConfig{}), map[string]string{"name": "metadata.name"}), ); err != nil { panic(err) } }
func addConversionFuncs(scheme *runtime.Scheme) { scheme.AddConversionFuncs( Convert_v1_BuildConfig_To_api_BuildConfig, Convert_api_BuildConfig_To_v1_BuildConfig, Convert_v1_SourceBuildStrategy_To_api_SourceBuildStrategy, Convert_api_SourceBuildStrategy_To_v1_SourceBuildStrategy, Convert_v1_DockerBuildStrategy_To_api_DockerBuildStrategy, Convert_api_DockerBuildStrategy_To_v1_DockerBuildStrategy, Convert_v1_CustomBuildStrategy_To_api_CustomBuildStrategy, Convert_api_CustomBuildStrategy_To_v1_CustomBuildStrategy, Convert_v1_BuildOutput_To_api_BuildOutput, Convert_api_BuildOutput_To_v1_BuildOutput, Convert_v1_BuildTriggerPolicy_To_api_BuildTriggerPolicy, Convert_api_BuildTriggerPolicy_To_v1_BuildTriggerPolicy, Convert_v1_SourceRevision_To_api_SourceRevision, Convert_api_SourceRevision_To_v1_SourceRevision, Convert_v1_BuildSource_To_api_BuildSource, Convert_api_BuildSource_To_v1_BuildSource, Convert_v1_BuildStrategy_To_api_BuildStrategy, Convert_api_BuildStrategy_To_v1_BuildStrategy, ) if err := scheme.AddFieldLabelConversionFunc("v1", "Build", oapi.GetFieldLabelConversionFunc(newer.BuildToSelectableFields(&newer.Build{}), map[string]string{"name": "metadata.name"}), ); err != nil { panic(err) } if err := scheme.AddFieldLabelConversionFunc("v1", "BuildConfig", oapi.GetFieldLabelConversionFunc(newer.BuildConfigToSelectableFields(&newer.BuildConfig{}), map[string]string{"name": "metadata.name"}), ); err != nil { panic(err) } }
// Matcher returns a generic matcher for a given label and field selector. func Matcher(label labels.Selector, field fields.Selector) generic.Matcher { return &generic.SelectionPredicate{ Label: label, Field: field, GetAttrs: func(obj runtime.Object) (labels.Set, fields.Set, error) { buildConfig, ok := obj.(*api.BuildConfig) if !ok { return nil, nil, fmt.Errorf("not a BuildConfig") } return labels.Set(buildConfig.ObjectMeta.Labels), api.BuildConfigToSelectableFields(buildConfig), nil }, } }
func TestFieldSelectorConversions(t *testing.T) { testutil.CheckFieldLabelConversions(t, "v1", "Build", // Ensure all currently returned labels are supported newer.BuildToSelectableFields(&newer.Build{}), // Ensure previously supported labels have conversions. DO NOT REMOVE THINGS FROM THIS LIST "name", "status", "podName", ) testutil.CheckFieldLabelConversions(t, "v1", "BuildConfig", // Ensure all currently returned labels are supported newer.BuildConfigToSelectableFields(&newer.BuildConfig{}), // Ensure previously supported labels have conversions. DO NOT REMOVE THINGS FROM THIS LIST "name", ) }
func addConversionFuncs(scheme *runtime.Scheme) { err := scheme.AddDefaultingFuncs( func(source *BuildSource) { if (source != nil) && (source.Type == BuildSourceBinary) && (source.Binary == nil) { source.Binary = &BinaryBuildSource{} } }, func(strategy *BuildStrategy) { if (strategy != nil) && (strategy.Type == DockerBuildStrategyType) && (strategy.DockerStrategy == nil) { strategy.DockerStrategy = &DockerBuildStrategy{} } }, func(obj *SourceBuildStrategy) { if len(obj.From.Kind) == 0 { obj.From.Kind = "ImageStreamTag" } }, func(obj *DockerBuildStrategy) { if obj.From != nil && len(obj.From.Kind) == 0 { obj.From.Kind = "ImageStreamTag" } }, func(obj *CustomBuildStrategy) { if len(obj.From.Kind) == 0 { obj.From.Kind = "ImageStreamTag" } }, func(obj *BuildTriggerPolicy) { if obj.Type == ImageChangeBuildTriggerType && obj.ImageChange == nil { obj.ImageChange = &ImageChangeTrigger{} } }, ) if err != nil { panic(err) } scheme.AddConversionFuncs( convert_v1_BuildConfig_To_api_BuildConfig, convert_api_BuildConfig_To_v1_BuildConfig, convert_v1_SourceBuildStrategy_To_api_SourceBuildStrategy, convert_api_SourceBuildStrategy_To_v1_SourceBuildStrategy, convert_v1_DockerBuildStrategy_To_api_DockerBuildStrategy, convert_api_DockerBuildStrategy_To_v1_DockerBuildStrategy, convert_v1_CustomBuildStrategy_To_api_CustomBuildStrategy, convert_api_CustomBuildStrategy_To_v1_CustomBuildStrategy, convert_v1_BuildOutput_To_api_BuildOutput, convert_api_BuildOutput_To_v1_BuildOutput, convert_v1_BuildTriggerPolicy_To_api_BuildTriggerPolicy, convert_api_BuildTriggerPolicy_To_v1_BuildTriggerPolicy, convert_v1_SourceRevision_To_api_SourceRevision, convert_api_SourceRevision_To_v1_SourceRevision, convert_v1_BuildSource_To_api_BuildSource, convert_api_BuildSource_To_v1_BuildSource, convert_v1_BuildStrategy_To_api_BuildStrategy, convert_api_BuildStrategy_To_v1_BuildStrategy, ) if err := scheme.AddFieldLabelConversionFunc("v1", "Build", oapi.GetFieldLabelConversionFunc(newer.BuildToSelectableFields(&newer.Build{}), map[string]string{"name": "metadata.name"}), ); err != nil { panic(err) } if err := scheme.AddFieldLabelConversionFunc("v1", "BuildConfig", oapi.GetFieldLabelConversionFunc(newer.BuildConfigToSelectableFields(&newer.BuildConfig{}), map[string]string{"name": "metadata.name"}), ); err != nil { panic(err) } }