Browse code

deployapi: Update manual conversions

Michail Kargakis authored on 2015/12/18 01:27:46
Showing 4 changed files
... ...
@@ -3,6 +3,7 @@ package v1
3 3
 import (
4 4
 	"fmt"
5 5
 	"math"
6
+	"strings"
6 7
 
7 8
 	"k8s.io/kubernetes/pkg/api"
8 9
 	"k8s.io/kubernetes/pkg/conversion"
... ...
@@ -13,200 +14,36 @@ import (
13 13
 	imageapi "github.com/openshift/origin/pkg/image/api"
14 14
 )
15 15
 
16
-func convert_v1_DeploymentConfig_To_api_DeploymentConfig(in *DeploymentConfig, out *newer.DeploymentConfig, s conversion.Scope) error {
17
-	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
18
-		return err
19
-	}
20
-	if err := s.Convert(&in.Spec, &out.Template, 0); err != nil {
21
-		return err
22
-	}
23
-	if err := s.Convert(&in.Spec.Triggers, &out.Triggers, 0); err != nil {
24
-		return err
25
-	}
26
-	out.LatestVersion = in.Status.LatestVersion
27
-	if err := s.Convert(&in.Status.Details, &out.Details, 0); err != nil {
28
-		return err
29
-	}
30
-	return nil
31
-}
32
-
33
-func convert_api_DeploymentConfig_To_v1_DeploymentConfig(in *newer.DeploymentConfig, out *DeploymentConfig, s conversion.Scope) error {
34
-	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
35
-		return err
36
-	}
37
-	if err := s.Convert(&in.Template, &out.Spec, 0); err != nil {
38
-		return err
39
-	}
40
-	if err := s.Convert(&in.Triggers, &out.Spec.Triggers, 0); err != nil {
41
-		return err
42
-	}
43
-	out.Status.LatestVersion = in.LatestVersion
44
-	if err := s.Convert(&in.Details, &out.Status.Details, 0); err != nil {
45
-		return err
46
-	}
47
-	return nil
48
-}
49
-
50
-func convert_v1_DeploymentConfigSpec_To_api_DeploymentTemplate(in *DeploymentConfigSpec, out *newer.DeploymentTemplate, s conversion.Scope) error {
51
-	out.ControllerTemplate.Replicas = in.Replicas
52
-	if in.Selector != nil {
53
-		out.ControllerTemplate.Selector = make(map[string]string)
54
-		for k, v := range in.Selector {
55
-			out.ControllerTemplate.Selector[k] = v
56
-		}
57
-	}
58
-	if in.Template != nil {
59
-		if err := s.Convert(&in.Template, &out.ControllerTemplate.Template, 0); err != nil {
60
-			return err
61
-		}
62
-	}
63
-	if err := s.Convert(&in.Strategy, &out.Strategy, 0); err != nil {
64
-		return err
65
-	}
66
-	return nil
67
-}
68
-
69
-func convert_v1_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentStrategy, out *newer.DeploymentStrategy, s conversion.Scope) error {
70
-	if err := s.Convert(&in.Type, &out.Type, 0); err != nil {
71
-		return err
72
-	}
73
-	if err := s.Convert(&in.CustomParams, &out.CustomParams, 0); err != nil {
74
-		return err
75
-	}
76
-	if err := s.Convert(&in.RecreateParams, &out.RecreateParams, 0); err != nil {
77
-		return err
78
-	}
79
-	if err := s.Convert(&in.RollingParams, &out.RollingParams, 0); err != nil {
80
-		return err
81
-	}
82
-	if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil {
83
-		return err
84
-	}
85
-	if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
86
-		return err
87
-	}
88
-	if err := s.Convert(&in.Annotations, &out.Annotations, 0); err != nil {
89
-		return err
90
-	}
91
-	return nil
92
-}
93
-
94
-func convert_api_DeploymentStrategy_To_v1_DeploymentStrategy(in *newer.DeploymentStrategy, out *DeploymentStrategy, s conversion.Scope) error {
95
-	if err := s.Convert(&in.Type, &out.Type, 0); err != nil {
96
-		return err
97
-	}
98
-	if err := s.Convert(&in.CustomParams, &out.CustomParams, 0); err != nil {
99
-		return err
100
-	}
101
-	if err := s.Convert(&in.RecreateParams, &out.RecreateParams, 0); err != nil {
102
-		return err
103
-	}
104
-	if err := s.Convert(&in.RollingParams, &out.RollingParams, 0); err != nil {
105
-		return err
106
-	}
107
-	if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil {
108
-		return err
109
-	}
110
-	if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
111
-		return err
112
-	}
113
-	if err := s.Convert(&in.Annotations, &out.Annotations, 0); err != nil {
114
-		return err
115
-	}
116
-	return nil
117
-}
118
-
119
-func convert_api_DeploymentTemplate_To_v1_DeploymentConfigSpec(in *newer.DeploymentTemplate, out *DeploymentConfigSpec, s conversion.Scope) error {
120
-	out.Replicas = in.ControllerTemplate.Replicas
121
-	if in.ControllerTemplate.Selector != nil {
122
-		out.Selector = make(map[string]string)
123
-		for k, v := range in.ControllerTemplate.Selector {
124
-			out.Selector[k] = v
125
-		}
126
-	}
127
-	if in.ControllerTemplate.Template != nil {
128
-		if err := s.Convert(&in.ControllerTemplate.Template, &out.Template, 0); err != nil {
129
-			return err
130
-		}
131
-	}
132
-	if err := s.Convert(&in.Strategy, &out.Strategy, 0); err != nil {
133
-		return err
134
-	}
135
-	return nil
136
-}
137
-
138 16
 func convert_v1_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams(in *DeploymentTriggerImageChangeParams, out *newer.DeploymentTriggerImageChangeParams, s conversion.Scope) error {
139
-	out.Automatic = in.Automatic
140
-	out.ContainerNames = make([]string, len(in.ContainerNames))
141
-	copy(out.ContainerNames, in.ContainerNames)
142
-	out.LastTriggeredImage = in.LastTriggeredImage
143
-	if err := s.Convert(&in.From, &out.From, 0); err != nil {
17
+	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
144 18
 		return err
145 19
 	}
146 20
 	switch in.From.Kind {
147
-	case "DockerImage":
148
-		ref, err := imageapi.ParseDockerImageReference(in.From.Name)
149
-		if err != nil {
150
-			return err
151
-		}
152
-		out.Tag = ref.Tag
153
-		ref.Tag, ref.ID = "", ""
154
-		out.RepositoryName = ref.String()
155 21
 	case "ImageStreamTag":
156
-		name, tag, ok := imageapi.SplitImageStreamTag(in.From.Name)
157
-		if !ok {
158
-			return fmt.Errorf("ImageStreamTag object references must be in the form <name>:<tag>: %s", in.From.Name)
22
+	case "ImageStream", "ImageRepository":
23
+		out.From.Kind = "ImageStreamTag"
24
+		if !strings.Contains(out.From.Name, ":") {
25
+			out.From.Name = imageapi.JoinImageStreamTag(out.From.Name, imageapi.DefaultImageTag)
159 26
 		}
160
-		out.From.Kind = "ImageStream"
161
-		out.From.Name = name
162
-		out.Tag = tag
27
+	default:
28
+		// Will be handled by validation
163 29
 	}
164 30
 	return nil
165 31
 }
166 32
 
167 33
 func convert_api_DeploymentTriggerImageChangeParams_To_v1_DeploymentTriggerImageChangeParams(in *newer.DeploymentTriggerImageChangeParams, out *DeploymentTriggerImageChangeParams, s conversion.Scope) error {
168
-	out.Automatic = in.Automatic
169
-	out.ContainerNames = make([]string, len(in.ContainerNames))
170
-	copy(out.ContainerNames, in.ContainerNames)
171
-	out.LastTriggeredImage = in.LastTriggeredImage
172
-	if err := s.Convert(&in.From, &out.From, 0); err != nil {
34
+	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
173 35
 		return err
174 36
 	}
175 37
 	switch in.From.Kind {
176
-	case "ImageStream":
38
+	case "ImageStreamTag":
39
+	case "ImageStream", "ImageRepository":
177 40
 		out.From.Kind = "ImageStreamTag"
178
-		tag := in.Tag
179
-		if len(tag) == 0 {
180
-			tag = imageapi.DefaultImageTag
181
-		}
182
-		out.From.Name = fmt.Sprintf("%s:%s", in.From.Name, tag)
183
-	}
184
-	return nil
185
-}
186
-
187
-func convert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(in *DeploymentCauseImageTrigger, out *newer.DeploymentCauseImageTrigger, s conversion.Scope) error {
188
-	switch in.From.Kind {
189
-	case "DockerImage":
190
-		ref, err := imageapi.ParseDockerImageReference(in.From.Name)
191
-		if err != nil {
192
-			return err
193
-		}
194
-		out.Tag = ref.Tag
195
-		ref.Tag, ref.ID = "", ""
196
-		out.RepositoryName = ref.Minimal().String()
197
-	}
198
-	return nil
199
-}
200
-
201
-func convert_api_DeploymentCauseImageTrigger_To_v1_DeploymentCauseImageTrigger(in *newer.DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, s conversion.Scope) error {
202
-	if len(in.RepositoryName) != 0 {
203
-		ref, err := imageapi.ParseDockerImageReference(in.RepositoryName)
204
-		if err != nil {
205
-			return err
41
+		if !strings.Contains(out.From.Name, ":") {
42
+			out.From.Name = imageapi.JoinImageStreamTag(out.From.Name, imageapi.DefaultImageTag)
206 43
 		}
207
-		ref.Tag = in.Tag
208
-		out.From.Kind = "DockerImage"
209
-		out.From.Name = ref.String()
44
+	default:
45
+		// Will be handled by validation
210 46
 	}
211 47
 	return nil
212 48
 }
... ...
@@ -288,32 +125,10 @@ func convert_api_RollingDeploymentStrategyParams_To_v1_RollingDeploymentStrategy
288 288
 }
289 289
 
290 290
 func init() {
291
-	err := api.Scheme.AddDefaultingFuncs(
292
-		func(obj *DeploymentTriggerImageChangeParams) {
293
-			if len(obj.From.Kind) == 0 {
294
-				obj.From.Kind = "ImageStreamTag"
295
-			}
296
-		},
297
-	)
298
-	if err != nil {
299
-		panic(err)
300
-	}
301
-
302
-	err = api.Scheme.AddConversionFuncs(
303
-		convert_v1_DeploymentConfig_To_api_DeploymentConfig,
304
-		convert_api_DeploymentConfig_To_v1_DeploymentConfig,
305
-
306
-		convert_v1_DeploymentConfigSpec_To_api_DeploymentTemplate,
307
-		convert_v1_DeploymentStrategy_To_api_DeploymentStrategy,
308
-		convert_api_DeploymentStrategy_To_v1_DeploymentStrategy,
309
-		convert_api_DeploymentTemplate_To_v1_DeploymentConfigSpec,
310
-
291
+	err := api.Scheme.AddConversionFuncs(
311 292
 		convert_v1_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams,
312 293
 		convert_api_DeploymentTriggerImageChangeParams_To_v1_DeploymentTriggerImageChangeParams,
313 294
 
314
-		convert_v1_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger,
315
-		convert_api_DeploymentCauseImageTrigger_To_v1_DeploymentCauseImageTrigger,
316
-
317 295
 		convert_v1_RollingDeploymentStrategyParams_To_api_RollingDeploymentStrategyParams,
318 296
 		convert_api_RollingDeploymentStrategyParams_To_v1_RollingDeploymentStrategyParams,
319 297
 	)
... ...
@@ -13,23 +13,44 @@ import (
13 13
 )
14 14
 
15 15
 func TestTriggerRoundTrip(t *testing.T) {
16
-	p := DeploymentTriggerImageChangeParams{
17
-		From: kapiv1.ObjectReference{
18
-			Kind: "DockerImage",
19
-			Name: "",
16
+	tests := []struct {
17
+		testName   string
18
+		kind, name string
19
+	}{
20
+		{
21
+			testName: "ImageStream -> ImageStreamTag",
22
+			kind:     "ImageStream",
23
+			name:     "golang",
24
+		},
25
+		{
26
+			testName: "ImageStreamTag -> ImageStreamTag",
27
+			kind:     "ImageStreamTag",
28
+			name:     "golang:latest",
29
+		},
30
+		{
31
+			testName: "ImageRepository -> ImageStreamTag",
32
+			kind:     "ImageRepository",
33
+			name:     "golang",
20 34
 		},
21 35
 	}
22
-	out := &newer.DeploymentTriggerImageChangeParams{}
23
-	if err := kapi.Scheme.Convert(&p, out); err == nil {
24
-		t.Errorf("unexpected error: %v", err)
25
-	}
26
-	p.From.Name = "a/b:test"
27
-	out = &newer.DeploymentTriggerImageChangeParams{}
28
-	if err := kapi.Scheme.Convert(&p, out); err != nil {
29
-		t.Errorf("unexpected error: %v", err)
30
-	}
31
-	if out.RepositoryName != "a/b" && out.Tag != "test" {
32
-		t.Errorf("unexpected output: %#v", out)
36
+
37
+	for _, test := range tests {
38
+		p := DeploymentTriggerImageChangeParams{
39
+			From: kapiv1.ObjectReference{
40
+				Kind: test.kind,
41
+				Name: test.name,
42
+			},
43
+		}
44
+		out := &newer.DeploymentTriggerImageChangeParams{}
45
+		if err := kapi.Scheme.Convert(&p, out); err != nil {
46
+			t.Errorf("%s: unexpected error: %v", test.testName, err)
47
+		}
48
+		if out.From.Name != "golang:latest" {
49
+			t.Errorf("%s: unexpected name: %s", test.testName, out.From.Name)
50
+		}
51
+		if out.From.Kind != "ImageStreamTag" {
52
+			t.Errorf("%s: unexpected kind: %s", test.testName, out.From.Kind)
53
+		}
33 54
 	}
34 55
 }
35 56
 
... ...
@@ -3,6 +3,7 @@ package v1beta3
3 3
 import (
4 4
 	"fmt"
5 5
 	"math"
6
+	"strings"
6 7
 
7 8
 	"k8s.io/kubernetes/pkg/api"
8 9
 	"k8s.io/kubernetes/pkg/conversion"
... ...
@@ -12,200 +13,36 @@ import (
12 12
 	imageapi "github.com/openshift/origin/pkg/image/api"
13 13
 )
14 14
 
15
-func convert_v1beta3_DeploymentConfig_To_api_DeploymentConfig(in *DeploymentConfig, out *newer.DeploymentConfig, s conversion.Scope) error {
16
-	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
17
-		return err
18
-	}
19
-	if err := s.Convert(&in.Spec, &out.Template, 0); err != nil {
20
-		return err
21
-	}
22
-	if err := s.Convert(&in.Spec.Triggers, &out.Triggers, 0); err != nil {
23
-		return err
24
-	}
25
-	out.LatestVersion = in.Status.LatestVersion
26
-	if err := s.Convert(&in.Status.Details, &out.Details, 0); err != nil {
27
-		return err
28
-	}
29
-	return nil
30
-}
31
-
32
-func convert_api_DeploymentConfig_To_v1beta3_DeploymentConfig(in *newer.DeploymentConfig, out *DeploymentConfig, s conversion.Scope) error {
33
-	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
34
-		return err
35
-	}
36
-	if err := s.Convert(&in.Template, &out.Spec, 0); err != nil {
37
-		return err
38
-	}
39
-	if err := s.Convert(&in.Triggers, &out.Spec.Triggers, 0); err != nil {
40
-		return err
41
-	}
42
-	out.Status.LatestVersion = in.LatestVersion
43
-	if err := s.Convert(&in.Details, &out.Status.Details, 0); err != nil {
44
-		return err
45
-	}
46
-	return nil
47
-}
48
-
49
-func convert_v1beta3_DeploymentConfigSpec_To_api_DeploymentTemplate(in *DeploymentConfigSpec, out *newer.DeploymentTemplate, s conversion.Scope) error {
50
-	out.ControllerTemplate.Replicas = in.Replicas
51
-	if in.Selector != nil {
52
-		out.ControllerTemplate.Selector = make(map[string]string)
53
-		for k, v := range in.Selector {
54
-			out.ControllerTemplate.Selector[k] = v
55
-		}
56
-	}
57
-	if in.Template != nil {
58
-		if err := s.Convert(&in.Template, &out.ControllerTemplate.Template, 0); err != nil {
59
-			return err
60
-		}
61
-	}
62
-	if err := s.Convert(&in.Strategy, &out.Strategy, 0); err != nil {
63
-		return err
64
-	}
65
-	return nil
66
-}
67
-
68
-func convert_v1beta3_DeploymentStrategy_To_api_DeploymentStrategy(in *DeploymentStrategy, out *newer.DeploymentStrategy, s conversion.Scope) error {
69
-	if err := s.Convert(&in.Type, &out.Type, 0); err != nil {
70
-		return err
71
-	}
72
-	if err := s.Convert(&in.CustomParams, &out.CustomParams, 0); err != nil {
73
-		return err
74
-	}
75
-	if err := s.Convert(&in.RecreateParams, &out.RecreateParams, 0); err != nil {
76
-		return err
77
-	}
78
-	if err := s.Convert(&in.RollingParams, &out.RollingParams, 0); err != nil {
79
-		return err
80
-	}
81
-	if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil {
82
-		return err
83
-	}
84
-	if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
85
-		return err
86
-	}
87
-	if err := s.Convert(&in.Annotations, &out.Annotations, 0); err != nil {
88
-		return err
89
-	}
90
-	return nil
91
-}
92
-
93
-func convert_api_DeploymentStrategy_To_v1beta3_DeploymentStrategy(in *newer.DeploymentStrategy, out *DeploymentStrategy, s conversion.Scope) error {
94
-	if err := s.Convert(&in.Type, &out.Type, 0); err != nil {
95
-		return err
96
-	}
97
-	if err := s.Convert(&in.CustomParams, &out.CustomParams, 0); err != nil {
98
-		return err
99
-	}
100
-	if err := s.Convert(&in.RecreateParams, &out.RecreateParams, 0); err != nil {
101
-		return err
102
-	}
103
-	if err := s.Convert(&in.RollingParams, &out.RollingParams, 0); err != nil {
104
-		return err
105
-	}
106
-	if err := s.Convert(&in.Resources, &out.Resources, 0); err != nil {
107
-		return err
108
-	}
109
-	if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
110
-		return err
111
-	}
112
-	if err := s.Convert(&in.Annotations, &out.Annotations, 0); err != nil {
113
-		return err
114
-	}
115
-	return nil
116
-}
117
-
118
-func convert_api_DeploymentTemplate_To_v1beta3_DeploymentConfigSpec(in *newer.DeploymentTemplate, out *DeploymentConfigSpec, s conversion.Scope) error {
119
-	out.Replicas = in.ControllerTemplate.Replicas
120
-	if in.ControllerTemplate.Selector != nil {
121
-		out.Selector = make(map[string]string)
122
-		for k, v := range in.ControllerTemplate.Selector {
123
-			out.Selector[k] = v
124
-		}
125
-	}
126
-	if in.ControllerTemplate.Template != nil {
127
-		if err := s.Convert(&in.ControllerTemplate.Template, &out.Template, 0); err != nil {
128
-			return err
129
-		}
130
-	}
131
-	if err := s.Convert(&in.Strategy, &out.Strategy, 0); err != nil {
132
-		return err
133
-	}
134
-	return nil
135
-}
136
-
137 15
 func convert_v1beta3_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams(in *DeploymentTriggerImageChangeParams, out *newer.DeploymentTriggerImageChangeParams, s conversion.Scope) error {
138
-	out.Automatic = in.Automatic
139
-	out.ContainerNames = make([]string, len(in.ContainerNames))
140
-	copy(out.ContainerNames, in.ContainerNames)
141
-	out.LastTriggeredImage = in.LastTriggeredImage
142
-	if err := s.Convert(&in.From, &out.From, 0); err != nil {
16
+	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
143 17
 		return err
144 18
 	}
145 19
 	switch in.From.Kind {
146
-	case "DockerImage":
147
-		ref, err := imageapi.ParseDockerImageReference(in.From.Name)
148
-		if err != nil {
149
-			return err
150
-		}
151
-		out.Tag = ref.Tag
152
-		ref.Tag, ref.ID = "", ""
153
-		out.RepositoryName = ref.String()
154 20
 	case "ImageStreamTag":
155
-		name, tag, ok := imageapi.SplitImageStreamTag(in.From.Name)
156
-		if !ok {
157
-			return fmt.Errorf("ImageStreamTag object references must be in the form <name>:<tag>: %s", in.From.Name)
21
+	case "ImageStream", "ImageRepository":
22
+		out.From.Kind = "ImageStreamTag"
23
+		if !strings.Contains(out.From.Name, ":") {
24
+			out.From.Name = imageapi.JoinImageStreamTag(out.From.Name, imageapi.DefaultImageTag)
158 25
 		}
159
-		out.From.Kind = "ImageStream"
160
-		out.From.Name = name
161
-		out.Tag = tag
26
+	default:
27
+		// Will be handled by validation
162 28
 	}
163 29
 	return nil
164 30
 }
165 31
 
166 32
 func convert_api_DeploymentTriggerImageChangeParams_To_v1beta3_DeploymentTriggerImageChangeParams(in *newer.DeploymentTriggerImageChangeParams, out *DeploymentTriggerImageChangeParams, s conversion.Scope) error {
167
-	out.Automatic = in.Automatic
168
-	out.ContainerNames = make([]string, len(in.ContainerNames))
169
-	copy(out.ContainerNames, in.ContainerNames)
170
-	out.LastTriggeredImage = in.LastTriggeredImage
171
-	if err := s.Convert(&in.From, &out.From, 0); err != nil {
33
+	if err := s.DefaultConvert(in, out, conversion.IgnoreMissingFields); err != nil {
172 34
 		return err
173 35
 	}
174 36
 	switch in.From.Kind {
175
-	case "ImageStream":
37
+	case "ImageStreamTag":
38
+	case "ImageStream", "ImageRepository":
176 39
 		out.From.Kind = "ImageStreamTag"
177
-		tag := in.Tag
178
-		if len(tag) == 0 {
179
-			tag = imageapi.DefaultImageTag
180
-		}
181
-		out.From.Name = fmt.Sprintf("%s:%s", in.From.Name, tag)
182
-	}
183
-	return nil
184
-}
185
-
186
-func convert_v1beta3_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger(in *DeploymentCauseImageTrigger, out *newer.DeploymentCauseImageTrigger, s conversion.Scope) error {
187
-	switch in.From.Kind {
188
-	case "DockerImage":
189
-		ref, err := imageapi.ParseDockerImageReference(in.From.Name)
190
-		if err != nil {
191
-			return err
40
+		if !strings.Contains(out.From.Name, ":") {
41
+			out.From.Name = imageapi.JoinImageStreamTag(out.From.Name, imageapi.DefaultImageTag)
192 42
 		}
193
-		out.Tag = ref.Tag
194
-		ref.Tag, ref.ID = "", ""
195
-		out.RepositoryName = ref.Minimal().String()
196
-	}
197
-	return nil
198
-}
199
-
200
-func convert_api_DeploymentCauseImageTrigger_To_v1beta3_DeploymentCauseImageTrigger(in *newer.DeploymentCauseImageTrigger, out *DeploymentCauseImageTrigger, s conversion.Scope) error {
201
-	if len(in.RepositoryName) != 0 {
202
-		ref, err := imageapi.ParseDockerImageReference(in.RepositoryName)
203
-		if err != nil {
204
-			return err
205
-		}
206
-		ref.Tag = in.Tag
207
-		out.From.Kind = "DockerImage"
208
-		out.From.Name = ref.String()
43
+	default:
44
+		// Will be handled by validation
209 45
 	}
210 46
 	return nil
211 47
 }
... ...
@@ -287,28 +124,10 @@ func convert_api_RollingDeploymentStrategyParams_To_v1beta3_RollingDeploymentStr
287 287
 }
288 288
 
289 289
 func init() {
290
-	err := api.Scheme.AddDefaultingFuncs(
291
-		func(obj *DeploymentTriggerImageChangeParams) {
292
-			if len(obj.From.Kind) == 0 {
293
-				obj.From.Kind = "ImageStreamTag"
294
-			}
295
-		},
296
-	)
297
-	if err != nil {
298
-		panic(err)
299
-	}
300
-
301
-	err = api.Scheme.AddConversionFuncs(
302
-		convert_v1beta3_DeploymentConfig_To_api_DeploymentConfig,
303
-		convert_api_DeploymentConfig_To_v1beta3_DeploymentConfig,
304
-		convert_v1beta3_DeploymentConfigSpec_To_api_DeploymentTemplate,
305
-		convert_v1beta3_DeploymentStrategy_To_api_DeploymentStrategy,
306
-		convert_api_DeploymentStrategy_To_v1beta3_DeploymentStrategy,
307
-		convert_api_DeploymentTemplate_To_v1beta3_DeploymentConfigSpec,
290
+	err := api.Scheme.AddConversionFuncs(
308 291
 		convert_v1beta3_DeploymentTriggerImageChangeParams_To_api_DeploymentTriggerImageChangeParams,
309 292
 		convert_api_DeploymentTriggerImageChangeParams_To_v1beta3_DeploymentTriggerImageChangeParams,
310
-		convert_v1beta3_DeploymentCauseImageTrigger_To_api_DeploymentCauseImageTrigger,
311
-		convert_api_DeploymentCauseImageTrigger_To_v1beta3_DeploymentCauseImageTrigger,
293
+
312 294
 		convert_v1beta3_RollingDeploymentStrategyParams_To_api_RollingDeploymentStrategyParams,
313 295
 		convert_api_RollingDeploymentStrategyParams_To_v1beta3_RollingDeploymentStrategyParams,
314 296
 	)
... ...
@@ -12,23 +12,44 @@ import (
12 12
 )
13 13
 
14 14
 func TestTriggerRoundTrip(t *testing.T) {
15
-	p := DeploymentTriggerImageChangeParams{
16
-		From: kapiv1beta3.ObjectReference{
17
-			Kind: "DockerImage",
18
-			Name: "",
15
+	tests := []struct {
16
+		testName   string
17
+		kind, name string
18
+	}{
19
+		{
20
+			testName: "ImageStream -> ImageStreamTag",
21
+			kind:     "ImageStream",
22
+			name:     "golang",
23
+		},
24
+		{
25
+			testName: "ImageStreamTag -> ImageStreamTag",
26
+			kind:     "ImageStreamTag",
27
+			name:     "golang:latest",
28
+		},
29
+		{
30
+			testName: "ImageRepository -> ImageStreamTag",
31
+			kind:     "ImageRepository",
32
+			name:     "golang",
19 33
 		},
20 34
 	}
21
-	out := &newer.DeploymentTriggerImageChangeParams{}
22
-	if err := kapi.Scheme.Convert(&p, out); err == nil {
23
-		t.Errorf("unexpected error: %v", err)
24
-	}
25
-	p.From.Name = "a/b:test"
26
-	out = &newer.DeploymentTriggerImageChangeParams{}
27
-	if err := kapi.Scheme.Convert(&p, out); err != nil {
28
-		t.Errorf("unexpected error: %v", err)
29
-	}
30
-	if out.RepositoryName != "a/b" && out.Tag != "test" {
31
-		t.Errorf("unexpected output: %#v", out)
35
+
36
+	for _, test := range tests {
37
+		p := DeploymentTriggerImageChangeParams{
38
+			From: kapiv1beta3.ObjectReference{
39
+				Kind: test.kind,
40
+				Name: test.name,
41
+			},
42
+		}
43
+		out := &newer.DeploymentTriggerImageChangeParams{}
44
+		if err := kapi.Scheme.Convert(&p, out); err != nil {
45
+			t.Errorf("%s: unexpected error: %v", test.testName, err)
46
+		}
47
+		if out.From.Name != "golang:latest" {
48
+			t.Errorf("%s: unexpected name: %s", test.testName, out.From.Name)
49
+		}
50
+		if out.From.Kind != "ImageStreamTag" {
51
+			t.Errorf("%s: unexpected kind: %s", test.testName, out.From.Kind)
52
+		}
32 53
 	}
33 54
 }
34 55