Skip to content

Commit

Permalink
warden/group: add rollback to transactions
Browse files Browse the repository at this point in the history
  • Loading branch information
Aeneas Rekkas (arekkas) committed Jun 5, 2017
1 parent e88fdb7 commit 9b48b75
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions warden/group/manager_sql.go
Expand Up @@ -81,13 +81,20 @@ func (m *SQLManager) AddGroupMembers(group string, subjects []string) error {
if err != nil {
return errors.Wrap(err, "Could not begin transaction")
}

for _, subject := range subjects {
if _, err := tx.Exec(m.DB.Rebind("INSERT INTO hydra_warden_group_member (group_id, member) VALUES (?, ?)"), group, subject); err != nil {
if err := tx.Rollback(); err != nil {
return errors.WithStack(err)
}
return errors.WithStack(err)
}
}

if err := tx.Commit(); err != nil {
if err := tx.Rollback(); err != nil {
return errors.WithStack(err)
}
return errors.Wrap(err, "Could not commit transaction")
}
return nil
Expand All @@ -100,11 +107,17 @@ func (m *SQLManager) RemoveGroupMembers(group string, subjects []string) error {
}
for _, subject := range subjects {
if _, err := m.DB.Exec(m.DB.Rebind("DELETE FROM hydra_warden_group_member WHERE member=? AND group_id=?"), subject, group); err != nil {
if err := tx.Rollback(); err != nil {
return errors.WithStack(err)
}
return errors.WithStack(err)
}
}

if err := tx.Commit(); err != nil {
if err := tx.Rollback(); err != nil {
return errors.WithStack(err)
}
return errors.Wrap(err, "Could not commit transaction")
}
return nil
Expand Down

0 comments on commit 9b48b75

Please sign in to comment.