add app shutdown to make sure the goroutines finish and all process are closed (#8629)
* run the send email verification as goroutine as well * add app shutdown to make sure all go routines finish
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
5511106d93
Коммит
51a6e95f58
@@ -1043,9 +1043,11 @@ func (a *App) UpdateUser(user *model.User, sendNotifications bool) (*model.User,
|
|||||||
})
|
})
|
||||||
|
|
||||||
if a.Config().EmailSettings.RequireEmailVerification {
|
if a.Config().EmailSettings.RequireEmailVerification {
|
||||||
if err := a.SendEmailVerification(rusers[0]); err != nil {
|
a.Go(func() {
|
||||||
l4g.Error(err.Error())
|
if err := a.SendEmailVerification(rusers[0]); err != nil {
|
||||||
}
|
l4g.Error(err.Error())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ func createChannelCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
name, errn := command.Flags().GetString("name")
|
name, errn := command.Flags().GetString("name")
|
||||||
if errn != nil || name == "" {
|
if errn != nil || name == "" {
|
||||||
@@ -185,6 +186,7 @@ func removeChannelUsersCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return errors.New("Not enough arguments.")
|
return errors.New("Not enough arguments.")
|
||||||
@@ -218,6 +220,7 @@ func addChannelUsersCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return errors.New("Not enough arguments.")
|
return errors.New("Not enough arguments.")
|
||||||
@@ -251,6 +254,7 @@ func archiveChannelsCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Enter at least one channel to archive.")
|
return errors.New("Enter at least one channel to archive.")
|
||||||
@@ -275,6 +279,7 @@ func deleteChannelsCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Enter at least one channel to delete.")
|
return errors.New("Enter at least one channel to delete.")
|
||||||
@@ -315,6 +320,7 @@ func moveChannelsCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return errors.New("Enter the destination team and at least one channel to move.")
|
return errors.New("Enter the destination team and at least one channel to move.")
|
||||||
@@ -389,6 +395,7 @@ func listChannelsCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Enter at least one team.")
|
return errors.New("Enter at least one team.")
|
||||||
@@ -423,6 +430,7 @@ func restoreChannelsCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Enter at least one channel.")
|
return errors.New("Enter at least one channel.")
|
||||||
@@ -447,6 +455,7 @@ func modifyChannelCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) != 1 {
|
if len(args) != 1 {
|
||||||
return errors.New("Enter at one channel to modify.")
|
return errors.New("Enter at one channel to modify.")
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ func moveCommandCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return errors.New("Enter the destination team and at least one comamnd to move.")
|
return errors.New("Enter the destination team and at least one comamnd to move.")
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ func slackImportCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) != 2 {
|
if len(args) != 2 {
|
||||||
return errors.New("Incorrect number of arguments.")
|
return errors.New("Incorrect number of arguments.")
|
||||||
@@ -86,6 +87,7 @@ func bulkImportCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
apply, err := command.Flags().GetBool("apply")
|
apply, err := command.Flags().GetBool("apply")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ func ldapSyncCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if ldapI := a.Ldap; ldapI != nil {
|
if ldapI := a.Ldap; ldapI != nil {
|
||||||
job, err := ldapI.StartSynchronizeJob(true)
|
job, err := ldapI.StartSynchronizeJob(true)
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ func uploadLicenseCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) != 1 {
|
if len(args) != 1 {
|
||||||
return errors.New("Enter one license file to upload")
|
return errors.New("Enter one license file to upload")
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ func messageExportCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if !*a.Config().MessageExportSettings.EnableExport {
|
if !*a.Config().MessageExportSettings.EnableExport {
|
||||||
return errors.New("ERROR: The message export feature is not enabled")
|
return errors.New("ERROR: The message export feature is not enabled")
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ func resetCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
confirmFlag, _ := command.Flags().GetBool("confirm")
|
confirmFlag, _ := command.Flags().GetBool("confirm")
|
||||||
if !confirmFlag {
|
if !confirmFlag {
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ func makeSystemAdminCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Enter at least one user.")
|
return errors.New("Enter at least one user.")
|
||||||
@@ -68,6 +69,7 @@ func makeMemberCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Enter at least one user.")
|
return errors.New("Enter at least one user.")
|
||||||
|
|||||||
@@ -134,6 +134,8 @@ func sampleDataCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
seed, err := command.Flags().GetInt64("seed")
|
seed, err := command.Flags().GetInt64("seed")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("Invalid seed parameter")
|
return errors.New("Invalid seed parameter")
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ func createTeamCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
name, errn := command.Flags().GetString("name")
|
name, errn := command.Flags().GetString("name")
|
||||||
if errn != nil || name == "" {
|
if errn != nil || name == "" {
|
||||||
@@ -119,6 +120,7 @@ func removeUsersCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return errors.New("Not enough arguments.")
|
return errors.New("Not enough arguments.")
|
||||||
@@ -152,6 +154,7 @@ func addUsersCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return errors.New("Not enough arguments.")
|
return errors.New("Not enough arguments.")
|
||||||
@@ -185,6 +188,7 @@ func deleteTeamsCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Not enough arguments.")
|
return errors.New("Not enough arguments.")
|
||||||
@@ -231,6 +235,7 @@ func listTeamsCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
teams, err2 := a.GetAllTeams()
|
teams, err2 := a.GetAllTeams()
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
|
|||||||
@@ -254,12 +254,14 @@ func userActivateCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Expected at least one argument. See help text for details.")
|
return errors.New("Expected at least one argument. See help text for details.")
|
||||||
}
|
}
|
||||||
|
|
||||||
changeUsersActiveStatus(a, args, true)
|
changeUsersActiveStatus(a, args, true)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,12 +295,14 @@ func userDeactivateCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Expected at least one argument. See help text for details.")
|
return errors.New("Expected at least one argument. See help text for details.")
|
||||||
}
|
}
|
||||||
|
|
||||||
changeUsersActiveStatus(a, args, false)
|
changeUsersActiveStatus(a, args, false)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,6 +311,7 @@ func userCreateCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
username, erru := command.Flags().GetString("username")
|
username, erru := command.Flags().GetString("username")
|
||||||
if erru != nil || username == "" {
|
if erru != nil || username == "" {
|
||||||
@@ -352,6 +357,7 @@ func userInviteCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return errors.New("Expected at least two arguments. See help text for details.")
|
return errors.New("Expected at least two arguments. See help text for details.")
|
||||||
@@ -391,6 +397,7 @@ func resetUserPasswordCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) != 2 {
|
if len(args) != 2 {
|
||||||
return errors.New("Expected two arguments. See help text for details.")
|
return errors.New("Expected two arguments. See help text for details.")
|
||||||
@@ -414,6 +421,7 @@ func updateUserEmailCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
newEmail := args[1]
|
newEmail := args[1]
|
||||||
|
|
||||||
@@ -432,7 +440,7 @@ func updateUserEmailCmdF(command *cobra.Command, args []string) error {
|
|||||||
|
|
||||||
user.Email = newEmail
|
user.Email = newEmail
|
||||||
_, errUpdate := a.UpdateUser(user, true)
|
_, errUpdate := a.UpdateUser(user, true)
|
||||||
if err != nil {
|
if errUpdate != nil {
|
||||||
return errUpdate
|
return errUpdate
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,6 +452,7 @@ func resetUserMfaCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Expected at least one argument. See help text for details.")
|
return errors.New("Expected at least one argument. See help text for details.")
|
||||||
@@ -469,6 +478,7 @@ func deleteUserCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Expected at least one argument. See help text for details.")
|
return errors.New("Expected at least one argument. See help text for details.")
|
||||||
@@ -510,6 +520,7 @@ func deleteAllUsersCommandF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) > 0 {
|
if len(args) > 0 {
|
||||||
return errors.New("Expected zero arguments.")
|
return errors.New("Expected zero arguments.")
|
||||||
@@ -536,6 +547,7 @@ func deleteAllUsersCommandF(command *cobra.Command, args []string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmd.CommandPrettyPrintln("All user accounts successfully deleted.")
|
cmd.CommandPrettyPrintln("All user accounts successfully deleted.")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -551,6 +563,7 @@ func migrateAuthToLdapCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
fromAuth := args[0]
|
fromAuth := args[0]
|
||||||
matchField := args[2]
|
matchField := args[2]
|
||||||
@@ -587,6 +600,7 @@ func migrateAuthToSamlCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
dryRunFlag, _ := command.Flags().GetBool("dryRun")
|
dryRunFlag, _ := command.Flags().GetBool("dryRun")
|
||||||
autoFlag, _ := command.Flags().GetBool("auto")
|
autoFlag, _ := command.Flags().GetBool("auto")
|
||||||
@@ -642,6 +656,7 @@ func verifyUserCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Expected at least one argument. See help text for details.")
|
return errors.New("Expected at least one argument. See help text for details.")
|
||||||
@@ -667,6 +682,7 @@ func searchUserCmdF(command *cobra.Command, args []string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer a.Shutdown()
|
||||||
|
|
||||||
if len(args) < 1 {
|
if len(args) < 1 {
|
||||||
return errors.New("Expected at least one argument. See help text for details.")
|
return errors.New("Expected at least one argument. See help text for details.")
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user