@@ -53,6 +53,7 @@ func TestAccFSxLustreFileSystem_basic(t *testing.T) {
53
53
resource .TestCheckResourceAttr (resourceName , "imported_file_chunk_size" , acctest .Ct0 ),
54
54
resource .TestCheckResourceAttr (resourceName , "log_configuration.#" , acctest .Ct1 ),
55
55
resource .TestCheckResourceAttr (resourceName , "log_configuration.0.level" , "DISABLED" ),
56
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.#" , acctest .Ct0 ),
56
57
resource .TestCheckResourceAttrSet (resourceName , "mount_name" ),
57
58
resource .TestCheckResourceAttr (resourceName , "network_interface_ids.#" , acctest .Ct2 ),
58
59
acctest .CheckResourceAttrAccountID (resourceName , names .AttrOwnerID ),
@@ -768,6 +769,130 @@ func TestAccFSxLustreFileSystem_logConfig(t *testing.T) {
768
769
})
769
770
}
770
771
772
+ func TestAccFSxLustreFileSystem_metadataConfig (t * testing.T ) {
773
+ ctx := acctest .Context (t )
774
+ var filesystem1 , filesystem2 fsx.FileSystem
775
+ resourceName := "aws_fsx_lustre_file_system.test"
776
+ rName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
777
+
778
+ resource .ParallelTest (t , resource.TestCase {
779
+ PreCheck : func () { acctest .PreCheck (ctx , t ); acctest .PreCheckPartitionHasService (t , fsx .EndpointsID ) },
780
+ ErrorCheck : acctest .ErrorCheck (t , names .FSxServiceID ),
781
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
782
+ CheckDestroy : testAccCheckLustreFileSystemDestroy (ctx ),
783
+ Steps : []resource.TestStep {
784
+ {
785
+ Config : testAccLustreFileSystemConfig_metadata (rName , "AUTOMATIC" ),
786
+ Check : resource .ComposeTestCheckFunc (
787
+ testAccCheckLustreFileSystemExists (ctx , resourceName , & filesystem1 ),
788
+ testAccCheckLustreFileSystemExists (ctx , resourceName , & filesystem1 ),
789
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.#" , acctest .Ct1 ),
790
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.mode" , "AUTOMATIC" ),
791
+ resource .TestCheckResourceAttrSet (resourceName , "metadata_configuration.0.iops" ),
792
+ ),
793
+ },
794
+ {
795
+ ResourceName : resourceName ,
796
+ ImportState : true ,
797
+ ImportStateVerify : true ,
798
+ ImportStateVerifyIgnore : []string {names .AttrSecurityGroupIDs },
799
+ },
800
+ {
801
+ Config : testAccLustreFileSystemConfig_metadata_iops (rName , "USER_PROVISIONED" , 1500 ),
802
+ Check : resource .ComposeTestCheckFunc (
803
+ testAccCheckLustreFileSystemExists (ctx , resourceName , & filesystem2 ),
804
+ testAccCheckLustreFileSystemNotRecreated (& filesystem1 , & filesystem2 ),
805
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.#" , acctest .Ct1 ),
806
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.mode" , "USER_PROVISIONED" ),
807
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.iops" , "1500" ),
808
+ ),
809
+ },
810
+ },
811
+ })
812
+ }
813
+
814
+ func TestAccFSxLustreFileSystem_metadataConfig_increase (t * testing.T ) {
815
+ ctx := acctest .Context (t )
816
+ var filesystem1 , filesystem2 fsx.FileSystem
817
+ resourceName := "aws_fsx_lustre_file_system.test"
818
+ rName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
819
+
820
+ resource .ParallelTest (t , resource.TestCase {
821
+ PreCheck : func () { acctest .PreCheck (ctx , t ); acctest .PreCheckPartitionHasService (t , fsx .EndpointsID ) },
822
+ ErrorCheck : acctest .ErrorCheck (t , names .FSxServiceID ),
823
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
824
+ CheckDestroy : testAccCheckLustreFileSystemDestroy (ctx ),
825
+ Steps : []resource.TestStep {
826
+ {
827
+ Config : testAccLustreFileSystemConfig_metadata_iops (rName , "USER_PROVISIONED" , 1500 ),
828
+ Check : resource .ComposeTestCheckFunc (
829
+ testAccCheckLustreFileSystemExists (ctx , resourceName , & filesystem1 ),
830
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.#" , acctest .Ct1 ),
831
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.mode" , "USER_PROVISIONED" ),
832
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.iops" , "1500" ),
833
+ ),
834
+ },
835
+ {
836
+ ResourceName : resourceName ,
837
+ ImportState : true ,
838
+ ImportStateVerify : true ,
839
+ ImportStateVerifyIgnore : []string {names .AttrSecurityGroupIDs },
840
+ },
841
+ {
842
+ Config : testAccLustreFileSystemConfig_metadata_iops (rName , "USER_PROVISIONED" , 3000 ),
843
+ Check : resource .ComposeTestCheckFunc (
844
+ testAccCheckLustreFileSystemExists (ctx , resourceName , & filesystem2 ),
845
+ testAccCheckLustreFileSystemNotRecreated (& filesystem1 , & filesystem2 ),
846
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.#" , acctest .Ct1 ),
847
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.mode" , "USER_PROVISIONED" ),
848
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.iops" , "3000" ),
849
+ ),
850
+ },
851
+ },
852
+ })
853
+ }
854
+
855
+ func TestAccFSxLustreFileSystem_metadataConfig_decrease (t * testing.T ) {
856
+ ctx := acctest .Context (t )
857
+ var filesystem1 , filesystem2 fsx.FileSystem
858
+ resourceName := "aws_fsx_lustre_file_system.test"
859
+ rName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
860
+
861
+ resource .ParallelTest (t , resource.TestCase {
862
+ PreCheck : func () { acctest .PreCheck (ctx , t ); acctest .PreCheckPartitionHasService (t , fsx .EndpointsID ) },
863
+ ErrorCheck : acctest .ErrorCheck (t , names .FSxServiceID ),
864
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
865
+ CheckDestroy : testAccCheckLustreFileSystemDestroy (ctx ),
866
+ Steps : []resource.TestStep {
867
+ {
868
+ Config : testAccLustreFileSystemConfig_metadata_iops (rName , "USER_PROVISIONED" , 3000 ),
869
+ Check : resource .ComposeTestCheckFunc (
870
+ testAccCheckLustreFileSystemExists (ctx , resourceName , & filesystem1 ),
871
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.#" , acctest .Ct1 ),
872
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.mode" , "USER_PROVISIONED" ),
873
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.iops" , "3000" ),
874
+ ),
875
+ },
876
+ {
877
+ ResourceName : resourceName ,
878
+ ImportState : true ,
879
+ ImportStateVerify : true ,
880
+ ImportStateVerifyIgnore : []string {names .AttrSecurityGroupIDs },
881
+ },
882
+ {
883
+ Config : testAccLustreFileSystemConfig_metadata_iops (rName , "USER_PROVISIONED" , 1500 ),
884
+ Check : resource .ComposeTestCheckFunc (
885
+ testAccCheckLustreFileSystemExists (ctx , resourceName , & filesystem2 ),
886
+ testAccCheckLustreFileSystemRecreated (& filesystem1 , & filesystem2 ),
887
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.#" , acctest .Ct1 ),
888
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.mode" , "USER_PROVISIONED" ),
889
+ resource .TestCheckResourceAttr (resourceName , "metadata_configuration.0.iops" , "1500" ),
890
+ ),
891
+ },
892
+ },
893
+ })
894
+ }
895
+
771
896
func TestAccFSxLustreFileSystem_rootSquashConfig (t * testing.T ) {
772
897
ctx := acctest .Context (t )
773
898
var filesystem fsx.FileSystem
@@ -1608,6 +1733,45 @@ resource "aws_fsx_lustre_file_system" "test" {
1608
1733
` , rName , status ))
1609
1734
}
1610
1735
1736
+ func testAccLustreFileSystemConfig_metadata (rName , mode string ) string {
1737
+ return acctest .ConfigCompose (testAccLustreFileSystemConfig_base (rName ), fmt .Sprintf (`
1738
+ resource "aws_fsx_lustre_file_system" "test" {
1739
+ storage_capacity = 1200
1740
+ subnet_ids = aws_subnet.test[*].id
1741
+ deployment_type = "PERSISTENT_2"
1742
+ per_unit_storage_throughput = 125
1743
+
1744
+ metadata_configuration {
1745
+ mode = %[2]q
1746
+ }
1747
+
1748
+ tags = {
1749
+ Name = %[1]q
1750
+ }
1751
+ }
1752
+ ` , rName , mode ))
1753
+ }
1754
+
1755
+ func testAccLustreFileSystemConfig_metadata_iops (rName , mode string , iops int ) string {
1756
+ return acctest .ConfigCompose (testAccLustreFileSystemConfig_base (rName ), fmt .Sprintf (`
1757
+ resource "aws_fsx_lustre_file_system" "test" {
1758
+ storage_capacity = 1200
1759
+ subnet_ids = aws_subnet.test[*].id
1760
+ deployment_type = "PERSISTENT_2"
1761
+ per_unit_storage_throughput = 125
1762
+
1763
+ metadata_configuration {
1764
+ mode = %[2]q
1765
+ iops = %[3]d
1766
+ }
1767
+
1768
+ tags = {
1769
+ Name = %[1]q
1770
+ }
1771
+ }
1772
+ ` , rName , mode , iops ))
1773
+ }
1774
+
1611
1775
func testAccLustreFileSystemConfig_rootSquash (rName , uid string ) string {
1612
1776
return acctest .ConfigCompose (testAccLustreFileSystemConfig_base (rName ), fmt .Sprintf (`
1613
1777
resource "aws_fsx_lustre_file_system" "test" {
0 commit comments