From 55f939a83a3112b662e72e32e8f97c4152cecf56 Mon Sep 17 00:00:00 2001 From: Paul Stack Date: Wed, 29 Jun 2016 16:30:11 +0100 Subject: [PATCH] provider/digitalocean: Support Import `digitalocean_floating_ip` (#7343) ``` make testacc TEST=./builtin/providers/digitalocean TESTARGS='-run=TestAccDigitalOceanFloatingIP_' ==> Checking that code complies with gofmt requirements... go generate $(go list ./... | grep -v /vendor/) TF_ACC=1 go test ./builtin/providers/digitalocean -v -run=TestAccDigitalOceanFloatingIP_ -timeout 120m === RUN TestAccDigitalOceanFloatingIP_importBasicRegion --- PASS: TestAccDigitalOceanFloatingIP_importBasicRegion (3.76s) === RUN TestAccDigitalOceanFloatingIP_importBasicDroplet --- PASS: TestAccDigitalOceanFloatingIP_importBasicDroplet (72.41s) === RUN TestAccDigitalOceanFloatingIP_Region --- PASS: TestAccDigitalOceanFloatingIP_Region (3.46s) === RUN TestAccDigitalOceanFloatingIP_Droplet --- PASS: TestAccDigitalOceanFloatingIP_Droplet (74.49s) PASS ok github.com/hashicorp/terraform/builtin/providers/digitalocean 154.128s ``` --- import_digitalocean_floating_ip_test.go | 49 +++++++++++++++++++++++++ resource_digitalocean_floating_ip.go | 4 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 import_digitalocean_floating_ip_test.go diff --git a/import_digitalocean_floating_ip_test.go b/import_digitalocean_floating_ip_test.go new file mode 100644 index 00000000..5114cac2 --- /dev/null +++ b/import_digitalocean_floating_ip_test.go @@ -0,0 +1,49 @@ +package digitalocean + +import ( + "testing" + + "github.com/hashicorp/terraform/helper/resource" +) + +func TestAccDigitalOceanFloatingIP_importBasicRegion(t *testing.T) { + resourceName := "digitalocean_floating_ip.foobar" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckDigitalOceanFloatingIPDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckDigitalOceanFloatingIPConfig_region, + }, + + resource.TestStep{ + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func TestAccDigitalOceanFloatingIP_importBasicDroplet(t *testing.T) { + resourceName := "digitalocean_floating_ip.foobar" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckDigitalOceanFloatingIPDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckDigitalOceanFloatingIPConfig_droplet, + }, + + resource.TestStep{ + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} diff --git a/resource_digitalocean_floating_ip.go b/resource_digitalocean_floating_ip.go index 1479ecfa..c6b9cd32 100644 --- a/resource_digitalocean_floating_ip.go +++ b/resource_digitalocean_floating_ip.go @@ -16,6 +16,9 @@ func resourceDigitalOceanFloatingIp() *schema.Resource { Update: resourceDigitalOceanFloatingIpUpdate, Read: resourceDigitalOceanFloatingIpRead, Delete: resourceDigitalOceanFloatingIpDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, Schema: map[string]*schema.Schema{ "ip_address": &schema.Schema{ @@ -123,7 +126,6 @@ func resourceDigitalOceanFloatingIpRead(d *schema.ResourceData, meta interface{} log.Printf("[INFO] The region of the Droplet is %s", floatingIp.Droplet.Region.Slug) d.Set("region", floatingIp.Droplet.Region.Slug) d.Set("droplet_id", floatingIp.Droplet.ID) - } else { d.Set("region", floatingIp.Region.Slug) }