Skip to content

Commit 5dbd942

Browse files
committed
Update based off review
1 parent 792a6c0 commit 5dbd942

3 files changed

Lines changed: 31 additions & 1 deletion

File tree

builtin/providers/postgresql/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func Provider() terraform.ResourceProvider {
4545
ResourcesMap: map[string]*schema.Resource{
4646
"postgresql_database": resourcePostgreSQLDatabase(),
4747
"postgresql_role": resourcePostgreSQLRole(),
48+
"postgresql_extension": resourcePostgreSQLExtension(),
4849
},
4950

5051
ConfigureFunc: providerConfigure,

builtin/providers/postgresql/resource_postgresql_extension.go

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package postgresql
22

33
import (
4+
"database/sql"
45
"fmt"
56

67
"github.com/hashicorp/errwrap"
@@ -11,6 +12,7 @@ import (
1112
func resourcePostgreSQLExtension() *schema.Resource {
1213
return &schema.Resource{
1314
Create: resourcePostgreSQLExtensionCreate,
15+
Read: resourcePostgreSQLExtensionRead,
1416
Delete: resourcePostgreSQLExtensionDelete,
1517

1618
Schema: map[string]*schema.Schema{
@@ -41,7 +43,31 @@ func resourcePostgreSQLExtensionCreate(d *schema.ResourceData, meta interface{})
4143

4244
d.SetId(extensionName)
4345

44-
return resourcePostgreSQLRoleRead(d, meta)
46+
return resourcePostgreSQLExtensionRead(d, meta)
47+
}
48+
49+
func resourcePostgreSQLExtensionRead(d *schema.ResourceData, meta interface{}) error {
50+
client := meta.(*Client)
51+
conn, err := client.Connect()
52+
if err != nil {
53+
return err
54+
}
55+
defer conn.Close()
56+
57+
extensionName := d.Get("name").(string)
58+
59+
var hasExtension bool
60+
err = conn.QueryRow("SELECT 1 from pg_extension d WHERE extname=$1", extensionName).Scan(&hasExtension)
61+
switch {
62+
case err == sql.ErrNoRows:
63+
d.SetId("")
64+
return nil
65+
case err != nil:
66+
return errwrap.Wrapf("Error reading extension: {{err}}", err)
67+
default:
68+
d.Set("extension", hasExtension)
69+
return nil
70+
}
4571
}
4672

4773
func resourcePostgreSQLExtensionDelete(d *schema.ResourceData, meta interface{}) error {

website/source/layouts/postgresql.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
<li<%= sidebar_current("docs-postgresql-resource-postgresql_role") %>>
2020
<a href="/docs/providers/postgresql/r/postgresql_role.html">postgresql_role</a>
2121
</li>
22+
<li<%= sidebar_current("docs-postgresql-resource-postgresql_extension") %>>
23+
<a href="/docs/providers/postgresql/r/postgresql_extension.html">postgresql_extensions</a>
24+
</li>
2225
</ul>
2326
</li>
2427
</ul>

0 commit comments

Comments
 (0)