1
1
package integration
2
2
3
3
import (
4
- "testing"
5
-
6
- kapi "k8s.io/kubernetes/pkg/api"
7
- watchapi "k8s.io/kubernetes/pkg/watch"
8
-
4
+ authorizationapi "github.com/openshift/origin/pkg/authorization/api"
9
5
buildapi "github.com/openshift/origin/pkg/build/api"
10
6
"github.com/openshift/origin/pkg/client"
7
+ "github.com/openshift/origin/pkg/cmd/admin/policy"
8
+ "github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
11
9
imageapi "github.com/openshift/origin/pkg/image/api"
12
10
testutil "github.com/openshift/origin/test/util"
13
11
testserver "github.com/openshift/origin/test/util/server"
12
+ kapi "k8s.io/kubernetes/pkg/api"
13
+ watchapi "k8s.io/kubernetes/pkg/watch"
14
+ "testing"
14
15
)
15
16
16
17
const (
@@ -20,7 +21,7 @@ const (
20
21
21
22
func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTI (t * testing.T ) {
22
23
defer testutil .DumpEtcdOnFailure (t )
23
- projectAdminClient := setup (t )
24
+ projectAdminClient , _ := setup (t )
24
25
imageStream := mockImageStream2 (tag )
25
26
imageStreamMapping := mockImageStreamMapping (imageStream .Name , "someimage" , tag , "registry:8080/openshift/test-image-trigger:" + tag )
26
27
strategy := stiStrategy ("ImageStreamTag" , streamName + ":" + tag )
@@ -30,7 +31,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTI(t *testing.T) {
30
31
31
32
func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTIWithConfigChange (t * testing.T ) {
32
33
defer testutil .DumpEtcdOnFailure (t )
33
- projectAdminClient := setup (t )
34
+ projectAdminClient , _ := setup (t )
34
35
imageStream := mockImageStream2 (tag )
35
36
imageStreamMapping := mockImageStreamMapping (imageStream .Name , "someimage" , tag , "registry:8080/openshift/test-image-trigger:" + tag )
36
37
strategy := stiStrategy ("ImageStreamTag" , streamName + ":" + tag )
@@ -40,7 +41,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTIWithConfigChange(t *t
40
41
41
42
func TestSimpleImageChangeBuildTriggerFromImageStreamTagDocker (t * testing.T ) {
42
43
defer testutil .DumpEtcdOnFailure (t )
43
- projectAdminClient := setup (t )
44
+ projectAdminClient , _ := setup (t )
44
45
imageStream := mockImageStream2 (tag )
45
46
imageStreamMapping := mockImageStreamMapping (imageStream .Name , "someimage" , tag , "registry:8080/openshift/test-image-trigger:" + tag )
46
47
strategy := dockerStrategy ("ImageStreamTag" , streamName + ":" + tag )
@@ -50,7 +51,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagDocker(t *testing.T) {
50
51
51
52
func TestSimpleImageChangeBuildTriggerFromImageStreamTagDockerWithConfigChange (t * testing.T ) {
52
53
defer testutil .DumpEtcdOnFailure (t )
53
- projectAdminClient := setup (t )
54
+ projectAdminClient , _ := setup (t )
54
55
imageStream := mockImageStream2 (tag )
55
56
imageStreamMapping := mockImageStreamMapping (imageStream .Name , "someimage" , tag , "registry:8080/openshift/test-image-trigger:" + tag )
56
57
strategy := dockerStrategy ("ImageStreamTag" , streamName + ":" + tag )
@@ -60,7 +61,27 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagDockerWithConfigChange(t
60
61
61
62
func TestSimpleImageChangeBuildTriggerFromImageStreamTagCustom (t * testing.T ) {
62
63
defer testutil .DumpEtcdOnFailure (t )
63
- projectAdminClient := setup (t )
64
+ projectAdminClient , clusterAdminClient := setup (t )
65
+
66
+ clusterRoleBindingAccessor := policy .NewClusterRoleBindingAccessor (clusterAdminClient )
67
+ subjects := []kapi.ObjectReference {
68
+ {
69
+ Kind : authorizationapi .SystemGroupKind ,
70
+ Name : bootstrappolicy .AuthenticatedGroup ,
71
+ },
72
+ }
73
+ options := policy.RoleModificationOptions {
74
+ RoleNamespace : testutil .Namespace (),
75
+ RoleName : bootstrappolicy .BuildStrategyCustomRoleName ,
76
+ RoleBindingAccessor : clusterRoleBindingAccessor ,
77
+ Subjects : subjects ,
78
+ }
79
+ options .AddRole ()
80
+
81
+ if err := testutil .WaitForPolicyUpdate (projectAdminClient , testutil .Namespace (), "create" , buildapi .Resource (authorizationapi .CustomBuildResource ), true ); err != nil {
82
+ t .Fatal (err )
83
+ }
84
+
64
85
imageStream := mockImageStream2 (tag )
65
86
imageStreamMapping := mockImageStreamMapping (imageStream .Name , "someimage" , tag , "registry:8080/openshift/test-image-trigger:" + tag )
66
87
strategy := customStrategy ("ImageStreamTag" , streamName + ":" + tag )
@@ -70,7 +91,31 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagCustom(t *testing.T) {
70
91
71
92
func TestSimpleImageChangeBuildTriggerFromImageStreamTagCustomWithConfigChange (t * testing.T ) {
72
93
defer testutil .DumpEtcdOnFailure (t )
73
- projectAdminClient := setup (t )
94
+ projectAdminClient , _ := setup (t )
95
+
96
+ clusterAdminClient , err := testutil .GetClusterAdminClient (testutil .GetBaseDir () + "/openshift.local.config/master/admin.kubeconfig" )
97
+ if err != nil {
98
+ t .Fatalf ("unexpected error: %v" , err )
99
+ }
100
+ clusterRoleBindingAccessor := policy .NewClusterRoleBindingAccessor (clusterAdminClient )
101
+ subjects := []kapi.ObjectReference {
102
+ {
103
+ Kind : authorizationapi .SystemGroupKind ,
104
+ Name : bootstrappolicy .AuthenticatedGroup ,
105
+ },
106
+ }
107
+ options := policy.RoleModificationOptions {
108
+ RoleNamespace : testutil .Namespace (),
109
+ RoleName : bootstrappolicy .BuildStrategyCustomRoleName ,
110
+ RoleBindingAccessor : clusterRoleBindingAccessor ,
111
+ Subjects : subjects ,
112
+ }
113
+ options .AddRole ()
114
+
115
+ if err := testutil .WaitForPolicyUpdate (projectAdminClient , testutil .Namespace (), "create" , buildapi .Resource (authorizationapi .CustomBuildResource ), true ); err != nil {
116
+ t .Fatal (err )
117
+ }
118
+
74
119
imageStream := mockImageStream2 (tag )
75
120
imageStreamMapping := mockImageStreamMapping (imageStream .Name , "someimage" , tag , "registry:8080/openshift/test-image-trigger:" + tag )
76
121
strategy := customStrategy ("ImageStreamTag" , streamName + ":" + tag )
@@ -181,7 +226,7 @@ func mockImageStreamMapping(stream, image, tag, reference string) *imageapi.Imag
181
226
}
182
227
}
183
228
184
- func setup (t * testing.T ) * client.Client {
229
+ func setup (t * testing.T ) ( * client.Client , * client. Client ) {
185
230
testutil .RequireEtcd (t )
186
231
_ , clusterAdminKubeConfigFile , err := testserver .StartTestMaster ()
187
232
if err != nil {
@@ -203,7 +248,7 @@ func setup(t *testing.T) *client.Client {
203
248
t .Fatalf ("unexpected error: %v" , err )
204
249
}
205
250
206
- return projectAdminClient
251
+ return projectAdminClient , clusterAdminClient
207
252
}
208
253
209
254
func runTest (t * testing.T , testname string , projectAdminClient * client.Client , imageStream * imageapi.ImageStream , imageStreamMapping * imageapi.ImageStreamMapping , config * buildapi.BuildConfig , tag string ) {
@@ -429,7 +474,7 @@ func TestMultipleImageChangeBuildTriggers(t *testing.T) {
429
474
}
430
475
return bc
431
476
}
432
- projectAdminClient := setup (t )
477
+ projectAdminClient , _ := setup (t )
433
478
config := multipleImageChangeBuildConfig ()
434
479
triggersToTest := []struct {
435
480
triggerIndex int
0 commit comments