12018: Skip CSV register if one of its fields is empty
authorLucas Di Pentima <ldipentima@veritasgenetics.com>
Wed, 18 Oct 2017 22:39:14 +0000 (19:39 -0300)
committerLucas Di Pentima <ldipentima@veritasgenetics.com>
Wed, 18 Oct 2017 22:39:14 +0000 (19:39 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima@veritasgenetics.com>

tools/arv-sync-groups/arv-sync-groups.go

index c63ae9edddb7a2c3f5c40227663e612e145f7cc1..58fa77557fe372a5e248abf802e1d99316a6e399 100644 (file)
@@ -357,6 +357,7 @@ func doMain() error {
        groupsCreated := 0
        membersAdded := 0
        membersRemoved := 0
+       membersSkipped := 0
 
        csvReader := csv.NewReader(f)
        for {
@@ -369,9 +370,15 @@ func doMain() error {
                }
                groupName := record[0]
                groupMember := record[1] // User ID (username or email)
+               if groupName == "" || groupMember == "" {
+                       log.Printf("Warning: CSV record has at least one field empty (%s, %s). Skipping", groupName, groupMember)
+                       membersSkipped++
+                       continue
+               }
                if _, found := userIDToUUID[groupMember]; !found {
                        // User not present on the system, skip.
                        log.Printf("Warning: there's no user with %s %q on the system, skipping.", *userID, groupMember)
+                       membersSkipped++
                        continue
                }
                if _, found := groupNameToUUID[groupName]; !found {
@@ -471,7 +478,7 @@ func doMain() error {
                        membersRemoved++
                }
        }
-       log.Printf("Groups created: %d, members added: %d, members removed: %d", groupsCreated, membersAdded, membersRemoved)
+       log.Printf("Groups created: %d, members added: %d, members removed: %d, members skipped: %d", groupsCreated, membersAdded, membersRemoved, membersSkipped)
 
        return nil
 }