Skip to content

Commit

Permalink
vpcagent: add cmp() for search and pre-cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
yousong committed Apr 24, 2020
1 parent e6bb339 commit 4d3eba9
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions pkg/vpcagent/ovn/cmp.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package ovn

import (
"yunion.io/x/onecloud/pkg/vpcagent/ovnutil"
)

// cmp scans the database for irows. For those present, mark them with ocver.
// If all rows are found, return true to indicate this. Otherwise return as
// 2nd value the args to destroy these found records
func cmp(db *ovnutil.OVNNorthbound, ocver string, irows ...ovnutil.IRow) (bool, []string) {
irowsFound := make([]ovnutil.IRow, 0, len(irows))

for _, irow := range irows {
irowFound := db.FindOneMatchNonZeros(irow)
if irowFound != nil {
irowsFound = append(irowsFound, irowFound)
}
}
// mark them anyway even if not all found, to avoid the destroy
// call at sweep stage
for _, irowFound := range irowsFound {
irowFound.OvnSetExternalIds(externalKeyOcVersion, ocver)
}
if len(irowsFound) == len(irows) {
return true, nil
}
args := ovnutil.OvnNbctlArgsDestroy(irowsFound)
return false, args
}

0 comments on commit 4d3eba9

Please sign in to comment.