Skip to content

Commit

Permalink
Merge pull request #204 from Charliekenney23/feat/skip-instance-ready…
Browse files Browse the repository at this point in the history
…-poll-flag

add skip_instance_ready_poll flag to provider
  • Loading branch information
0xch4z committed Jan 11, 2021
2 parents 69f7c5b + 554b124 commit b0664c3
Show file tree
Hide file tree
Showing 52 changed files with 189 additions and 234 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 1.14.0 (January 8, 2021)
## 1.14.0 (January 11, 2021)

BACKWARDS INCOMPATIBILITIES / NOTES:

Expand All @@ -10,6 +10,7 @@ ENHANCEMENTS:
* terraform-plugin-sdk updated to v2.4.0.
* linodego updated to v0.24.2.
* resource/linode\_object\_storage\_object: now supports custom ACLs.
* add `skip_instance_ready_poll` field to provider configuration.

## 1.13.4 (November 13, 2020)

Expand Down
2 changes: 2 additions & 0 deletions linode/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ type Config struct {
UAPrefix string

terraformVersion string

SkipInstanceReadyPoll bool
}

// Client returns a fully initialized Linode client
Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_account.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeAccount() *schema.Resource {
Expand Down Expand Up @@ -77,7 +76,7 @@ func dataSourceLinodeAccount() *schema.Resource {
}

func dataSourceLinodeAccountRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

account, err := client.GetAccount(context.Background())
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion linode/data_source_linode_domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ func dataSourceLinodeDomain() *schema.Resource {
}

func dataSourceLinodeDomainRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

reqIDString := d.Get("id").(string)
reqDomain := d.Get("domain").(string)
Expand Down
2 changes: 1 addition & 1 deletion linode/data_source_linode_domain_record.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ func dataSourceLinodeDomainRecord() *schema.Resource {
}

func dataSourceLinodeDomainRecordRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

domainID := d.Get("domain_id").(int)
recordName := d.Get("name").(string)
Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_image.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"time"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeImage() *schema.Resource {
Expand Down Expand Up @@ -73,7 +72,7 @@ func dataSourceLinodeImage() *schema.Resource {
}

func dataSourceLinodeImageRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

reqImage := d.Get("id").(string)

Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_instance_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeInstanceType() *schema.Resource {
Expand Down Expand Up @@ -114,7 +113,7 @@ func dataSourceLinodeInstanceType() *schema.Resource {
}

func dataSourceLinodeInstanceTypeRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

types, err := client.ListTypes(context.Background(), nil)
if err != nil {
Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_networking_ip.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeNetworkingIP() *schema.Resource {
Expand Down Expand Up @@ -63,7 +62,7 @@ func dataSourceLinodeNetworkingIP() *schema.Resource {
}

func dataSourceLinodeNetworkingIPRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

reqImage := d.Get("address").(string)

Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_object_storage_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeObjectStorageCluster() *schema.Resource {
Expand Down Expand Up @@ -47,7 +46,7 @@ func dataSourceLinodeObjectStorageCluster() *schema.Resource {
}

func dataSourceLinodeObjectStorageClusterRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

reqObjectStorageCluster := d.Get("id").(string)

Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeProfile() *schema.Resource {
Expand Down Expand Up @@ -102,7 +101,7 @@ func dataSourceLinodeProfile() *schema.Resource {
}

func dataSourceLinodeProfileRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

profile, err := client.GetProfile(context.Background())
if err != nil {
Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_region.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeRegion() *schema.Resource {
Expand All @@ -29,7 +28,7 @@ func dataSourceLinodeRegion() *schema.Resource {
}

func dataSourceLinodeRegionRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

reqRegion := d.Get("id").(string)

Expand Down
2 changes: 1 addition & 1 deletion linode/data_source_linode_sshkey.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func dataSourceLinodeSSHKey() *schema.Resource {
}

func dataSourceLinodeSSHKeyRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

reqLabel := d.Get("label").(string)

Expand Down
3 changes: 1 addition & 2 deletions linode/data_source_linode_stackscript.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"time"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/linode/linodego"
)

func dataSourceLinodeStackscript() *schema.Resource {
Expand Down Expand Up @@ -120,7 +119,7 @@ func dataSourceLinodeStackscript() *schema.Resource {
}

func dataSourceLinodeStackscriptRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client
id := d.Get("id").(int)

ss, err := client.GetStackscript(context.Background(), id)
Expand Down
2 changes: 1 addition & 1 deletion linode/data_source_linode_user.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func dataSourceLinodeUser() *schema.Resource {
}

func dataSourceLinodeUserRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

reqUsername := d.Get("username").(string)

Expand Down
2 changes: 1 addition & 1 deletion linode/data_source_linode_volume.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func dataSourceLinodeVolume() *schema.Resource {
}

func dataSourceLinodeVolumeRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client
requestedVolumeID := d.Get("id").(int)

if requestedVolumeID == 0 {
Expand Down
19 changes: 18 additions & 1 deletion linode/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@ func Provider() *schema.Provider {
DefaultFunc: schema.EnvDefaultFunc("LINODE_API_VERSION", nil),
Description: "An HTTP User-Agent Prefix to prepend in API requests.",
},

"skip_instance_ready_poll": {
Type: schema.TypeBool,
Optional: true,
Default: false,
Description: "Skip waiting for a linode_instance resource to be running.",
},
},

DataSourcesMap: map[string]*schema.Resource{
Expand Down Expand Up @@ -90,12 +97,19 @@ func Provider() *schema.Provider {
return provider
}

type ProviderMeta struct {
Client linodego.Client
Config *Config
}

func providerConfigure(d *schema.ResourceData, terraformVersion string) (interface{}, error) {
config := &Config{
AccessToken: d.Get("token").(string),
APIURL: d.Get("url").(string),
APIVersion: d.Get("api_version").(string),
UAPrefix: d.Get("ua_prefix").(string),

SkipInstanceReadyPoll: d.Get("skip_instance_ready_poll").(bool),
}
config.terraformVersion = terraformVersion
client := config.Client()
Expand All @@ -104,5 +118,8 @@ func providerConfigure(d *schema.ResourceData, terraformVersion string) (interfa
if _, err := client.ListTypes(context.Background(), linodego.NewListOptions(100, "")); err != nil {
return nil, fmt.Errorf("Error connecting to the Linode API: %s", err)
}
return config.Client(), nil
return &ProviderMeta{
Client: client,
Config: config,
}, nil
}
11 changes: 4 additions & 7 deletions linode/resource_linode_domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ func resourceLinodeDomain() *schema.Resource {
}

func resourceLinodeDomainRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client
id, err := strconv.ParseInt(d.Id(), 10, 64)
if err != nil {
return fmt.Errorf("Error parsing Linode Domain ID %s as int: %s", d.Id(), err)
Expand Down Expand Up @@ -147,10 +147,7 @@ func resourceLinodeDomainRead(d *schema.ResourceData, meta interface{}) error {
}

func resourceLinodeDomainCreate(d *schema.ResourceData, meta interface{}) error {
client, ok := meta.(linodego.Client)
if !ok {
return fmt.Errorf("Invalid Client when creating Linode Domain")
}
client := meta.(*ProviderMeta).Client

createOpts := linodego.DomainCreateOptions{
Domain: d.Get("domain").(string),
Expand Down Expand Up @@ -198,7 +195,7 @@ func resourceLinodeDomainCreate(d *schema.ResourceData, meta interface{}) error
}

func resourceLinodeDomainUpdate(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client

id, err := strconv.ParseInt(d.Id(), 10, 64)
if err != nil {
Expand Down Expand Up @@ -252,7 +249,7 @@ func resourceLinodeDomainUpdate(d *schema.ResourceData, meta interface{}) error
}

func resourceLinodeDomainDelete(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client
id, err := strconv.ParseInt(d.Id(), 10, 64)
if err != nil {
return fmt.Errorf("Error parsing Linode Domain id %s as int", d.Id())
Expand Down
11 changes: 4 additions & 7 deletions linode/resource_linode_domain_record.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ func resourceLinodeDomainRecordImport(d *schema.ResourceData, meta interface{})
}

func resourceLinodeDomainRecordRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client
id, err := strconv.ParseInt(d.Id(), 10, 64)
if err != nil {
return fmt.Errorf("Error parsing Linode DomainRecord ID %s as int: %s", d.Id(), err)
Expand Down Expand Up @@ -213,10 +213,7 @@ func validateSRVDomainRecord(c *linodego.Client, rec *linodego.DomainRecord, dom
}

func resourceLinodeDomainRecordCreate(d *schema.ResourceData, meta interface{}) error {
client, ok := meta.(linodego.Client)
if !ok {
return fmt.Errorf("Invalid Client when creating Linode DomainRecord")
}
client := meta.(*ProviderMeta).Client
domainID := d.Get("domain_id").(int)
rec := domainRecordFromResourceData(d)
if err := validateDomainRecord(&client, rec, domainID); err != nil {
Expand Down Expand Up @@ -247,7 +244,7 @@ func resourceLinodeDomainRecordCreate(d *schema.ResourceData, meta interface{})
}

func resourceLinodeDomainRecordUpdate(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client
domainID := d.Get("domain_id").(int)
rec := domainRecordFromResourceData(d)
if err := validateDomainRecord(&client, rec, domainID); err != nil {
Expand Down Expand Up @@ -280,7 +277,7 @@ func resourceLinodeDomainRecordUpdate(d *schema.ResourceData, meta interface{})
}

func resourceLinodeDomainRecordDelete(d *schema.ResourceData, meta interface{}) error {
client := meta.(linodego.Client)
client := meta.(*ProviderMeta).Client
domainID := d.Get("domain_id").(int)
id, err := strconv.ParseInt(d.Id(), 10, 64)

Expand Down
7 changes: 2 additions & 5 deletions linode/resource_linode_domain_record_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ func TestAccLinodeDomainRecord_update(t *testing.T) {
}

func testAccCheckLinodeDomainRecordExists(s *terraform.State) error {
client := testAccProvider.Meta().(linodego.Client)
client := testAccProvider.Meta().(*ProviderMeta).Client

for _, rs := range s.RootModule().Resources {
if rs.Type != "linode_domain_record" {
Expand All @@ -244,10 +244,7 @@ func testAccCheckLinodeDomainRecordExists(s *terraform.State) error {
}

func testAccCheckLinodeDomainRecordDestroy(s *terraform.State) error {
client, ok := testAccProvider.Meta().(linodego.Client)
if !ok {
return fmt.Errorf("Error getting Linode client")
}
client := testAccProvider.Meta().(*ProviderMeta).Client
for _, rs := range s.RootModule().Resources {
if rs.Type != "linode_domain_record" {
continue
Expand Down
7 changes: 2 additions & 5 deletions linode/resource_linode_domain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ func TestAccLinodeDomain_roundedDomainSecs(t *testing.T) {
}

func testAccCheckLinodeDomainExists(s *terraform.State) error {
client := testAccProvider.Meta().(linodego.Client)
client := testAccProvider.Meta().(*ProviderMeta).Client

for _, rs := range s.RootModule().Resources {
if rs.Type != "linode_domain" {
Expand All @@ -168,10 +168,7 @@ func testAccCheckLinodeDomainExists(s *terraform.State) error {
}

func testAccCheckLinodeDomainDestroy(s *terraform.State) error {
client, ok := testAccProvider.Meta().(linodego.Client)
if !ok {
return fmt.Errorf("Error getting Linode client")
}
client := testAccProvider.Meta().(*ProviderMeta).Client
for _, rs := range s.RootModule().Resources {
if rs.Type != "linode_domain" {
continue
Expand Down
Loading

0 comments on commit b0664c3

Please sign in to comment.