Skip to content

Commit 375af59

Browse files
Decommision LDAP 2
Signed-off-by: Lukasz Gryglicki <[email protected]>
1 parent 4421f20 commit 375af59

File tree

3 files changed

+154
-119
lines changed

3 files changed

+154
-119
lines changed

cla-backend-go/signatures/repository.go

Lines changed: 102 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -2126,6 +2126,11 @@ func (repo repository) ValidateProjectRecord(ctx context.Context, signatureID, n
21262126
expressionAttributeValues[":a"] = &dynamodb.AttributeValue{BOOL: aws.Bool(true)}
21272127
updateExpression = updateExpression + " #A = :a,"
21282128

2129+
// Set embago acknowledged flag
2130+
// expressionAttributeNames["#E"] = aws.String("signature_embargo_acked")
2131+
// expressionAttributeValues[":e"] = &dynamodb.AttributeValue{BOOL: aws.Bool(true)}
2132+
// updateExpression = updateExpression + " #E = :e,"
2133+
21292134
expressionAttributeNames["#S"] = aws.String("note")
21302135
expressionAttributeValues[":s"] = &dynamodb.AttributeValue{S: aws.String(note)}
21312136
updateExpression = updateExpression + " #S = :s"
@@ -2527,6 +2532,7 @@ func (repo repository) CreateProjectCompanyEmployeeSignature(ctx context.Context
25272532
SignatureReferenceID: employeeUserModel.UserID,
25282533
SignatureApproved: true,
25292534
SignatureSigned: true,
2535+
SignatureEmbargoAcked: true,
25302536
SignatureDocumentMajorVersion: 2,
25312537
SignatureDocumentMinorVersion: 0,
25322538
SigTypeSignedApprovedID: fmt.Sprintf("ecla#true#true#%s", companyModel.CompanyID),
@@ -3199,10 +3205,10 @@ func (repo repository) UpdateApprovalList(ctx context.Context, claManager *model
31993205
PageSize: utils.Int64(10),
32003206
}
32013207

3202-
// authUser := auth.User{
3203-
// Email: claManager.LfEmail.String(),
3204-
// UserName: claManager.LfUsername,
3205-
// }
3208+
//authUser := auth.User{
3209+
// Email: claManager.LfEmail.String(),
3210+
// UserName: claManager.LfUsername,
3211+
//}
32063212

32073213
// Keep track of gerrit users under a give CLA Group
32083214
var gerritICLAECLAs []string
@@ -3213,8 +3219,8 @@ func (repo repository) UpdateApprovalList(ctx context.Context, claManager *model
32133219
goRoutines := 2
32143220
gerritResultChannel := make(chan *GerritUserResponse, goRoutines)
32153221
gerritQueryStartTime, _ := utils.CurrentTime()
3216-
// go repo.getGerritUsers(ctx, &authUser, projectID, utils.ClaTypeICLA, gerritResultChannel)
3217-
// go repo.getGerritUsers(ctx, &authUser, projectID, utils.ClaTypeECLA, gerritResultChannel)
3222+
//go repo.getGerritUsers(ctx, &authUser, projectID, utils.ClaTypeICLA, gerritResultChannel)
3223+
//go repo.getGerritUsers(ctx, &authUser, projectID, utils.ClaTypeECLA, gerritResultChannel)
32183224

32193225
log.WithFields(f).Debug("waiting on gerrit user query results from 2 go routines...")
32203226
for i := 0; i < goRoutines; i++ {
@@ -3312,19 +3318,19 @@ func (repo repository) UpdateApprovalList(ctx context.Context, claManager *model
33123318
}
33133319
} else {
33143320

3315-
// // Update gerrit user
3316-
// if utils.StringInSlice(user.LfUsername, gerritICLAECLAs) {
3317-
// // gerritIclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeICLA)
3318-
// if gerritIclaErr != nil {
3319-
// msg := fmt.Sprintf("unable to remove gerrit user: %s from group: %s", user.LfUsername, approvalList.ClaGroupID)
3320-
// log.WithFields(f).WithError(gerritIclaErr).Warn(msg)
3321-
// }
3322-
// eclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeECLA)
3323-
// if eclaErr != nil {
3324-
// msg := fmt.Sprintf("unable to remove gerrit user: %s from group: %s", user.LfUsername, approvalList.ClaGroupID)
3325-
// log.WithFields(f).WithError(eclaErr).Warn(msg)
3326-
// }
3327-
// }
3321+
// Update gerrit user
3322+
// if utils.StringInSlice(user.LfUsername, gerritICLAECLAs) {
3323+
// gerritIclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeICLA)
3324+
// if gerritIclaErr != nil {
3325+
// msg := fmt.Sprintf("unable to remove gerrit user: %s from group: %s", user.LfUsername, approvalList.ClaGroupID)
3326+
// log.WithFields(f).WithError(gerritIclaErr).Warn(msg)
3327+
// }
3328+
// eclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeECLA)
3329+
// if eclaErr != nil {
3330+
// msg := fmt.Sprintf("unable to remove gerrit user: %s from group: %s", user.LfUsername, approvalList.ClaGroupID)
3331+
// log.WithFields(f).WithError(eclaErr).Warn(msg)
3332+
// }
3333+
// }
33283334
results <- &ICLAUserResponse{
33293335
ICLASignature: &models.IclaSignature{
33303336
GithubUsername: icla.UserGHUsername,
@@ -4052,10 +4058,10 @@ func (repo repository) verifyUserApprovals(ctx context.Context, userID, signatur
40524058
}
40534059
email := getBestEmail(user)
40544060

4055-
// authUser := auth.User{
4056-
// Email: claManager.LfEmail.String(),
4057-
// UserName: claManager.LfUsername,
4058-
// }
4061+
//authUser := auth.User{
4062+
// Email: claManager.LfEmail.String(),
4063+
// UserName: claManager.LfUsername,
4064+
//}
40594065

40604066
if approvalList.Criteria == utils.EmailDomainCriteria {
40614067
// Handle Domains
@@ -4071,20 +4077,20 @@ func (repo repository) verifyUserApprovals(ctx context.Context, userID, signatur
40714077
return user, err
40724078
}
40734079

4074-
// // Update Gerrit group users
4075-
// if utils.StringInSlice(user.LfUsername, approvalList.GerritICLAECLAs) {
4076-
// log.WithFields(f).Debugf("removing gerrit user:%s from claGroup: %s ...", user.LfUsername, approvalList.ClaGroupID)
4077-
// iclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeICLA)
4078-
// if iclaErr != nil {
4079-
// msg := fmt.Sprintf("unable to remove gerrit user:%s from group:%s", user.LfUsername, approvalList.ClaGroupID)
4080-
// log.WithFields(f).Warn(msg)
4081-
// }
4082-
// eclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeECLA)
4083-
// if eclaErr != nil {
4084-
// msg := fmt.Sprintf("unable to remove gerrit user:%s from group:%s", user.LfUsername, approvalList.ClaGroupID)
4085-
// log.WithFields(f).Warn(msg)
4086-
// }
4087-
// }
4080+
// Update Gerrit group users
4081+
// if utils.StringInSlice(user.LfUsername, approvalList.GerritICLAECLAs) {
4082+
// log.WithFields(f).Debugf("removing gerrit user:%s from claGroup: %s ...", user.LfUsername, approvalList.ClaGroupID)
4083+
// iclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeICLA)
4084+
// if iclaErr != nil {
4085+
// msg := fmt.Sprintf("unable to remove gerrit user:%s from group:%s", user.LfUsername, approvalList.ClaGroupID)
4086+
// log.WithFields(f).Warn(msg)
4087+
// }
4088+
// eclaErr := repo.gerritService.RemoveUserFromGroup(ctx, &authUser, approvalList.ClaGroupID, user.LfUsername, utils.ClaTypeECLA)
4089+
// if eclaErr != nil {
4090+
// msg := fmt.Sprintf("unable to remove gerrit user:%s from group:%s", user.LfUsername, approvalList.ClaGroupID)
4091+
// log.WithFields(f).Warn(msg)
4092+
// }
4093+
// }
40884094
}
40894095
}
40904096
} else if approvalList.Criteria == utils.GitHubOrgCriteria {
@@ -4545,6 +4551,7 @@ func (repo repository) getIntermediateICLAResponse(f logrus.Fields, dbSignatures
45454551
LfUsername: sig.UserLFUsername,
45464552
SignatureApproved: sig.SignatureApproved,
45474553
SignatureSigned: sig.SignatureSigned,
4554+
SignatureEmbargoAcked: true,
45484555
SignatureModified: sig.DateModified,
45494556
SignatureID: sig.SignatureID,
45504557
SignedOn: sigSignedTime,
@@ -4627,6 +4634,19 @@ func (repo repository) GetClaGroupCorporateContributors(ctx context.Context, cla
46274634
totalCountChannel := make(chan int64, 1)
46284635
go repo.getTotalCorporateContributorCount(ctx, claGroupID, companyID, searchTerm, totalCountChannel)
46294636

4637+
totalCount := <-totalCountChannel
4638+
log.WithFields(f).Debugf("total corporate contributor count: %d", totalCount)
4639+
// If the page size is nil, set it to the default
4640+
if pageSize == nil {
4641+
pageSize = aws.Int64(10)
4642+
}
4643+
4644+
if *pageSize > totalCount {
4645+
pageSize = aws.Int64(totalCount)
4646+
}
4647+
4648+
log.WithFields(f).Debugf("total corporate contributor count: %d, page size: %d", totalCount, *pageSize)
4649+
46304650
condition := expression.Key("signature_project_id").Equal(expression.Value(claGroupID))
46314651
// if companyID != nil {
46324652
// sortKey := fmt.Sprintf("%s#%v#%v#%v", utils.ClaTypeECLA, true, true, *companyID)
@@ -4659,11 +4679,6 @@ func (repo repository) GetClaGroupCorporateContributors(ctx context.Context, cla
46594679
return nil, err
46604680
}
46614681

4662-
// If the page size is nil, set it to the default
4663-
if pageSize == nil {
4664-
pageSize = aws.Int64(10)
4665-
}
4666-
46674682
// Assemble the query input parameters
46684683
queryInput := &dynamodb.QueryInput{
46694684
ExpressionAttributeNames: expr.Names(),
@@ -4689,9 +4704,14 @@ func (repo repository) GetClaGroupCorporateContributors(ctx context.Context, cla
46894704
}
46904705

46914706
out := &models.CorporateContributorList{List: make([]*models.CorporateContributor, 0)}
4707+
if totalCount == 0 {
4708+
return out, nil
4709+
}
46924710
var lastEvaluatedKey string
46934711

4694-
for ok := true; ok; ok = lastEvaluatedKey != "" {
4712+
currentCount := int64(0)
4713+
4714+
for ok := true; ok; ok = lastEvaluatedKey != "" && currentCount < *pageSize {
46954715
// Make the DynamoDB Query API call
46964716
log.WithFields(f).Debug("querying signatures...")
46974717
results, queryErr := repo.dynamoDBClient.Query(queryInput)
@@ -4765,26 +4785,28 @@ func (repo repository) GetClaGroupCorporateContributors(ctx context.Context, cla
47654785
SignatureApproved: sig.SignatureApproved,
47664786
SignatureSigned: sig.SignatureSigned,
47674787
})
4788+
4789+
// Increment the current count
4790+
currentCount++
4791+
if currentCount >= *pageSize {
4792+
break
4793+
}
47684794
}
47694795

4770-
if results.LastEvaluatedKey["signature_id"] != nil {
4796+
if results.LastEvaluatedKey["signature_id"] != nil && currentCount < *pageSize {
47714797
lastEvaluatedKey = *results.LastEvaluatedKey["signature_id"].S
47724798
queryInput.ExclusiveStartKey = results.LastEvaluatedKey
47734799
} else {
47744800
lastEvaluatedKey = ""
47754801
}
47764802

4777-
if int64(len(out.List)) >= *pageSize {
4778-
break
4779-
}
4780-
47814803
}
47824804
sort.Slice(out.List, func(i, j int) bool {
47834805
return out.List[i].Name < out.List[j].Name
47844806
})
47854807

4786-
out.ResultCount = int64(len(out.List))
4787-
out.TotalCount = <-totalCountChannel
4808+
out.ResultCount = currentCount
4809+
out.TotalCount = totalCount
47884810
out.NextKey = lastEvaluatedKey
47894811

47904812
return out, nil
@@ -4916,7 +4938,10 @@ func (repo repository) ActivateSignature(ctx context.Context, signatureID string
49164938
}
49174939

49184940
// Build the expression
4919-
expressionUpdate := expression.Set(expression.Name("signature_approved"), expression.Value(true)).Set(expression.Name("signature_signed"), expression.Value(false))
4941+
expressionUpdate := expression.
4942+
Set(expression.Name("signature_approved"), expression.Value(true)).
4943+
Set(expression.Name("signature_signed"), expression.Value(false)).
4944+
Set(expression.Name("signature_embargo_acked"), expression.Value(true))
49204945

49214946
expr, err := expression.NewBuilder().WithUpdate(expressionUpdate).Build()
49224947
if err != nil {
@@ -4946,32 +4971,32 @@ func (repo repository) ActivateSignature(ctx context.Context, signatureID string
49464971
}
49474972

49484973
// getGerritUsers is a helper function to fetch the list of gerrit users for the specified type - results are returned through the specified results channel
4949-
// func (repo repository) getGerritUsers(ctx context.Context, authUser *auth.User, projectSFID string, claType string, gerritResultChannel chan *GerritUserResponse) {
4950-
// // f := logrus.Fields{
4951-
// // "functionName": "v1.signatures.repository.getGerritUsers",
4952-
// // utils.XREQUESTID: ctx.Value(utils.XREQUESTID),
4953-
// // "projectSFID": projectSFID,
4954-
// // }
4955-
// // log.WithFields(f).Debugf("querying gerrit for %s gerrit users...", claType)
4956-
// // gerritIclaUsers, getGerritQueryErr := repo.gerritService.GetUsersOfGroup(ctx, authUser, projectSFID, claType)
4957-
// // if getGerritQueryErr != nil || gerritIclaUsers == nil {
4958-
// // msg := fmt.Sprintf("unable to fetch gerrit users for claGroup: %s , claType: %s ", projectSFID, claType)
4959-
// // log.WithFields(f).WithError(getGerritQueryErr).Warn(msg)
4960-
// // gerritResultChannel <- &GerritUserResponse{
4961-
// // gerritGroupResponse: nil,
4962-
// // queryType: claType,
4963-
// // Error: errors.New(msg),
4964-
// // }
4965-
// // return
4966-
// // }
4967-
4968-
// // log.WithFields(f).Debugf("retrieved %d gerrit users for CLA type: %s...", len(gerritIclaUsers.Members), claType)
4969-
// gerritResultChannel <- &GerritUserResponse{
4970-
// gerritGroupResponse: nil,
4971-
// queryType: claType,
4972-
// Error: nil,
4973-
// }
4974-
// }
4974+
//func (repo repository) getGerritUsers(ctx context.Context, authUser *auth.User, projectSFID string, claType string, gerritResultChannel chan *GerritUserResponse) {
4975+
// f := logrus.Fields{
4976+
// "functionName": "v1.signatures.repository.getGerritUsers",
4977+
// utils.XREQUESTID: ctx.Value(utils.XREQUESTID),
4978+
// "projectSFID": projectSFID,
4979+
// }
4980+
// log.WithFields(f).Debugf("querying gerrit for %s gerrit users...", claType)
4981+
// gerritIclaUsers, getGerritQueryErr := repo.gerritService.GetUsersOfGroup(ctx, authUser, projectSFID, claType)
4982+
// if getGerritQueryErr != nil || gerritIclaUsers == nil {
4983+
// msg := fmt.Sprintf("unable to fetch gerrit users for claGroup: %s , claType: %s ", projectSFID, claType)
4984+
// log.WithFields(f).WithError(getGerritQueryErr).Warn(msg)
4985+
// gerritResultChannel <- &GerritUserResponse{
4986+
// gerritGroupResponse: nil,
4987+
// queryType: claType,
4988+
// Error: errors.New(msg),
4989+
// }
4990+
// return
4991+
// }
4992+
//
4993+
// log.WithFields(f).Debugf("retrieved %d gerrit users for CLA type: %s...", len(gerritIclaUsers.Members), claType)
4994+
// gerritResultChannel <- &GerritUserResponse{
4995+
// gerritGroupResponse: gerritIclaUsers,
4996+
// queryType: claType,
4997+
// Error: nil,
4998+
// }
4999+
//}
49755000

49765001
func buildNextKey(indexName string, signature *models.Signature) (string, error) {
49775002
nextKey := make(map[string]*dynamodb.AttributeValue)

0 commit comments

Comments
 (0)