Commit Graph

24 Commits

Author SHA1 Message Date
Sergey 0ff734f157 provider/digitalocean: Support disk only resize (#13059)
Allow to resize a droplet permanently (i.e. apply disk resize)
if previously it was resized temporarily (CPU and RAM only).

Fixes: #13007

```
$ make testacc TEST=./builtin/providers/digitalocean TESTARGS='-run=TestAccDigitalOceanDroplet_ResizeOnlyDisk'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/03/25 03:54:23 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/digitalocean -v -run=TestAccDigitalOceanDroplet_ResizeOnlyDisk -timeout 120m
=== RUN   TestAccDigitalOceanDroplet_ResizeOnlyDisk
--- PASS: TestAccDigitalOceanDroplet_ResizeOnlyDisk (198.62s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/digitalocean	198.638s
```
2017-03-27 13:16:01 +03:00
Jake Champlin d5222aa2e6
provider/digitalocean: Update digital ocean acceptance tests
Digital Ocean doesn't let you upload multiple SSH keys regardless of key_name, but on the fingerprint of the key contents. Which broke all of our tests when ran in parallel.

These changes maintain our acctest validity, and still let them pass.

```
##teamcity[testStarted timestamp='2017-02-10T16:19:12.532' name='TestAccDigitalOceanDroplet_Basic']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_Basic' out='=== RUN   TestAccDigitalOceanDroplet_Basic|n--- PASS: TestAccDigitalOceanDroplet_Basic (47.33s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_Basic' out='']
##teamcity[testFinished timestamp='2017-02-10T16:19:59.898' name='TestAccDigitalOceanDroplet_Basic']
##teamcity[testStarted timestamp='2017-02-10T16:19:12.532' name='TestAccDigitalOceanDroplet_UpdateTags']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_UpdateTags' out='=== RUN   TestAccDigitalOceanDroplet_UpdateTags|n--- PASS: TestAccDigitalOceanDroplet_UpdateTags (50.96s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_UpdateTags' out='']
##teamcity[testFinished timestamp='2017-02-10T16:20:03.516' name='TestAccDigitalOceanDroplet_UpdateTags']
##teamcity[testStarted timestamp='2017-02-10T16:19:12.530' name='TestAccDigitalOceanDroplet_importBasic']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_importBasic' out='=== RUN   TestAccDigitalOceanDroplet_importBasic|n--- PASS: TestAccDigitalOceanDroplet_importBasic (56.78s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_importBasic' out='']
##teamcity[testFinished timestamp='2017-02-10T16:20:09.335' name='TestAccDigitalOceanDroplet_importBasic']
##teamcity[testStarted timestamp='2017-02-10T16:19:12.530' name='TestAccDigitalOceanDroplet_PrivateNetworkingIpv6']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_PrivateNetworkingIpv6' out='=== RUN   TestAccDigitalOceanDroplet_PrivateNetworkingIpv6|n--- PASS: TestAccDigitalOceanDroplet_PrivateNetworkingIpv6 (57.60s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_PrivateNetworkingIpv6' out='']
##teamcity[testFinished timestamp='2017-02-10T16:20:10.157' name='TestAccDigitalOceanDroplet_PrivateNetworkingIpv6']
##teamcity[testStarted timestamp='2017-02-10T16:19:12.533' name='TestAccDigitalOceanDroplet_withSSH']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_withSSH' out='=== RUN   TestAccDigitalOceanDroplet_withSSH|n--- PASS: TestAccDigitalOceanDroplet_withSSH (59.76s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_withSSH' out='']
##teamcity[testFinished timestamp='2017-02-10T16:20:12.326' name='TestAccDigitalOceanDroplet_withSSH']
##teamcity[testStarted timestamp='2017-02-10T16:19:12.530' name='TestAccDigitalOceanDroplet_Update']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_Update' out='=== RUN   TestAccDigitalOceanDroplet_Update|n--- PASS: TestAccDigitalOceanDroplet_Update (83.65s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_Update' out='']
##teamcity[testFinished timestamp='2017-02-10T16:20:36.213' name='TestAccDigitalOceanDroplet_Update']
##teamcity[testStarted timestamp='2017-02-10T16:19:12.530' name='TestAccDigitalOceanDroplet_UpdateUserData']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_UpdateUserData' out='=== RUN   TestAccDigitalOceanDroplet_UpdateUserData|n--- PASS: TestAccDigitalOceanDroplet_UpdateUserData (103.18s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_UpdateUserData' out='']
##teamcity[testFinished timestamp='2017-02-10T16:20:55.738' name='TestAccDigitalOceanDroplet_UpdateUserData']
##teamcity[testStarted timestamp='2017-02-10T16:19:12.533' name='TestAccDigitalOceanDroplet_ResizeWithOutDisk']
##teamcity[testStdOut name='TestAccDigitalOceanDroplet_ResizeWithOutDisk' out='=== RUN   TestAccDigitalOceanDroplet_ResizeWithOutDisk|n--- PASS: TestAccDigitalOceanDroplet_ResizeWithOutDisk (118.98s)|nPASS|n']
##teamcity[testStdErr name='TestAccDigitalOceanDroplet_ResizeWithOutDisk' out='']
##teamcity[testFinished timestamp='2017-02-10T16:21:11.558' name='TestAccDigitalOceanDroplet_ResizeWithOutDisk']
```
2017-02-10 16:41:35 -05:00
Jake Champlin e272cb2243 provider/digitalocean: Fix failing acceptance test (#11310)
Fixes failing acceptance test:
```
$ make testacc TEST=./builtin/providers/digitalocean TESTARGS='-run=TestAccDigitalOceanVolume_Droplet'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/01/20 11:38:26 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/digitalocean -v -run=TestAccDigitalOceanVolume_Droplet -timeout 120m
=== RUN   TestAccDigitalOceanVolume_Droplet
--- PASS: TestAccDigitalOceanVolume_Droplet (57.38s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/digitalocean   57.411s
```

Also removes all redundant type declarations in the digitalocean package.
2017-01-20 17:47:54 +00:00
Jake Champlin 712b3e74b6
provider/digitalocean: Fix failing acceptance test
The second step of the `TestAccDigitalOceanDroplet_ResizeWithOutDisk` acceptance test was regularly failing. Upon investigation it was found that the second step's Terraform configuration had omitted the `user_data` parameter, thus forcing Terraform to create a new droplet resource instead of updating the current resource.

```
-/+ digitalocean_droplet.foobar
    disk:                 "20" => "<computed>"
    image:                "centos-7-x64" => "centos-7-x64"
    ipv4_address:         "138.197.0.55" => "<computed>"
    ipv4_address_private: "" => "<computed>"
    ipv6_address:         "" => "<computed>"
    ipv6_address_private: "" => "<computed>"
    locked:               "false" => "<computed>"
    name:                 "foo" => "foo"
    region:               "nyc3" => "nyc3"
    resize_disk:          "true" => "false"
    size:                 "512mb" => "1gb"
    ssh_keys.#:           "1" => "1"
    ssh_keys.0:           "5770472" => "5770472"
    status:               "active" => "<computed>"
    user_data:            "foobar" => "" (forces new resource)
    vcpus:                "1" => "<computed>"
```

This fixes the acceptance test by adding the missing `user_data` parameter.
2017-01-10 10:00:04 -05:00
stack72 3ecdc057b5
provider/digitalocean: Removal of an old test that was causing the CI acceptance tests to hang 2016-12-12 17:11:20 +00:00
James Bardin 909099560d Fix future vet errors in providers 2016-11-10 18:10:43 -05:00
Andrew Starr-Bochicchio ccff5af8e7 Allow resizing DigitalOcean Droplets without increasing disk size. 2016-10-24 20:00:04 -04:00
Paul Stack eac6546e33 provider/digitalocean: Enforce Lowercase on IPV6 Addresses (#7652)
IPV6 Addresses are generally case insensitive but it is recommented to
store them as lowercase (https://tools.ietf.org/html/rfc5952#section-4.3)

When Terraform didn't store them as LowerCase, we got the following
error when using in DNS records:

```
-/+ digitalocean_record.web6
    domain:   "mydomain.com" => "mydomain.com"
    fqdn:     "web02.in.mydomain.com" => "<computed>"
    name:     "web02.in" => "web02.in"
    port:     "0" => "<computed>"
    priority: "0" => "<computed>"
    type:     "AAAA" => "AAAA"
    value:    "2a03:b0c0:0003:00d0:0000:0000:0b66:6001" => "2A03:B0C0:0003:00D0:0000:0000:0B66:6001" (forces new resource)
    weight:   "0" => "<computed>"
```

There was no need for this to be the case. We now enforce lowercase on both state and also when responses are returned from the API
2016-08-15 15:52:48 +01:00
stack72 43ac64e2b7
provider/digitalocean: Acceptance Tests needed a new Image Name 2016-08-08 12:08:37 +12:00
Tommy Murphy 0c6856f85c digitalocean tag support (#7500)
* vendor: update godo to support tags

* digitalocean: introduce tag resource

* website: update for digitalocean_tag resource
2016-07-11 12:09:06 +01:00
Paul Hinze 028664a015 provider/digitalocean: acctest improvements
* Add SSH Keys to all droplets in tests, this prevents acctests from
   spamming account owner email with root password details
 * Add a new helper/acctest package to be a home for random string / int
   implementations used in tests.
 * Insert some random details into record tests to prevent collisions
 * Normalize config style in tests to hclfmt conventions
2016-01-04 15:30:35 -06:00
Paul Hinze bf11be82c8 provider/digitalocean: enhance user_data test
Checks to ensure that the droplet is recreated. Commenting out
`ForceNew` on `user_data` fails the test now.

/cc @stack72
2015-11-04 15:20:52 -06:00
stack72 ffdd4de326 Making user_data force a new droplet for DigitalOcean 2015-11-03 20:53:54 +00:00
Antoine Grondin 0bcf557198 use official Go client for DigitalOcean provider 2015-09-27 01:09:51 -04:00
Sander van Harmelen 12f6ccb731 Refactor the DigitalOcean provider
With this refactor the DigitalOcean provider is updated to use the
schema.Provider approach released with TF 0.2.
2014-11-18 11:26:59 +01:00
Jack Pearkes ecf66ad7b5 providers/digitalocean: compat for changes to API for droplet size
Upstream in the digitalocean API, the size slug became a size
string, breaking pearkes/digitalocean.

https://github.com/pearkes/digitalocean/pull/1

This fixes compatibility for changes to that library.

closes #510
2014-11-02 14:50:59 -08:00
Mitchell Hashimoto aafbc2ab7c providers/digitalocean: tests passing, compiling 2014-09-16 17:28:22 -07:00
Jack Pearkes 58a482d677 providers/digitalocean: fix tests for region
the user_data argument doesn't exist on all regions
2014-09-05 11:18:49 -04:00
Jack Pearkes 28692656e2 providers/digitalocean: add user_data for create droplet
fixes #267
2014-09-05 11:16:12 -04:00
Jack Pearkes 872acb3740 providers/digitalocean: fix ip address when using private networking
This adds a new `ipv4_address_private` and `ipv4_address_public`
computed attr. Also pulls in upstream changes from pearkes/digitalocean
2014-07-29 19:04:10 -04:00
Jack Pearkes ed8980714c providers/digitalocean: handle locked droplets and retry 2014-07-21 11:05:24 -04:00
Jack Pearkes 7be85deb92 providers/digitalocean: updates 2014-07-19 12:33:25 -04:00
Jack Pearkes 0965332b88 providers/digitalocean: WaitForAttribute 2014-07-19 09:45:42 -04:00
Jack Pearkes 4455a6120c providers/digitalocean: initial commit 2014-07-18 20:20:28 -04:00