Skip to content

Commit 8e0d968

Browse files
committed
RHINENG-21760: use helper function in Kessel middleware
Uses `ListWorkspace` helper function from kessel/rbac instead of custom implementation that used StreamListObjects directly.
1 parent f648e74 commit 8e0d968

1 file changed

Lines changed: 4 additions & 27 deletions

File tree

manager/middlewares/kessel.go

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"app/base/utils"
55
"context"
66
"fmt"
7-
"io"
87
"net/http"
98
"strings"
109
"time"
@@ -16,6 +15,7 @@ import (
1615

1716
"github.com/project-kessel/kessel-sdk-go/kessel/auth"
1817
kesselv2 "github.com/project-kessel/kessel-sdk-go/kessel/inventory/v1beta2"
18+
kesselRbacV2 "github.com/project-kessel/kessel-sdk-go/kessel/rbac/v2"
1919
)
2020

2121
var credentials = auth.NewOAuth2ClientCredentials(
@@ -35,18 +35,6 @@ func setupClient() (kesselv2.KesselInventoryServiceClient, *grpc.ClientConn, err
3535
return clientBuilder.Build()
3636
}
3737

38-
func buildSubject(xrhid *identity.XRHID) *kesselv2.SubjectReference {
39-
return &kesselv2.SubjectReference{
40-
Resource: &kesselv2.ResourceReference{
41-
ResourceType: "principal",
42-
ResourceId: fmt.Sprintf("redhat/%s", xrhid.Identity.User.UserID),
43-
Reporter: &kesselv2.ReporterReference{
44-
Type: "rbac",
45-
},
46-
},
47-
}
48-
}
49-
5038
func processWorkspaces(workspaces []*kesselv2.StreamedListObjectsResponse) (map[string]string, error) {
5139
groups := make([]string, 0, len(workspaces))
5240
for _, workspace := range workspaces {
@@ -88,22 +76,11 @@ func useStreamedListObjects(
8876
sloReqContext, sloContextCancel := context.WithCancel(c)
8977
defer sloContextCancel()
9078

91-
resourceType := "rbac"
92-
stream, err := client.StreamedListObjects(sloReqContext, &kesselv2.StreamedListObjectsRequest{
93-
ObjectType: &kesselv2.RepresentationType{
94-
ResourceType: "workspace",
95-
ReporterType: &resourceType,
96-
},
97-
Relation: permission,
98-
Subject: buildSubject(xrhid),
99-
})
100-
if err != nil {
101-
return nil, 0, errors.Wrap(err, "failed to establish a gRPC stream with Kessel")
102-
}
103-
10479
workspaces := make([]*kesselv2.StreamedListObjectsResponse, 0)
10580
start := time.Now()
106-
for res, err := stream.Recv(); err != io.EOF; res, err = stream.Recv() {
81+
for res, err := range kesselRbacV2.ListWorkspaces(
82+
sloReqContext, client, kesselRbacV2.PrincipalSubject(xrhid.Identity.User.UserID, "redhat"), permission, "",
83+
) {
10784
if err != nil {
10885
return nil, time.Since(start), errors.Wrap(err, "failed to receive all from Kessel")
10986
}

0 commit comments

Comments
 (0)