]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/hashicorp/terraform/helper/schema/provider.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / helper / schema / provider.go
index 6cd325daf4dcff9fcd16d0e9fb76f426eb3a7c57..97024479d8b8eb98665e147eb83cc4f91383b9f0 100644 (file)
@@ -9,7 +9,7 @@ import (
 
        "github.com/hashicorp/go-multierror"
        "github.com/hashicorp/terraform/config"
-       "github.com/hashicorp/terraform/config/configschema"
+       "github.com/hashicorp/terraform/configs/configschema"
        "github.com/hashicorp/terraform/terraform"
 )
 
@@ -64,6 +64,8 @@ type Provider struct {
        stopCtx       context.Context
        stopCtxCancel context.CancelFunc
        stopOnce      sync.Once
+
+       TerraformVersion string
 }
 
 // ConfigureFunc is the function used to configure a Provider.
@@ -251,7 +253,7 @@ func (p *Provider) Configure(c *terraform.ResourceConfig) error {
 
        // Get a ResourceData for this configuration. To do this, we actually
        // generate an intermediary "diff" although that is never exposed.
-       diff, err := sm.Diff(nil, c, nil, p.meta)
+       diff, err := sm.Diff(nil, c, nil, p.meta, true)
        if err != nil {
                return err
        }
@@ -296,6 +298,20 @@ func (p *Provider) Diff(
        return r.Diff(s, c, p.meta)
 }
 
+// SimpleDiff is used by the new protocol wrappers to get a diff that doesn't
+// attempt to calculate ignore_changes.
+func (p *Provider) SimpleDiff(
+       info *terraform.InstanceInfo,
+       s *terraform.InstanceState,
+       c *terraform.ResourceConfig) (*terraform.InstanceDiff, error) {
+       r, ok := p.ResourcesMap[info.Type]
+       if !ok {
+               return nil, fmt.Errorf("unknown resource type: %s", info.Type)
+       }
+
+       return r.simpleDiff(s, c, p.meta)
+}
+
 // Refresh implementation of terraform.ResourceProvider interface.
 func (p *Provider) Refresh(
        info *terraform.InstanceInfo,
@@ -311,7 +327,7 @@ func (p *Provider) Refresh(
 // Resources implementation of terraform.ResourceProvider interface.
 func (p *Provider) Resources() []terraform.ResourceType {
        keys := make([]string, 0, len(p.ResourcesMap))
-       for k, _ := range p.ResourcesMap {
+       for k := range p.ResourcesMap {
                keys = append(keys, k)
        }
        sort.Strings(keys)