From 529d7e6dae4b32cbc4b1bc74a0fcbe56f0edd7ce Mon Sep 17 00:00:00 2001 From: Chris Marchesi Date: Wed, 31 May 2017 10:42:41 -0700 Subject: [PATCH] helper/schema: Review -> CustomizeDiff Restoring the naming of this field in the resource back to CustomizeDiff, as this is generally more descriptive of the process that's happening, despite the lengthy name. --- .../test/resource_with_custom_diff.go | 12 ++++---- helper/schema/resource.go | 18 +++++------ helper/schema/resource_test.go | 2 +- helper/schema/schema.go | 10 +++---- helper/schema/schema_test.go | 30 +++++++++---------- 5 files changed, 36 insertions(+), 36 deletions(-) diff --git a/builtin/providers/test/resource_with_custom_diff.go b/builtin/providers/test/resource_with_custom_diff.go index 9c7352ce5..20d3f0ef9 100644 --- a/builtin/providers/test/resource_with_custom_diff.go +++ b/builtin/providers/test/resource_with_custom_diff.go @@ -8,11 +8,11 @@ import ( func testResourceCustomDiff() *schema.Resource { return &schema.Resource{ - Create: testResourceCustomDiffCreate, - Read: testResourceCustomDiffRead, - Review: testResourceCustomDiffReview, - Update: testResourceCustomDiffUpdate, - Delete: testResourceCustomDiffDelete, + Create: testResourceCustomDiffCreate, + Read: testResourceCustomDiffRead, + CustomizeDiff: testResourceCustomDiffCustomizeDiff, + Update: testResourceCustomDiffUpdate, + Delete: testResourceCustomDiffDelete, Schema: map[string]*schema.Schema{ "required": { Type: schema.TypeString, @@ -57,7 +57,7 @@ func testResourceCustomDiffRead(d *schema.ResourceData, meta interface{}) error return nil } -func testResourceCustomDiffReview(d *schema.ResourceDiff, meta interface{}) error { +func testResourceCustomDiffCustomizeDiff(d *schema.ResourceDiff, meta interface{}) error { if d.Get("veto").(bool) == true { return fmt.Errorf("veto is true, diff vetoed") } diff --git a/helper/schema/resource.go b/helper/schema/resource.go index 59f0fbbc1..bf3eb94ad 100644 --- a/helper/schema/resource.go +++ b/helper/schema/resource.go @@ -85,16 +85,16 @@ type Resource struct { Delete DeleteFunc Exists ExistsFunc - // Review is a custom function for "reviewing" the diff that Terraform has - // created for this resource - it can be used to customize the diff that has - // been created, diff values not controlled by configuration, or even veto - // the diff altogether and abort the plan. It is passed a *ResourceDiff, a - // structure similar to ResourceData but lacking most write functions, - // allowing the provider to customize the diff only. + // CustomizeDiff is a custom function for working with the diff that + // Terraform has created for this resource - it can be used to customize the + // diff that has been created, diff values not controlled by configuration, + // or even veto the diff altogether and abort the plan. It is passed a + // *ResourceDiff, a structure similar to ResourceData but lacking most write + // functions, allowing the provider to customize the diff only. // // For the most part, only computed fields can be customized by this // function. - Review ReviewFunc + CustomizeDiff CustomizeDiffFunc // Importer is the ResourceImporter implementation for this resource. // If this is nil, then this resource does not support importing. If @@ -138,7 +138,7 @@ type StateMigrateFunc func( int, *terraform.InstanceState, interface{}) (*terraform.InstanceState, error) // See Resource documentation. -type ReviewFunc func(*ResourceDiff, interface{}) error +type CustomizeDiffFunc func(*ResourceDiff, interface{}) error // Apply creates, updates, and/or deletes a resource. func (r *Resource) Apply( @@ -229,7 +229,7 @@ func (r *Resource) Diff( return nil, fmt.Errorf("[ERR] Error decoding timeout: %s", err) } - instanceDiff, err := schemaMap(r.Schema).Diff(s, c, r.Review, meta) + instanceDiff, err := schemaMap(r.Schema).Diff(s, c, r.CustomizeDiff, meta) if err != nil { return instanceDiff, err } diff --git a/helper/schema/resource_test.go b/helper/schema/resource_test.go index 6670d1d90..22bfd1b8c 100644 --- a/helper/schema/resource_test.go +++ b/helper/schema/resource_test.go @@ -266,7 +266,7 @@ func TestResourceDiff_CustomizeFunc(t *testing.T) { var called bool - r.Review = func(d *ResourceDiff, m interface{}) error { + r.CustomizeDiff = func(d *ResourceDiff, m interface{}) error { called = true return nil } diff --git a/helper/schema/schema.go b/helper/schema/schema.go index 70aa77ba9..903d71513 100644 --- a/helper/schema/schema.go +++ b/helper/schema/schema.go @@ -386,7 +386,7 @@ func (m *schemaMap) DeepCopy() schemaMap { func (m schemaMap) Diff( s *terraform.InstanceState, c *terraform.ResourceConfig, - review ReviewFunc, + customizeDiff CustomizeDiffFunc, meta interface{}) (*terraform.InstanceDiff, error) { result := new(terraform.InstanceDiff) result.Attributes = make(map[string]*terraform.ResourceAttrDiff) @@ -411,10 +411,10 @@ func (m schemaMap) Diff( // If this is a non-destroy diff, call any custom diff logic that has been // defined. - if !result.DestroyTainted && review != nil { + if !result.DestroyTainted && customizeDiff != nil { mc := m.DeepCopy() rd := newResourceDiff(mc, c, s, result) - if err := review(rd, meta); err != nil { + if err := customizeDiff(rd, meta); err != nil { return nil, err } for _, k := range rd.UpdatedKeys() { @@ -451,10 +451,10 @@ func (m schemaMap) Diff( } // Re-run customization - if !result2.DestroyTainted && review != nil { + if !result2.DestroyTainted && customizeDiff != nil { mc := m.DeepCopy() rd := newResourceDiff(mc, c, d.state, result2) - if err := review(rd, meta); err != nil { + if err := customizeDiff(rd, meta); err != nil { return nil, err } for _, k := range rd.UpdatedKeys() { diff --git a/helper/schema/schema_test.go b/helper/schema/schema_test.go index f709c0ccc..3698fe0f4 100644 --- a/helper/schema/schema_test.go +++ b/helper/schema/schema_test.go @@ -139,7 +139,7 @@ func TestSchemaMap_Diff(t *testing.T) { State *terraform.InstanceState Config map[string]interface{} ConfigVariables map[string]ast.Variable - Review ReviewFunc + CustomizeDiff CustomizeDiffFunc Diff *terraform.InstanceDiff Err bool }{ @@ -2827,7 +2827,7 @@ func TestSchemaMap_Diff(t *testing.T) { }, { - Name: "overridden diff with a Review function, ForceNew not in schema", + Name: "overridden diff with a CustomizeDiff function, ForceNew not in schema", Schema: map[string]*Schema{ "availability_zone": &Schema{ Type: TypeString, @@ -2842,7 +2842,7 @@ func TestSchemaMap_Diff(t *testing.T) { "availability_zone": "foo", }, - Review: func(d *ResourceDiff, meta interface{}) error { + CustomizeDiff: func(d *ResourceDiff, meta interface{}) error { if err := d.SetNew("availability_zone", "bar"); err != nil { return err } @@ -2866,7 +2866,7 @@ func TestSchemaMap_Diff(t *testing.T) { }, { - Name: "overridden diff with a Review function, ForceNew in schema", + Name: "overridden diff with a CustomizeDiff function, ForceNew in schema", Schema: map[string]*Schema{ "availability_zone": &Schema{ Type: TypeString, @@ -2882,7 +2882,7 @@ func TestSchemaMap_Diff(t *testing.T) { "availability_zone": "foo", }, - Review: func(d *ResourceDiff, meta interface{}) error { + CustomizeDiff: func(d *ResourceDiff, meta interface{}) error { if err := d.SetNew("availability_zone", "bar"); err != nil { return err } @@ -2903,7 +2903,7 @@ func TestSchemaMap_Diff(t *testing.T) { }, { - Name: "required field with computed diff added with Review function", + Name: "required field with computed diff added with CustomizeDiff function", Schema: map[string]*Schema{ "ami_id": &Schema{ Type: TypeString, @@ -2921,7 +2921,7 @@ func TestSchemaMap_Diff(t *testing.T) { "ami_id": "foo", }, - Review: func(d *ResourceDiff, meta interface{}) error { + CustomizeDiff: func(d *ResourceDiff, meta interface{}) error { if err := d.SetNew("instance_id", "bar"); err != nil { return err } @@ -2945,7 +2945,7 @@ func TestSchemaMap_Diff(t *testing.T) { }, { - Name: "Set ForceNew only marks the changing element as ForceNew - ReviewFunc edition", + Name: "Set ForceNew only marks the changing element as ForceNew - CustomizeDiffFunc edition", Schema: map[string]*Schema{ "ports": &Schema{ Type: TypeSet, @@ -2971,7 +2971,7 @@ func TestSchemaMap_Diff(t *testing.T) { "ports": []interface{}{5, 2, 6}, }, - Review: func(d *ResourceDiff, meta interface{}) error { + CustomizeDiff: func(d *ResourceDiff, meta interface{}) error { if err := d.SetNew("ports", []interface{}{5, 2, 1}); err != nil { return err } @@ -3011,7 +3011,7 @@ func TestSchemaMap_Diff(t *testing.T) { }, { - Name: "tainted resource does not run ReviewFunc", + Name: "tainted resource does not run CustomizeDiffFunc", Schema: map[string]*Schema{}, State: &terraform.InstanceState{ @@ -3023,7 +3023,7 @@ func TestSchemaMap_Diff(t *testing.T) { Config: map[string]interface{}{}, - Review: func(d *ResourceDiff, meta interface{}) error { + CustomizeDiff: func(d *ResourceDiff, meta interface{}) error { return errors.New("diff customization should not have run") }, @@ -3036,7 +3036,7 @@ func TestSchemaMap_Diff(t *testing.T) { }, { - Name: "NewComputed based on a conditional with ReviewFunc", + Name: "NewComputed based on a conditional with CustomizeDiffFunc", Schema: map[string]*Schema{ "etag": &Schema{ Type: TypeString, @@ -3060,7 +3060,7 @@ func TestSchemaMap_Diff(t *testing.T) { "etag": "bar", }, - Review: func(d *ResourceDiff, meta interface{}) error { + CustomizeDiff: func(d *ResourceDiff, meta interface{}) error { if d.HasChange("etag") { d.SetNewComputed("version_id") } @@ -3104,7 +3104,7 @@ func TestSchemaMap_Diff(t *testing.T) { "foo": "baz", }, - Review: func(d *ResourceDiff, meta interface{}) error { + CustomizeDiff: func(d *ResourceDiff, meta interface{}) error { return fmt.Errorf("diff vetoed") }, @@ -3125,7 +3125,7 @@ func TestSchemaMap_Diff(t *testing.T) { } } - d, err := schemaMap(tc.Schema).Diff(tc.State, terraform.NewResourceConfig(c), tc.Review, nil) + d, err := schemaMap(tc.Schema).Diff(tc.State, terraform.NewResourceConfig(c), tc.CustomizeDiff, nil) if err != nil != tc.Err { t.Fatalf("err: %s", err) }