Skip to content

Commit 4278c61

Browse files
committed
Follow up to hashicorp#11161 to fix connection_limit updates to a ROLE.
1 parent 864c769 commit 4278c61

2 files changed

Lines changed: 44 additions & 7 deletions

File tree

builtin/providers/postgresql/resource_postgresql_role.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ func setRoleConnLimit(conn *sql.DB, d *schema.ResourceData) error {
484484

485485
connLimit := d.Get(roleConnLimitAttr).(int)
486486
roleName := d.Get(roleNameAttr).(string)
487-
query := fmt.Sprintf("ALTER ROLE %s CONNECTION LIMIT = %d", pq.QuoteIdentifier(roleName), connLimit)
487+
query := fmt.Sprintf("ALTER ROLE %s CONNECTION LIMIT %d", pq.QuoteIdentifier(roleName), connLimit)
488488
if _, err := conn.Query(query); err != nil {
489489
return errwrap.Wrapf("Error updating role CONNECTION LIMIT: {{err}}", err)
490490
}

builtin/providers/postgresql/resource_postgresql_role_test.go

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,6 @@ func TestAccPostgresqlRole_Basic(t *testing.T) {
1919
Config: testAccPostgresqlRoleConfig,
2020
Check: resource.ComposeTestCheckFunc(
2121
testAccCheckPostgresqlRoleExists("postgresql_role.myrole2", "true"),
22-
resource.TestCheckResourceAttr("postgresql_role.myrole2", "name", "myrole2"),
23-
resource.TestCheckResourceAttr("postgresql_role.myrole2", "login", "true"),
24-
resource.TestCheckResourceAttr("postgresql_role.myrole2", "skip_drop_role", "false"),
25-
resource.TestCheckResourceAttr("postgresql_role.myrole2", "skip_reassign_owned", "false"),
26-
resource.TestCheckResourceAttr("postgresql_role.myrole2", "connection_limit", "-1"),
27-
2822
resource.TestCheckResourceAttr("postgresql_role.role_with_defaults", "name", "testing_role_with_defaults"),
2923
resource.TestCheckResourceAttr("postgresql_role.role_with_defaults", "superuser", "false"),
3024
resource.TestCheckResourceAttr("postgresql_role.role_with_defaults", "create_database", "false"),
@@ -44,6 +38,34 @@ func TestAccPostgresqlRole_Basic(t *testing.T) {
4438
})
4539
}
4640

41+
func TestAccPostgresqlRole_Update(t *testing.T) {
42+
resource.Test(t, resource.TestCase{
43+
PreCheck: func() { testAccPreCheck(t) },
44+
Providers: testAccProviders,
45+
CheckDestroy: testAccCheckPostgresqlRoleDestroy,
46+
Steps: []resource.TestStep{
47+
{
48+
Config: testAccPostgresqlRoleUpdate1Config,
49+
Check: resource.ComposeTestCheckFunc(
50+
testAccCheckPostgresqlRoleExists("postgresql_role.update_role", "true"),
51+
resource.TestCheckResourceAttr("postgresql_role.update_role", "name", "update_role"),
52+
resource.TestCheckResourceAttr("postgresql_role.update_role", "login", "true"),
53+
resource.TestCheckResourceAttr("postgresql_role.update_role", "connection_limit", "-1"),
54+
),
55+
},
56+
{
57+
Config: testAccPostgresqlRoleUpdate2Config,
58+
Check: resource.ComposeTestCheckFunc(
59+
testAccCheckPostgresqlRoleExists("postgresql_role.update_role", "true"),
60+
resource.TestCheckResourceAttr("postgresql_role.update_role", "name", "update_role2"),
61+
resource.TestCheckResourceAttr("postgresql_role.update_role", "login", "true"),
62+
resource.TestCheckResourceAttr("postgresql_role.update_role", "connection_limit", "5"),
63+
),
64+
},
65+
},
66+
})
67+
}
68+
4769
func testAccCheckPostgresqlRoleDestroy(s *terraform.State) error {
4870
client := testAccProvider.Meta().(*Client)
4971

@@ -161,3 +183,18 @@ resource "postgresql_role" "role_with_defaults" {
161183
valid_until = "infinity"
162184
}
163185
`
186+
187+
var testAccPostgresqlRoleUpdate1Config = `
188+
resource "postgresql_role" "update_role" {
189+
name = "update_role"
190+
login = true
191+
}
192+
`
193+
194+
var testAccPostgresqlRoleUpdate2Config = `
195+
resource "postgresql_role" "update_role" {
196+
name = "update_role2"
197+
login = true
198+
connection_limit = 5
199+
}
200+
`

0 commit comments

Comments
 (0)