11package postgres
22
33import (
4+ "context"
45 "fmt"
56
67 "github.com/lib/pq"
@@ -21,32 +22,32 @@ func newAWSPG(postgres *pg) PG {
2122 }
2223}
2324
24- func (c * awspg ) AlterDefaultLoginRole (role , setRole string ) error {
25+ func (c * awspg ) AlterDefaultLoginRole (ctx context. Context , role , setRole string ) error {
2526 // On AWS RDS the postgres user isn't really superuser so he doesn't have permissions
2627 // to ALTER USER unless he belongs to both roles
27- err := c .GrantRole (role , c .user , false )
28+ err := c .GrantRole (ctx , role , c .user , false )
2829 if err != nil {
2930 return err
3031 }
3132
3233 defer func () {
33- err := c .RevokeRole (role , c .user )
34+ err := c .RevokeRole (ctx , role , c .user )
3435 // Check error
3536 if err != nil {
3637 c .log .Error (err , "error in revoke role" )
3738 }
3839 }()
3940
40- return c .pg .AlterDefaultLoginRole (role , setRole )
41+ return c .pg .AlterDefaultLoginRole (ctx , role , setRole )
4142}
4243
43- func (c * awspg ) CreateDB (dbname , role string ) error {
44+ func (c * awspg ) CreateDB (ctx context. Context , dbname , role string ) error {
4445 err := c .connect (c .defaultDatabase )
4546 if err != nil {
4647 return err
4748 }
4849
49- _ , err = c .db .Exec ( fmt .Sprintf (CreateDBWithoutOwnerSQLTemplate , dbname ))
50+ _ , err = c .db .ExecContext ( ctx , fmt .Sprintf (CreateDBWithoutOwnerSQLTemplate , dbname ))
5051 if err != nil {
5152 // eat DUPLICATE DATABASE ERROR
5253 // Try to cast error
@@ -56,18 +57,18 @@ func (c *awspg) CreateDB(dbname, role string) error {
5657 }
5758 }
5859
59- _ , err = c .db .Exec ( fmt .Sprintf (AlterDBOwnerSQLTemplate , dbname , role ))
60+ _ , err = c .db .ExecContext ( ctx , fmt .Sprintf (AlterDBOwnerSQLTemplate , dbname , role ))
6061 if err != nil {
6162 return err
6263 }
6364
6465 return nil
6566}
6667
67- func (c * awspg ) DropRoleAndDropAndChangeOwnedBy (role , newOwner , database string ) error {
68+ func (c * awspg ) DropRoleAndDropAndChangeOwnedBy (ctx context. Context , role , newOwner , database string ) error {
6869 // On AWS RDS the postgres user isn't really superuser so he doesn't have permissions
6970 // to REASSIGN OWNED BY unless he belongs to both roles
70- err := c .GrantRole (role , c .user , false )
71+ err := c .GrantRole (ctx , role , c .user , false )
7172 // Check error
7273 if err != nil {
7374 // Try to cast error
@@ -85,7 +86,7 @@ func (c *awspg) DropRoleAndDropAndChangeOwnedBy(role, newOwner, database string)
8586 }
8687 }
8788
88- err = c .GrantRole (newOwner , c .user , false )
89+ err = c .GrantRole (ctx , newOwner , c .user , false )
8990 // Check error
9091 if err != nil {
9192 // Try to cast error
@@ -107,19 +108,19 @@ func (c *awspg) DropRoleAndDropAndChangeOwnedBy(role, newOwner, database string)
107108 }
108109
109110 defer func () {
110- err := c .RevokeRole (newOwner , c .user )
111+ err := c .RevokeRole (ctx , newOwner , c .user )
111112 if err != nil {
112113 c .log .Error (err , "error in revoke role" )
113114 }
114115 }()
115116
116- return c .pg .DropRoleAndDropAndChangeOwnedBy (role , newOwner , database )
117+ return c .pg .DropRoleAndDropAndChangeOwnedBy (ctx , role , newOwner , database )
117118}
118119
119- func (c * awspg ) ChangeAndDropOwnedBy (role , newOwner , database string ) error {
120+ func (c * awspg ) ChangeAndDropOwnedBy (ctx context. Context , role , newOwner , database string ) error {
120121 // On AWS RDS the postgres user isn't really superuser so he doesn't have permissions
121122 // to REASSIGN OWNED BY unless he belongs to both roles
122- err := c .GrantRole (role , c .user , false )
123+ err := c .GrantRole (ctx , role , c .user , false )
123124 // Check error
124125 if err != nil {
125126 // Try to cast error
@@ -137,7 +138,7 @@ func (c *awspg) ChangeAndDropOwnedBy(role, newOwner, database string) error {
137138 }
138139 }
139140
140- err = c .GrantRole (newOwner , c .user , false )
141+ err = c .GrantRole (ctx , newOwner , c .user , false )
141142 // Check error
142143 if err != nil {
143144 // Try to cast error
@@ -159,11 +160,11 @@ func (c *awspg) ChangeAndDropOwnedBy(role, newOwner, database string) error {
159160 }
160161
161162 defer func () {
162- err := c .RevokeRole (newOwner , c .user )
163+ err := c .RevokeRole (ctx , newOwner , c .user )
163164 if err != nil {
164165 c .log .Error (err , "error in revoke role" )
165166 }
166167 }()
167168
168- return c .pg .ChangeAndDropOwnedBy (role , newOwner , database )
169+ return c .pg .ChangeAndDropOwnedBy (ctx , role , newOwner , database )
169170}
0 commit comments