Skip to content

Commit 297628a

Browse files
authored
user info (#22)
* user info send whole object to SM
1 parent 52d96cd commit 297628a

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

controllers/controller_util.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ package controllers
33
import (
44
"encoding/json"
55
"strings"
6+
7+
"github.com/go-logr/logr"
8+
v1 "k8s.io/api/authentication/v1"
69
)
710

811
func normalizeCredentials(credentialsJSON json.RawMessage) (map[string][]byte, error) {
@@ -27,3 +30,16 @@ func normalizeCredentials(credentialsJSON json.RawMessage) (map[string][]byte, e
2730
}
2831
return normalized, nil
2932
}
33+
34+
func buildUserInfo(userInfo *v1.UserInfo, log logr.Logger) string {
35+
if userInfo == nil {
36+
return ""
37+
}
38+
userInfoStr, err := json.Marshal(userInfo)
39+
if err != nil {
40+
log.Error(err, "failed to prepare user info")
41+
return ""
42+
}
43+
44+
return string(userInfoStr)
45+
}

controllers/servicebinding_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ func (r *ServiceBindingReconciler) createBinding(ctx context.Context, smClient s
198198
},
199199
ServiceInstanceID: serviceInstance.Status.InstanceID,
200200
Parameters: bindingParameters,
201-
}, nil, serviceBinding.Spec.UserInfo.Username)
201+
}, nil, buildUserInfo(serviceBinding.Spec.UserInfo, log))
202202

203203
if bindErr != nil {
204204
log.Error(err, "failed to create service binding", "serviceInstanceID", serviceInstance.Status.InstanceID)
@@ -273,7 +273,7 @@ func (r *ServiceBindingReconciler) delete(ctx context.Context, smClient sm.Clien
273273
}
274274

275275
log.Info(fmt.Sprintf("Deleting binding with id %v from SM", serviceBinding.Status.BindingID))
276-
operationURL, unbindErr := smClient.Unbind(serviceBinding.Status.BindingID, nil, serviceBinding.Spec.UserInfo.Username)
276+
operationURL, unbindErr := smClient.Unbind(serviceBinding.Status.BindingID, nil, buildUserInfo(serviceBinding.Spec.UserInfo, log))
277277
if unbindErr != nil {
278278
log.Error(unbindErr, "failed to delete binding")
279279
if isTransientError(unbindErr, log) {

controllers/serviceinstance_controller.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ func (r *ServiceInstanceReconciler) createInstance(ctx context.Context, smClient
191191
k8sNameLabel: []string{serviceInstance.Name},
192192
clusterIDLabel: []string{r.Config.ClusterID},
193193
},
194-
}, serviceInstance.Spec.ServiceOfferingName, serviceInstance.Spec.ServicePlanName, nil, serviceInstance.Spec.UserInfo.Username)
194+
}, serviceInstance.Spec.ServiceOfferingName, serviceInstance.Spec.ServicePlanName, nil, buildUserInfo(serviceInstance.Spec.UserInfo, log))
195195

196196
if provisionErr != nil {
197197
log.Error(provisionErr, "failed to create service instance", "serviceOfferingName", serviceInstance.Spec.ServiceOfferingName,
@@ -235,7 +235,7 @@ func (r *ServiceInstanceReconciler) updateInstance(ctx context.Context, smClient
235235
Name: serviceInstance.Spec.ExternalName,
236236
ServicePlanID: serviceInstance.Spec.ServicePlanID,
237237
Parameters: instanceParameters,
238-
}, serviceInstance.Spec.ServiceOfferingName, serviceInstance.Spec.ServicePlanName, nil, serviceInstance.Spec.UserInfo.Username)
238+
}, serviceInstance.Spec.ServiceOfferingName, serviceInstance.Spec.ServicePlanName, nil, buildUserInfo(serviceInstance.Spec.UserInfo, log))
239239
if err != nil {
240240
log.Error(err, fmt.Sprintf("failed to update service instance with ID %s", serviceInstance.Status.InstanceID))
241241
if isTransientError(err, log) {
@@ -281,7 +281,7 @@ func (r *ServiceInstanceReconciler) deleteInstance(ctx context.Context, smClient
281281
}
282282

283283
log.Info(fmt.Sprintf("Deleting instance with id %v from SM", serviceInstance.Status.InstanceID))
284-
operationURL, deprovisionErr := smClient.Deprovision(serviceInstance.Status.InstanceID, nil, serviceInstance.Spec.UserInfo.Username)
284+
operationURL, deprovisionErr := smClient.Deprovision(serviceInstance.Status.InstanceID, nil, buildUserInfo(serviceInstance.Spec.UserInfo, log))
285285
if deprovisionErr != nil {
286286
if isTransientError(deprovisionErr, log) {
287287
return r.markAsTransientError(ctx, smTypes.DELETE, deprovisionErr.Error(), serviceInstance, log)

0 commit comments

Comments
 (0)