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
2121var 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-
5038func 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