Skip to content

Commit 4d9be8f

Browse files
shawn-hurleyJay Boyd
authored and
Jay Boyd
committed
Use userInfo for Originating-Identity so extras is correct. (openshift#1702)
1 parent f358b99 commit 4d9be8f

File tree

3 files changed

+29
-15
lines changed

3 files changed

+29
-15
lines changed

Diff for: pkg/controller/controller_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ const testOriginatingIdentityValue = `{
347347
"username": "fakeusername",
348348
"uid": "fakeuid",
349349
"groups": ["fakegroup1"],
350-
"fakekey": ["fakevalue"]
350+
"extra": {"fakekey": ["fakevalue"]}
351351
}`
352352

353353
var testOriginatingIdentity = &osb.OriginatingIdentity{

Diff for: pkg/controller/originating_identity.go

+1-11
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,13 @@ import (
2525

2626
const (
2727
originatingIdentityPlatform = "kubernetes"
28-
originatingIdentityUsername = "username"
29-
originatingIdentityUID = "uid"
30-
originatingIdentityGroups = "groups"
3128
)
3229

3330
func buildOriginatingIdentity(userInfo *v1beta1.UserInfo) (*osb.OriginatingIdentity, error) {
3431
if userInfo == nil {
3532
return nil, nil
3633
}
37-
oiFields := map[string]interface{}{}
38-
oiFields[originatingIdentityUsername] = userInfo.Username
39-
oiFields[originatingIdentityUID] = userInfo.UID
40-
oiFields[originatingIdentityGroups] = userInfo.Groups
41-
for k, v := range userInfo.Extra {
42-
oiFields[k] = v
43-
}
44-
oiValue, err := json.Marshal(oiFields)
34+
oiValue, err := json.Marshal(userInfo)
4535
if err != nil {
4636
return nil, err
4737
}

Diff for: pkg/controller/originating_identity_test.go

+27-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ limitations under the License.
1717
package controller
1818

1919
import (
20+
"encoding/json"
21+
"fmt"
22+
"reflect"
2023
"testing"
2124

2225
"github.com/kubernetes-incubator/service-catalog/pkg/apis/servicecatalog/v1beta1"
@@ -33,7 +36,7 @@ func TestBuildOriginatingIdentity(t *testing.T) {
3336

3437
e := osb.OriginatingIdentity{
3538
Platform: "kubernetes",
36-
Value: `{"foo":["bar","baz"],"groups":["stuff-dev","main-eng"],"uid":"abcd-1234","username":"[email protected]"}`,
39+
Value: `{extra: {"foo":["bar","baz"]},"groups":["stuff-dev","main-eng"],"uid":"abcd-1234","username":"[email protected]"}`,
3740
}
3841

3942
g, err := buildOriginatingIdentity(&userInfo)
@@ -46,7 +49,28 @@ func TestBuildOriginatingIdentity(t *testing.T) {
4649
t.Fatalf("Unexpected Platform, %s", expectedGot(e.Platform, g.Platform))
4750
}
4851

49-
if e.Value != g.Value {
50-
t.Fatalf("Unexpected Value, %s", expectedGot(e.Value, g.Value))
52+
var retUserInfo v1beta1.UserInfo
53+
err = json.Unmarshal([]byte(g.Value), &retUserInfo)
54+
if err != nil {
55+
t.Fatalf("Unexpected Error, %+v", err)
56+
}
57+
58+
if userInfo.Username != retUserInfo.Username {
59+
t.Fatalf("Unexpected Value Username, %s", expectedGot(userInfo.Username, retUserInfo.Username))
60+
}
61+
if userInfo.UID != retUserInfo.UID {
62+
t.Fatalf("Unexpected Value UID, %s", expectedGot(userInfo.UID, retUserInfo.UID))
63+
}
64+
65+
if !reflect.DeepEqual(userInfo.Groups, retUserInfo.Groups) {
66+
t.Fatalf("Unexpected Value Groups, %s", expectedGot(fmt.Sprintf("%#v", userInfo.Groups), fmt.Sprintf("%#v", retUserInfo.Groups)))
67+
}
68+
69+
if extras, ok := retUserInfo.Extra["foo"]; !ok {
70+
t.Fatalf("Unexpected Value extras, %s", expectedGot(fmt.Sprintf("%#v", userInfo.Extra), fmt.Sprintf("%#v", retUserInfo.Extra)))
71+
} else {
72+
if !reflect.DeepEqual(extras, userInfo.Extra["foo"]) {
73+
t.Fatalf("Unexpected Value extras, %s", expectedGot(fmt.Sprintf("%#v", userInfo.Extra), fmt.Sprintf("%#v", retUserInfo.Extra)))
74+
}
5175
}
5276
}

0 commit comments

Comments
 (0)