Skip to content

Commit

Permalink
Mildwonkey/providers interface renaming (#27805)
Browse files Browse the repository at this point in the history
* providers.Interface: huge renamification

This commit renames a handful of functions in the providers.Interface to
match changes made in protocol v6. The following commit implements this
change across the rest of the codebase; I put this in a separate commit
for ease of reviewing and will squash these together when merging.

One noteworthy detail: protocol v6 removes the config from the
ValidateProviderConfigResponse, since it's never been used. I chose to
leave that in place in the interface until we deprecate support for
protocol v5 entirely.

Note that none of these changes impact current providers using protocol
v5; the protocol is unchanged. Only the translation layer between the
proto and terraform have changed.
  • Loading branch information
mildwonkey authored Feb 18, 2021
1 parent 2b4e389 commit f650587
Show file tree
Hide file tree
Showing 44 changed files with 561 additions and 562 deletions.
6 changes: 3 additions & 3 deletions backend/local/backend_refresh_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func TestLocal_refreshInput(t *testing.T) {
p.ReadResourceResponse = &providers.ReadResourceResponse{NewState: cty.ObjectVal(map[string]cty.Value{
"id": cty.StringVal("yes"),
})}
p.ConfigureFn = func(req providers.ConfigureRequest) (resp providers.ConfigureResponse) {
p.ConfigureProviderFn = func(req providers.ConfigureProviderRequest) (resp providers.ConfigureProviderResponse) {
val := req.Config.GetAttr("value")
if val.IsNull() || val.AsString() != "bar" {
resp.Diagnostics = resp.Diagnostics.Append(fmt.Errorf("incorrect value %#v", val))
Expand Down Expand Up @@ -183,8 +183,8 @@ func TestLocal_refreshValidateProviderConfigured(t *testing.T) {
}
<-run.Done()

if !p.PrepareProviderConfigCalled {
t.Fatal("Prepare provider config should be called")
if !p.ValidateProviderConfigCalled {
t.Fatal("Validate provider config should be called")
}

checkState(t, b.StateOutPath, `
Expand Down
6 changes: 3 additions & 3 deletions backend/local/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,20 @@ func TestLocalProvider(t *testing.T, b *Local, name string, schema *terraform.Pr
if schema == nil {
schema = &terraform.ProviderSchema{} // default schema is empty
}
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
Provider: providers.Schema{Block: schema.Provider},
ProviderMeta: providers.Schema{Block: schema.ProviderMeta},
ResourceTypes: map[string]providers.Schema{},
DataSources: map[string]providers.Schema{},
}
for name, res := range schema.ResourceTypes {
p.GetSchemaResponse.ResourceTypes[name] = providers.Schema{
p.GetProviderSchemaResponse.ResourceTypes[name] = providers.Schema{
Block: res,
Version: int64(schema.ResourceTypeSchemaVersions[name]),
}
}
for name, dat := range schema.DataSources {
p.GetSchemaResponse.DataSources[name] = providers.Schema{Block: dat}
p.GetProviderSchemaResponse.DataSources[name] = providers.Schema{Block: dat}
}

p.PlanResourceChangeFn = func(req providers.PlanResourceChangeRequest) providers.PlanResourceChangeResponse {
Expand Down
18 changes: 9 additions & 9 deletions builtin/providers/terraform/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@ func NewProvider() providers.Interface {
}

// GetSchema returns the complete schema for the provider.
func (p *Provider) GetSchema() providers.GetSchemaResponse {
return providers.GetSchemaResponse{
func (p *Provider) GetProviderSchema() providers.GetProviderSchemaResponse {
return providers.GetProviderSchemaResponse{
DataSources: map[string]providers.Schema{
"terraform_remote_state": dataSourceRemoteStateGetSchema(),
},
}
}

// ValidateProviderConfig is used to validate the configuration values.
func (p *Provider) PrepareProviderConfig(req providers.PrepareProviderConfigRequest) providers.PrepareProviderConfigResponse {
func (p *Provider) ValidateProviderConfig(req providers.ValidateProviderConfigRequest) providers.ValidateProviderConfigResponse {
// At this moment there is nothing to configure for the terraform provider,
// so we will happily return without taking any action
var res providers.PrepareProviderConfigResponse
var res providers.ValidateProviderConfigResponse
res.PreparedConfig = req.Config
return res
}
Expand All @@ -59,10 +59,10 @@ func (p *Provider) ValidateDataSourceConfig(req providers.ValidateDataSourceConf
}

// Configure configures and initializes the provider.
func (p *Provider) Configure(providers.ConfigureRequest) providers.ConfigureResponse {
func (p *Provider) ConfigureProvider(providers.ConfigureProviderRequest) providers.ConfigureProviderResponse {
// At this moment there is nothing to configure for the terraform provider,
// so we will happily return without taking any action
var res providers.ConfigureResponse
var res providers.ConfigureProviderResponse
return res
}

Expand Down Expand Up @@ -126,11 +126,11 @@ func (p *Provider) ImportResourceState(providers.ImportResourceStateRequest) pro
panic("unimplemented - terraform_remote_state has no resources")
}

// ValidateResourceTypeConfig is used to to validate the resource configuration values.
func (p *Provider) ValidateResourceTypeConfig(providers.ValidateResourceTypeConfigRequest) providers.ValidateResourceTypeConfigResponse {
// ValidateResourceConfig is used to to validate the resource configuration values.
func (p *Provider) ValidateResourceConfig(providers.ValidateResourceConfigRequest) providers.ValidateResourceConfigResponse {
// At this moment there is nothing to configure for the terraform provider,
// so we will happily return without taking any action
var res providers.ValidateResourceTypeConfigResponse
var res providers.ValidateResourceConfigResponse
return res
}

Expand Down
6 changes: 3 additions & 3 deletions command/apply_destroy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func TestApply_destroy(t *testing.T) {
statePath := testStateFile(t, originalState)

p := testProvider()
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -416,7 +416,7 @@ func TestApply_destroyTargetedDependencies(t *testing.T) {
statePath := testStateFile(t, originalState)

p := testProvider()
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -567,7 +567,7 @@ func TestApply_destroyTargeted(t *testing.T) {
statePath := testStateFile(t, originalState)

p := testProvider()
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down
22 changes: 11 additions & 11 deletions command/apply_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ func TestApply_parallelism(t *testing.T) {
for i := 0; i < 10; i++ {
name := fmt.Sprintf("test%d", i)
provider := &terraform.MockProvider{}
provider.GetSchemaResponse = &providers.GetSchemaResponse{
provider.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
name + "_instance": {Block: &configschema.Block{}},
},
Expand Down Expand Up @@ -492,7 +492,7 @@ func TestApply_error(t *testing.T) {
resp.PlannedState = cty.ObjectVal(s)
return
}
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -1075,7 +1075,7 @@ func TestApply_shutdown(t *testing.T) {
return
}

p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -1291,7 +1291,7 @@ func TestApply_vars(t *testing.T) {
}

actual := ""
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -1354,7 +1354,7 @@ func TestApply_varFile(t *testing.T) {
}

actual := ""
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -1417,7 +1417,7 @@ func TestApply_varFileDefault(t *testing.T) {
}

actual := ""
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -1479,7 +1479,7 @@ func TestApply_varFileDefaultJSON(t *testing.T) {
}

actual := ""
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -1777,7 +1777,7 @@ func TestApply_targeted(t *testing.T) {
defer testChdir(t, td)()

p := testProvider()
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -1862,8 +1862,8 @@ func TestApply_targetFlagsDiags(t *testing.T) {
// applyFixtureSchema returns a schema suitable for processing the
// configuration in testdata/apply . This schema should be
// assigned to a mock provider named "test".
func applyFixtureSchema() *providers.GetSchemaResponse {
return &providers.GetSchemaResponse{
func applyFixtureSchema() *providers.GetProviderSchemaResponse {
return &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand All @@ -1884,7 +1884,7 @@ func applyFixtureSchema() *providers.GetSchemaResponse {
// Terraform Core.
func applyFixtureProvider() *terraform.MockProvider {
p := testProvider()
p.GetSchemaResponse = applyFixtureSchema()
p.GetProviderSchemaResponse = applyFixtureSchema()
p.PlanResourceChangeFn = func(req providers.PlanResourceChangeRequest) providers.PlanResourceChangeResponse {
return providers.PlanResourceChangeResponse{
PlannedState: req.ProposedNewState,
Expand Down
4 changes: 2 additions & 2 deletions command/console_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func TestConsole_tfvars(t *testing.T) {
}

p := testProvider()
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down Expand Up @@ -119,7 +119,7 @@ func TestConsole_unsetRequiredVars(t *testing.T) {
defer testChdir(t, td)()

p := testProvider()
p.GetSchemaResponse = &providers.GetSchemaResponse{
p.GetProviderSchemaResponse = &providers.GetProviderSchemaResponse{
ResourceTypes: map[string]providers.Schema{
"test_instance": {
Block: &configschema.Block{
Expand Down
6 changes: 3 additions & 3 deletions command/format/state_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,13 @@ func testProvider() *terraform.MockProvider {
return providers.ReadResourceResponse{NewState: req.PriorState}
}

p.GetSchemaResponse = testProviderSchema()
p.GetProviderSchemaResponse = testProviderSchema()

return p
}

func testProviderSchema() *providers.GetSchemaResponse {
return &providers.GetSchemaResponse{
func testProviderSchema() *providers.GetProviderSchemaResponse {
return &providers.GetProviderSchemaResponse{
Provider: providers.Schema{
Block: &configschema.Block{
Attributes: map[string]*configschema.Attribute{
Expand Down
Loading

0 comments on commit f650587

Please sign in to comment.