From e3d038da8ab679e182beea368230fd9c80690346 Mon Sep 17 00:00:00 2001 From: bcmmbaga Date: Fri, 16 Feb 2024 13:10:37 +0300 Subject: [PATCH] debug google workspace request --- management/server/idp/google_workspace.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/management/server/idp/google_workspace.go b/management/server/idp/google_workspace.go index 896fb707b..c78a23e1b 100644 --- a/management/server/idp/google_workspace.go +++ b/management/server/idp/google_workspace.go @@ -5,6 +5,8 @@ import ( "encoding/base64" "fmt" "net/http" + "os" + "strconv" "time" log "github.com/sirupsen/logrus" @@ -150,19 +152,37 @@ func (gm *GoogleWorkspaceManager) GetAllAccounts() (map[string][]*UserData, erro // getAllUsers returns all users in a Google Workspace account filtered by customer ID. func (gm *GoogleWorkspaceManager) getAllUsers() ([]*UserData, error) { + var usersLimit int64 = 500 + if maxUsersLimitEnv := os.Getenv("GOOGLE_WORKSPACE_USERS_LIMIT"); maxUsersLimitEnv != "" { + maxUsersLimit, err := strconv.Atoi(maxUsersLimitEnv) + if err == nil { + log.Debugf("GOOGLE_WORKSPACE_USERS_LIMIT env is set using %d as users limit", maxUsersLimit) + usersLimit = int64(maxUsersLimit) + } + } else { + log.Debugf("GOOGLE_WORKSPACE_USERS_LIMIT env is not set using default users limit 500") + } + users := make([]*UserData, 0) pageToken := "" for { - call := gm.usersService.List().Customer(gm.CustomerID).MaxResults(500) + call := gm.usersService.List().Customer(gm.CustomerID).MaxResults(usersLimit) if pageToken != "" { call.PageToken(pageToken) } resp, err := call.Do() if err != nil { + log.Debugf("failed to retrieve users from workspace error: %s, http status: %d, headers: %v", + err.Error(), + resp.HTTPStatusCode, + resp.Header, + ) return nil, err } + log.Debugf("fetched %d users from workspace", len(resp.Users)) + for _, user := range resp.Users { users = append(users, parseGoogleWorkspaceUser(user)) }