plugins/database: use context with plugins that use database/sql package (#3691)

This commit is contained in:
Brian Kassouf
2017-12-15 10:26:17 -08:00
committed by GitHub
parent d1b12356d8
commit 1eec51abff
3 changed files with 47 additions and 47 deletions

View File

@@ -105,7 +105,7 @@ func (m *MSSQL) CreateUser(ctx context.Context, statements dbplugin.Statements,
}
// Start a transaction
tx, err := db.Begin()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
return "", "", err
}
@@ -118,7 +118,7 @@ func (m *MSSQL) CreateUser(ctx context.Context, statements dbplugin.Statements,
continue
}
stmt, err := tx.Prepare(dbutil.QueryHelper(query, map[string]string{
stmt, err := tx.PrepareContext(ctx, dbutil.QueryHelper(query, map[string]string{
"name": username,
"password": password,
"expiration": expirationStr,
@@ -127,7 +127,7 @@ func (m *MSSQL) CreateUser(ctx context.Context, statements dbplugin.Statements,
return "", "", err
}
defer stmt.Close()
if _, err := stmt.Exec(); err != nil {
if _, err := stmt.ExecContext(ctx); err != nil {
return "", "", err
}
}
@@ -161,7 +161,7 @@ func (m *MSSQL) RevokeUser(ctx context.Context, statements dbplugin.Statements,
}
// Start a transaction
tx, err := db.Begin()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
return err
}
@@ -174,14 +174,14 @@ func (m *MSSQL) RevokeUser(ctx context.Context, statements dbplugin.Statements,
continue
}
stmt, err := tx.Prepare(dbutil.QueryHelper(query, map[string]string{
stmt, err := tx.PrepareContext(ctx, dbutil.QueryHelper(query, map[string]string{
"name": username,
}))
if err != nil {
return err
}
defer stmt.Close()
if _, err := stmt.Exec(); err != nil {
if _, err := stmt.ExecContext(ctx); err != nil {
return err
}
}
@@ -202,12 +202,12 @@ func (m *MSSQL) revokeUserDefault(ctx context.Context, username string) error {
}
// First disable server login
disableStmt, err := db.Prepare(fmt.Sprintf("ALTER LOGIN [%s] DISABLE;", username))
disableStmt, err := db.PrepareContext(ctx, fmt.Sprintf("ALTER LOGIN [%s] DISABLE;", username))
if err != nil {
return err
}
defer disableStmt.Close()
if _, err := disableStmt.Exec(); err != nil {
if _, err := disableStmt.ExecContext(ctx); err != nil {
return err
}
@@ -215,14 +215,14 @@ func (m *MSSQL) revokeUserDefault(ctx context.Context, username string) error {
// sessions. There cannot be any active sessions before we drop the logins
// This isn't done in a transaction because even if we fail along the way,
// we want to remove as much access as possible
sessionStmt, err := db.Prepare(fmt.Sprintf(
sessionStmt, err := db.PrepareContext(ctx, fmt.Sprintf(
"SELECT session_id FROM sys.dm_exec_sessions WHERE login_name = '%s';", username))
if err != nil {
return err
}
defer sessionStmt.Close()
sessionRows, err := sessionStmt.Query()
sessionRows, err := sessionStmt.QueryContext(ctx)
if err != nil {
return err
}
@@ -243,13 +243,13 @@ func (m *MSSQL) revokeUserDefault(ctx context.Context, username string) error {
// we need to drop the database users before we can drop the login and the role
// This isn't done in a transaction because even if we fail along the way,
// we want to remove as much access as possible
stmt, err := db.Prepare(fmt.Sprintf("EXEC master.dbo.sp_msloginmappings '%s';", username))
stmt, err := db.PrepareContext(ctx, fmt.Sprintf("EXEC master.dbo.sp_msloginmappings '%s';", username))
if err != nil {
return err
}
defer stmt.Close()
rows, err := stmt.Query()
rows, err := stmt.QueryContext(ctx)
if err != nil {
return err
}
@@ -269,13 +269,13 @@ func (m *MSSQL) revokeUserDefault(ctx context.Context, username string) error {
// many permissions as possible right now
var lastStmtError error
for _, query := range revokeStmts {
stmt, err := db.Prepare(query)
stmt, err := db.PrepareContext(ctx, query)
if err != nil {
lastStmtError = err
continue
}
defer stmt.Close()
_, err = stmt.Exec()
_, err = stmt.ExecContext(ctx)
if err != nil {
lastStmtError = err
}
@@ -290,12 +290,12 @@ func (m *MSSQL) revokeUserDefault(ctx context.Context, username string) error {
}
// Drop this login
stmt, err = db.Prepare(fmt.Sprintf(dropLoginSQL, username, username))
stmt, err = db.PrepareContext(ctx, fmt.Sprintf(dropLoginSQL, username, username))
if err != nil {
return err
}
defer stmt.Close()
if _, err := stmt.Exec(); err != nil {
if _, err := stmt.ExecContext(ctx); err != nil {
return err
}