X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/902c3317440f81077ea561b621c8d46dcb689013..46b11ba2ed71e2c074e9e6c8f5b9f7a003e7067f:/services/datamanager/datamanager.go diff --git a/services/datamanager/datamanager.go b/services/datamanager/datamanager.go index 9cfd2ee5d7..a9306ce83a 100644 --- a/services/datamanager/datamanager.go +++ b/services/datamanager/datamanager.go @@ -44,7 +44,7 @@ func main() { if minutesBetweenRuns == 0 { err := singlerun(makeArvadosClient()) if err != nil { - log.Fatalf("Got an error: %v", err) + log.Fatalf("singlerun: %v", err) } } else { waitTime := time.Minute * time.Duration(minutesBetweenRuns) @@ -52,7 +52,7 @@ func main() { log.Println("Beginning Run") err := singlerun(makeArvadosClient()) if err != nil { - log.Printf("Got an error: %v", err) + log.Printf("singlerun: %v", err) } log.Printf("Sleeping for %d minutes", minutesBetweenRuns) time.Sleep(waitTime) @@ -68,16 +68,12 @@ func makeArvadosClient() arvadosclient.ArvadosClient { return arv } -var dataManagerToken string - func singlerun(arv arvadosclient.ArvadosClient) error { var err error - if is_admin, err := util.UserIsAdmin(arv); err != nil { - log.Printf("Error querying current arvados user %s", err.Error()) - return err - } else if !is_admin { - log.Printf("Current user is not an admin. Datamanager can only be run by admins.") - return errors.New("Current user is not an admin. Datamanager can only be run by admins.") + if isAdmin, err := util.UserIsAdmin(arv); err != nil { + return errors.New("Error verifying admin token: " + err.Error()) + } else if !isAdmin { + return errors.New("Current user is not an admin. Datamanager requires a privileged token.") } var arvLogger *logger.Logger @@ -93,21 +89,6 @@ func singlerun(arv arvadosclient.ArvadosClient) error { arvLogger.AddWriteHook(loggerutil.LogMemoryAlloc) } - // Verify that datamanager token belongs to an admin user - if dataManagerToken == "" { - dataManagerToken = keep.GetDataManagerToken(arvLogger) - } - origArvToken := arv.ApiToken - arv.ApiToken = dataManagerToken - if is_admin, err := util.UserIsAdmin(arv); err != nil { - log.Printf("Error querying arvados user for data manager token %s", err.Error()) - return err - } else if !is_admin { - log.Printf("Datamanager token does not belong to an admin user.") - return errors.New("Datamanager token does not belong to an admin user.") - } - arv.ApiToken = origArvToken - var ( dataFetcher summary.DataFetcher readCollections collection.ReadCollections @@ -177,14 +158,13 @@ func singlerun(arv arvadosclient.ArvadosClient) error { if trashErr != nil { return err - } else { - keep.SendTrashLists(dataManagerToken, kc, trashLists) } + keep.SendTrashLists(kc, trashLists) return nil } -// Returns a data fetcher that fetches data from remote servers. +// BuildDataFetcher returns a data fetcher that fetches data from remote servers. func BuildDataFetcher(arv arvadosclient.ArvadosClient) summary.DataFetcher { return func(arvLogger *logger.Logger, readCollections *collection.ReadCollections,