Skip to content

Commit

Permalink
Merge pull request #22246 from hashicorp/b-aws_fsx_ontap_storage_virt…
Browse files Browse the repository at this point in the history
…ual_machine.organizational_unit_distinguidshed_name

r/aws_fsx_ontap_storage_virtual_machine: Deprecate `organizational_unit_distinguidshed_name` in favor of `organizational_unit_distinguished_name`
  • Loading branch information
ewbankkit committed Dec 16, 2021
2 parents fb61252 + b3363c6 commit e36557e
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 5 deletions.
3 changes: 3 additions & 0 deletions .changelog/22246.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:note
resource/aws_fsx_ontap_storage_virtual_machine: The `active_directory_configuration.self_managed_active_directory_configuration.organizational_unit_distinguidshed_name` attribute has been deprecated. All configurations using `active_directory_configuration.self_managed_active_directory_configuration.organizational_unit_distinguidshed_name` should be updated to use the new `active_directory_configuration.self_managed_active_directory_configuration.organizational_unit_distinguished_name` attribute instead
```
25 changes: 20 additions & 5 deletions internal/service/fsx/ontap_storage_virtual_machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,19 @@ func ResourceOntapStorageVirtualMachine() *schema.Resource {
ValidateFunc: validation.StringLenBetween(1, 256),
},
"organizational_unit_distinguidshed_name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringLenBetween(1, 2000),
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringLenBetween(1, 2000),
Deprecated: "use 'organizational_unit_distinguished_name' instead",
ConflictsWith: []string{"active_directory_configuration.0.self_managed_active_directory_configuration.0.organizational_unit_distinguished_name"},
},
"organizational_unit_distinguished_name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringLenBetween(1, 2000),
ConflictsWith: []string{"active_directory_configuration.0.self_managed_active_directory_configuration.0.organizational_unit_distinguidshed_name"},
},
"password": {
Type: schema.TypeString,
Expand Down Expand Up @@ -423,6 +432,8 @@ func expandFsxOntapSvmSelfManagedActiveDirectoryConfiguration(cfg []interface{})

if v, ok := conf["organizational_unit_distinguidshed_name"].(string); ok && len(v) > 0 {
out.OrganizationalUnitDistinguishedName = aws.String(v)
} else if v, ok := conf["organizational_unit_distinguished_name"].(string); ok && len(v) > 0 {
out.OrganizationalUnitDistinguishedName = aws.String(v)
}

if v, ok := conf["password"].(string); ok && len(v) > 0 {
Expand Down Expand Up @@ -512,7 +523,11 @@ func flattenFsxOntapSelfManagedActiveDirectoryConfiguration(d *schema.ResourceDa
}

if rs.OrganizationalUnitDistinguishedName != nil {
m["organizational_unit_distinguidshed_name"] = aws.StringValue(rs.OrganizationalUnitDistinguishedName)
if _, ok := d.GetOk("active_directory_configuration.0.self_managed_active_directory_configuration.0.organizational_unit_distinguidshed_name"); ok {
m["organizational_unit_distinguidshed_name"] = aws.StringValue(rs.OrganizationalUnitDistinguishedName)
} else {
m["organizational_unit_distinguished_name"] = aws.StringValue(rs.OrganizationalUnitDistinguishedName)
}
}

if rs.UserName != nil {
Expand Down
62 changes: 62 additions & 0 deletions internal/service/fsx/ontap_storage_virtual_machine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,47 @@ func TestAccFSxOntapStorageVirtualMachine_activeDirectory(t *testing.T) {
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.0.self_managed_active_directory_configuration.0.domain_name", domainName),
resource.TestCheckResourceAttr(resourceName, "endpoints.0.smb.#", "1"),
resource.TestCheckResourceAttrSet(resourceName, "endpoints.0.smb.0.dns_name"),
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.0.self_managed_active_directory_configuration.0.organizational_unit_distinguished_name", fmt.Sprintf("OU=computers,OU=%s", domainNetbiosName)),
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.0.self_managed_active_directory_configuration.0.password", domainPassword1),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"active_directory_configuration",
},
},
},
})
}

func TestAccFSxOntapStorageVirtualMachine_activeDirectoryDeprecatedOrganizationalUnitDistinguishedName(t *testing.T) {
var storageVirtualMachine1 fsx.StorageVirtualMachine
resourceName := "aws_fsx_ontap_storage_virtual_machine.test"
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
netBiosName := "tftest-" + sdkacctest.RandString(7)
domainNetbiosName := "tftestcorp"
domainName := "tftestcorp.local"
domainPassword1 := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t); acctest.PreCheckPartitionHasService(fsx.EndpointsID, t) },
ErrorCheck: acctest.ErrorCheck(t, fsx.EndpointsID),
Providers: acctest.Providers,
CheckDestroy: testAccCheckFsxOntapStorageVirtualMachineDestroy,
Steps: []resource.TestStep{
{
Config: testAccFsxOntapStorageVirutalMachineSelfManagedActiveDirectoryConfigDeprecatedOrganizationalUnitDistinguishedName(rName, netBiosName, domainNetbiosName, domainName, domainPassword1),
Check: resource.ComposeTestCheckFunc(
testAccCheckFsxOntapStorageVirtualMachineExists(resourceName, &storageVirtualMachine1),
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.#", "1"),
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.0.netbios_name", strings.ToUpper(netBiosName)),
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.0.self_managed_active_directory_configuration.0.domain_name", domainName),
resource.TestCheckResourceAttr(resourceName, "endpoints.0.smb.#", "1"),
resource.TestCheckResourceAttrSet(resourceName, "endpoints.0.smb.0.dns_name"),
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.0.self_managed_active_directory_configuration.0.organizational_unit_distinguidshed_name", fmt.Sprintf("OU=computers,OU=%s", domainNetbiosName)),
resource.TestCheckResourceAttr(resourceName, "active_directory_configuration.0.self_managed_active_directory_configuration.0.password", domainPassword1),
),
},
Expand Down Expand Up @@ -466,6 +507,27 @@ resource "aws_fsx_ontap_storage_virtual_machine" "test" {
name = %[1]q
depends_on = [aws_directory_service_directory.test]
active_directory_configuration {
netbios_name = %[2]q
self_managed_active_directory_configuration {
dns_ips = aws_directory_service_directory.test.dns_ip_addresses
domain_name = %[3]q
password = %[4]q
username = "Admin"
organizational_unit_distinguished_name = "OU=computers,OU=%[5]s"
}
}
}
`, rName, netBiosName, domainName, domainPassword, domainNetbiosName))
}

func testAccFsxOntapStorageVirutalMachineSelfManagedActiveDirectoryConfigDeprecatedOrganizationalUnitDistinguishedName(rName string, netBiosName string, domainNetbiosName string, domainName string, domainPassword string) string {
return acctest.ConfigCompose(testAccOntapStorageVirtualMachineADConfig(rName, domainName, domainPassword), fmt.Sprintf(`
resource "aws_fsx_ontap_storage_virtual_machine" "test" {
file_system_id = aws_fsx_ontap_file_system.test.id
name = %[1]q
depends_on = [aws_directory_service_directory.test]
active_directory_configuration {
netbios_name = %[2]q
self_managed_active_directory_configuration {
Expand Down

0 comments on commit e36557e

Please sign in to comment.