Skip to content

Commit

Permalink
[azurerm_key_vault_certificate] - switches the emails, `dns_n… (#4645)
Browse files Browse the repository at this point in the history
  • Loading branch information
hbuckle authored and katbyte committed Oct 21, 2019
1 parent e9adf34 commit dd861c2
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 13 deletions.
29 changes: 19 additions & 10 deletions azurerm/resource_arm_key_vault_certificate.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/set"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/tf"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/validate"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/features"
Expand Down Expand Up @@ -281,28 +282,31 @@ func resourceArmKeyVaultCertificate() *schema.Resource {
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"emails": {
Type: schema.TypeList,
Type: schema.TypeSet,
Optional: true,
ForceNew: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Set: schema.HashString,
},
"dns_names": {
Type: schema.TypeList,
Type: schema.TypeSet,
Optional: true,
ForceNew: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Set: schema.HashString,
},
"upns": {
Type: schema.TypeList,
Type: schema.TypeSet,
Optional: true,
ForceNew: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Set: schema.HashString,
},
},
},
Expand Down Expand Up @@ -639,17 +643,17 @@ func expandKeyVaultCertificatePolicy(d *schema.ResourceData) keyvault.Certificat
if sans[0] != nil {
san := sans[0].(map[string]interface{})

emails := san["emails"].([]interface{})
emails := san["emails"].(*schema.Set).List()
if len(emails) > 0 {
subjectAlternativeNames.Emails = utils.ExpandStringSlice(emails)
}

dnsNames := san["dns_names"].([]interface{})
dnsNames := san["dns_names"].(*schema.Set).List()
if len(dnsNames) > 0 {
subjectAlternativeNames.DNSNames = utils.ExpandStringSlice(dnsNames)
}

upns := san["upns"].([]interface{})
upns := san["upns"].(*schema.Set).List()
if len(upns) > 0 {
subjectAlternativeNames.Upns = utils.ExpandStringSlice(upns)
}
Expand Down Expand Up @@ -737,10 +741,15 @@ func flattenKeyVaultCertificatePolicy(input *keyvault.CertificatePolicy) []inter
sanOutputs := make([]interface{}, 0)
if san := props.SubjectAlternativeNames; san != nil {
sanOutput := make(map[string]interface{})

sanOutput["emails"] = utils.FlattenStringSlice(san.Emails)
sanOutput["dns_names"] = utils.FlattenStringSlice(san.DNSNames)
sanOutput["upns"] = utils.FlattenStringSlice(san.Upns)
if emails := san.Emails; emails != nil {
sanOutput["emails"] = set.FromStringSlice(*emails)
}
if dnsNames := san.DNSNames; dnsNames != nil {
sanOutput["dns_names"] = set.FromStringSlice(*dnsNames)
}
if upns := san.Upns; upns != nil {
sanOutput["upns"] = set.FromStringSlice(*upns)
}

sanOutputs = append(sanOutputs, sanOutput)
}
Expand Down
6 changes: 3 additions & 3 deletions azurerm/resource_arm_key_vault_certificate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,9 +183,9 @@ func TestAccAzureRMKeyVaultCertificate_basicGenerateSans(t *testing.T) {
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMKeyVaultCertificateExists(resourceName),
resource.TestCheckResourceAttrSet(resourceName, "certificate_data"),
resource.TestCheckResourceAttr(resourceName, "certificate_policy.0.x509_certificate_properties.0.subject_alternative_names.0.emails.0", "[email protected]"),
resource.TestCheckResourceAttr(resourceName, "certificate_policy.0.x509_certificate_properties.0.subject_alternative_names.0.dns_names.0", "internal.contoso.com"),
resource.TestCheckResourceAttr(resourceName, "certificate_policy.0.x509_certificate_properties.0.subject_alternative_names.0.upns.0", "[email protected]"),
resource.TestCheckResourceAttr(resourceName, "certificate_policy.0.x509_certificate_properties.0.subject_alternative_names.0.emails.#", "1"),
resource.TestCheckResourceAttr(resourceName, "certificate_policy.0.x509_certificate_properties.0.subject_alternative_names.0.dns_names.#", "1"),
resource.TestCheckResourceAttr(resourceName, "certificate_policy.0.x509_certificate_properties.0.subject_alternative_names.0.upns.#", "1"),
),
},
},
Expand Down

0 comments on commit dd861c2

Please sign in to comment.