registry credentials: Update default expiry and don't ignore error (#467)

* Add test using the default expiry.

* Don't ignore error when calling updateExpiredDockerCredentials.

* Set default to the new max allowed by the API.
This commit is contained in:
Andrew Starr-Bochicchio 2020-07-21 15:35:19 -04:00 committed by GitHub
parent 1f18243ebc
commit 11296f12ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 5 deletions

View File

@ -10,7 +10,7 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
)
const expirySecondsDefault = 2147483647 // Max value of signed 32 bit integer
const expirySecondsDefault = 1576800000 // Max allowed by the API, roughly 50 years
func resourceDigitalOceanContainerRegistryDockerCredentials() *schema.Resource {
return &schema.Resource{
@ -37,7 +37,7 @@ func resourceDigitalOceanContainerRegistryDockerCredentials() *schema.Resource {
"expiry_seconds": {
Type: schema.TypeInt,
Optional: true,
Default: expirySecondsDefault, // Relatively close to max value of Duration
Default: expirySecondsDefault,
},
"docker_credentials": {
Type: schema.TypeString,
@ -73,7 +73,10 @@ func resourceDigitalOceanContainerRegistryDockerCredentialsRead(d *schema.Resour
d.Set("registry_name", reg.Name)
d.Set("write", write)
updateExpiredDockerCredentials(d, write, client)
err = updateExpiredDockerCredentials(d, write, client)
if err != nil {
return err
}
return nil
}

View File

@ -20,6 +20,33 @@ func TestAccDigitalOceanContainerRegistryDockerCredentials_Basic(t *testing.T) {
Steps: []resource.TestStep{
{
Config: testAccCheckDigitalOceanContainerRegistryDockerCredentialsConfig_basic,
Check: resource.ComposeTestCheckFunc(
testAccCheckDigitalOceanContainerRegistryDockerCredentialsExists("digitalocean_container_registry.foobar", &reg),
testAccCheckDigitalOceanContainerRegistryDockerCredentialsAttributes(&reg),
resource.TestCheckResourceAttr(
"digitalocean_container_registry_docker_credentials.foobar", "registry_name", "foobar"),
resource.TestCheckResourceAttr(
"digitalocean_container_registry_docker_credentials.foobar", "write", "true"),
resource.TestCheckResourceAttrSet(
"digitalocean_container_registry_docker_credentials.foobar", "docker_credentials"),
resource.TestCheckResourceAttrSet(
"digitalocean_container_registry_docker_credentials.foobar", "credential_expiration_time"),
),
},
},
})
}
func TestAccDigitalOceanContainerRegistryDockerCredentials_withExpiry(t *testing.T) {
var reg godo.Registry
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckDigitalOceanContainerRegistryDockerCredentialsDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckDigitalOceanContainerRegistryDockerCredentialsConfig_withExpiry,
Check: resource.ComposeTestCheckFunc(
testAccCheckDigitalOceanContainerRegistryDockerCredentialsExists("digitalocean_container_registry.foobar", &reg),
testAccCheckDigitalOceanContainerRegistryDockerCredentialsAttributes(&reg),
@ -101,6 +128,16 @@ resource "digitalocean_container_registry" "foobar" {
name = "foobar"
}
resource "digitalocean_container_registry_docker_credentials" "foobar" {
registry_name = digitalocean_container_registry.foobar.name
write = true
}`
var testAccCheckDigitalOceanContainerRegistryDockerCredentialsConfig_withExpiry = `
resource "digitalocean_container_registry" "foobar" {
name = "foobar"
}
resource "digitalocean_container_registry_docker_credentials" "foobar" {
registry_name = digitalocean_container_registry.foobar.name
write = true

View File

@ -49,10 +49,10 @@ provider "docker" {
### Kubernetes Example
Combined with the Kubernetes Provider's `kubernetes_secret` resource, you can
Combined with the Kubernetes Provider's `kubernetes_secret` resource, you can
access the registry from inside your cluster:
```
```hcl
resource "digitalocean_container_registry_docker_credentials" "example" {
registry_name = "example"
}