Skip to content

Commit f73db84

Browse files
authored
Merge pull request #1019 from ewbankkit/issue-1018
Set 'project' attribute when importing 'google_logging_project_sink'
2 parents 7e91cbb + 1f7e84c commit f73db84

3 files changed

+31
-7
lines changed

google/import_logging_project_sink_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func TestAccLoggingProjectSink_importBasic(t *testing.T) {
1818
Providers: testAccProviders,
1919
Steps: []resource.TestStep{
2020
resource.TestStep{
21-
Config: testAccLoggingProjectSink_basic(sinkName, bucketName),
21+
Config: testAccLoggingProjectSink_basic(sinkName, getTestProjectFromEnv(), bucketName),
2222
},
2323

2424
resource.TestStep{

google/resource_logging_project_sink.go

+23-1
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@ func resourceLoggingProjectSink() *schema.Resource {
1616
Update: resourceLoggingProjectSinkUpdate,
1717
Schema: resourceLoggingSinkSchema(),
1818
Importer: &schema.ResourceImporter{
19-
State: schema.ImportStatePassthrough,
19+
State: resourceLoggingProjectSinkImportState,
2020
},
2121
}
2222
schm.Schema["project"] = &schema.Schema{
2323
Type: schema.TypeString,
2424
Optional: true,
25+
Computed: true,
2526
ForceNew: true,
2627
}
2728
schm.Schema["unique_writer_identity"] = &schema.Schema{
@@ -57,11 +58,17 @@ func resourceLoggingProjectSinkCreate(d *schema.ResourceData, meta interface{})
5758
func resourceLoggingProjectSinkRead(d *schema.ResourceData, meta interface{}) error {
5859
config := meta.(*Config)
5960

61+
project, err := getProject(d, config)
62+
if err != nil {
63+
return err
64+
}
65+
6066
sink, err := config.clientLogging.Projects.Sinks.Get(d.Id()).Do()
6167
if err != nil {
6268
return handleNotFoundError(err, d, fmt.Sprintf("Project Logging Sink %s", d.Get("name").(string)))
6369
}
6470

71+
d.Set("project", project)
6572
flattenResourceLoggingSink(d, sink)
6673
if sink.WriterIdentity != nonUniqueWriterAccount {
6774
d.Set("unique_writer_identity", true)
@@ -96,3 +103,18 @@ func resourceLoggingProjectSinkDelete(d *schema.ResourceData, meta interface{})
96103
d.SetId("")
97104
return nil
98105
}
106+
107+
func resourceLoggingProjectSinkImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
108+
config := meta.(*Config)
109+
110+
loggingSinkId, err := parseLoggingSinkId(d.Id())
111+
if err != nil {
112+
return nil, err
113+
}
114+
115+
if config.Project != loggingSinkId.resourceId {
116+
d.Set("project", loggingSinkId.resourceId)
117+
}
118+
119+
return []*schema.ResourceData{d}, nil
120+
}

google/resource_logging_project_sink_test.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package google
22

33
import (
44
"fmt"
5+
"strconv"
6+
"testing"
7+
58
"github.com/hashicorp/terraform/helper/acctest"
69
"github.com/hashicorp/terraform/helper/resource"
710
"github.com/hashicorp/terraform/terraform"
811
"google.golang.org/api/logging/v2"
9-
"strconv"
10-
"testing"
1112
)
1213

1314
func TestAccLoggingProjectSink_basic(t *testing.T) {
@@ -24,7 +25,7 @@ func TestAccLoggingProjectSink_basic(t *testing.T) {
2425
CheckDestroy: testAccCheckLoggingProjectSinkDestroy,
2526
Steps: []resource.TestStep{
2627
{
27-
Config: testAccLoggingProjectSink_basic(sinkName, bucketName),
28+
Config: testAccLoggingProjectSink_basic(sinkName, getTestProjectFromEnv(), bucketName),
2829
Check: resource.ComposeTestCheckFunc(
2930
testAccCheckLoggingProjectSinkExists("google_logging_project_sink.basic", &sink),
3031
testAccCheckLoggingProjectSink(&sink, "google_logging_project_sink.basic"),
@@ -165,18 +166,19 @@ func testAccCheckLoggingProjectSink(sink *logging.LogSink, n string) resource.Te
165166
}
166167
}
167168

168-
func testAccLoggingProjectSink_basic(name, bucketName string) string {
169+
func testAccLoggingProjectSink_basic(name, project, bucketName string) string {
169170
return fmt.Sprintf(`
170171
resource "google_logging_project_sink" "basic" {
171172
name = "%s"
173+
project = "%s"
172174
destination = "storage.googleapis.com/${google_storage_bucket.log-bucket.name}"
173175
filter = "logName=\"projects/%s/logs/compute.googleapis.com%%2Factivity_log\" AND severity>=ERROR"
174176
unique_writer_identity = false
175177
}
176178
177179
resource "google_storage_bucket" "log-bucket" {
178180
name = "%s"
179-
}`, name, getTestProjectFromEnv(), bucketName)
181+
}`, name, project, project, bucketName)
180182
}
181183

182184
func testAccLoggingProjectSink_uniqueWriter(name, bucketName string) string {

0 commit comments

Comments
 (0)