@@ -970,4 +970,356 @@ data "google_compute_network" "default" {
970970}
971971`, context)
972972}
973+
974+ func TestAccNetappVolume_volumeExportPolicyWithSquashMode(t *testing.T) {
975+ context := map[string]interface{}{
976+ "network_name": acctest.BootstrapSharedServiceNetworkingConnection(t, "gcnv-network-config-3", acctest.ServiceNetworkWithParentService("netapp.servicenetworking.goog")),
977+ "random_suffix": acctest.RandString(t, 10),
978+ }
979+ acctest.VcrTest(t, resource.TestCase{
980+ PreCheck: func() { acctest.AccTestPreCheck(t) },
981+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderBetaFactories(t),
982+ CheckDestroy: testAccCheckNetappVolumeDestroyProducer(t),
983+ ExternalProviders: map[string]resource.ExternalProvider{
984+ "time": {},
985+ },
986+ Steps: []resource.TestStep{
987+ {
988+ Config: testAccNetappVolume_volumeExportPolicyWithSquashMode_noRootSquash(context),
989+ },
990+ {
991+ ResourceName: "google_netapp_volume.test_volume",
992+ ImportState: true,
993+ ImportStateVerify: true,
994+ ImportStateVerifyIgnore: []string{"restore_parameters", "location", "name", "deletion_policy", "labels", "terraform_labels"},
995+ },
996+ {
997+ Config: testAccNetappVolume_volumeExportPolicyWithSquashMode_rootSquash(context),
998+ },
999+ {
1000+ ResourceName: "google_netapp_volume.test_volume",
1001+ ImportState: true,
1002+ ImportStateVerify: true,
1003+ ImportStateVerifyIgnore: []string{"restore_parameters", "location", "name", "deletion_policy", "labels", "terraform_labels"},
1004+ },
1005+ {
1006+ Config: testAccNetappVolume_volumeExportPolicyWithSquashMode_allSquash(context),
1007+ },
1008+ {
1009+ ResourceName: "google_netapp_volume.test_volume",
1010+ ImportState: true,
1011+ ImportStateVerify: true,
1012+ ImportStateVerifyIgnore: []string{"restore_parameters", "location", "name", "deletion_policy", "labels", "terraform_labels"},
1013+ },
1014+ {
1015+ Config: testAccNetappVolume_volumeExportPolicyWithSquashMode_noRootSquash_ReadNoneAccessType(context),
1016+ },
1017+ {
1018+ ResourceName: "google_netapp_volume.test_volume",
1019+ ImportState: true,
1020+ ImportStateVerify: true,
1021+ ImportStateVerifyIgnore: []string{"restore_parameters", "location", "name", "deletion_policy", "labels", "terraform_labels"},
1022+ },
1023+ {
1024+ Config: testAccNetappVolume_volumeExportPolicyWithSquashMode_rootSquash_readOnlyAccessType(context),
1025+ },
1026+ {
1027+ ResourceName: "google_netapp_volume.test_volume",
1028+ ImportState: true,
1029+ ImportStateVerify: true,
1030+ ImportStateVerifyIgnore: []string{"restore_parameters", "location", "name", "deletion_policy", "labels", "terraform_labels"},
1031+ },
1032+ {
1033+ Config: testAccNetappVolume_volumeExportPolicyWithSquashMode_rootSquash_readNoneAccessType(context),
1034+ },
1035+ {
1036+ ResourceName: "google_netapp_volume.test_volume",
1037+ ImportState: true,
1038+ ImportStateVerify: true,
1039+ ImportStateVerifyIgnore: []string{"restore_parameters", "location", "name", "deletion_policy", "labels", "terraform_labels"},
1040+ },
1041+ },
1042+ })
1043+ }
1044+
1045+ func testAccNetappVolume_volumeExportPolicyWithSquashMode_noRootSquash(context map[string]interface{}) string {
1046+ return acctest.Nprintf(`
1047+ resource "google_netapp_storage_pool" "default" {
1048+ provider = google-beta
1049+ name = "tf-test-pool%{random_suffix}"
1050+ location = "us-west2"
1051+ service_level = "PREMIUM"
1052+ capacity_gib = "2048"
1053+ network = data.google_compute_network.default.id
1054+ }
1055+ resource "time_sleep" "wait_3_minutes" {
1056+ depends_on = [google_netapp_storage_pool.default]
1057+ create_duration = "3m"
1058+ }
1059+ resource "google_netapp_volume" "test_volume" {
1060+ provider = google-beta
1061+ location = "us-west2"
1062+ name = "tf-test-test-volume%{random_suffix}"
1063+ capacity_gib = "100"
1064+ share_name = "tf-test-test-volume%{random_suffix}"
1065+ storage_pool = google_netapp_storage_pool.default.name
1066+ protocols = ["NFSV3"]
1067+ export_policy {
1068+ rules {
1069+ access_type = "READ_WRITE"
1070+ allowed_clients = "0.0.0.0/0"
1071+ has_root_access = "true"
1072+ kerberos5_read_only = false
1073+ kerberos5_read_write = false
1074+ kerberos5i_read_only = false
1075+ kerberos5i_read_write = false
1076+ kerberos5p_read_only = false
1077+ kerberos5p_read_write = false
1078+ nfsv3 = true
1079+ nfsv4 = false
1080+ squash_mode = "NO_ROOT_SQUASH"
1081+ }
1082+ }
1083+ }
1084+ data "google_compute_network" "default" {
1085+ provider = google-beta
1086+ name = "%{network_name}"
1087+ }
1088+ `, context)
1089+ }
1090+
1091+ func testAccNetappVolume_volumeExportPolicyWithSquashMode_noRootSquash_ReadNoneAccessType(context map[string]interface{}) string {
1092+ return acctest.Nprintf(`
1093+ resource "google_netapp_storage_pool" "default" {
1094+ provider = google-beta
1095+ name = "tf-test-pool%{random_suffix}"
1096+ location = "us-west2"
1097+ service_level = "PREMIUM"
1098+ capacity_gib = "2048"
1099+ network = data.google_compute_network.default.id
1100+ }
1101+ resource "time_sleep" "wait_3_minutes" {
1102+ depends_on = [google_netapp_storage_pool.default]
1103+ create_duration = "3m"
1104+ }
1105+ resource "google_netapp_volume" "test_volume" {
1106+ provider = google-beta
1107+ location = "us-west2"
1108+ name = "tf-test-test-volume%{random_suffix}"
1109+ capacity_gib = "100"
1110+ share_name = "tf-test-test-volume%{random_suffix}"
1111+ storage_pool = google_netapp_storage_pool.default.name
1112+ protocols = ["NFSV3"]
1113+ export_policy {
1114+ rules {
1115+ access_type = "READ_NONE"
1116+ allowed_clients = "0.0.0.0/0"
1117+ has_root_access = "true"
1118+ kerberos5_read_only = false
1119+ kerberos5_read_write = false
1120+ kerberos5i_read_only = false
1121+ kerberos5i_read_write = false
1122+ kerberos5p_read_only = false
1123+ kerberos5p_read_write = false
1124+ nfsv3 = true
1125+ nfsv4 = false
1126+ squash_mode = "NO_ROOT_SQUASH"
1127+ }
1128+ }
1129+ }
1130+ data "google_compute_network" "default" {
1131+ provider = google-beta
1132+ name = "%{network_name}"
1133+ }
1134+ `, context)
1135+ }
1136+
1137+ func testAccNetappVolume_volumeExportPolicyWithSquashMode_allSquash(context map[string]interface{}) string {
1138+ return acctest.Nprintf(`
1139+ resource "google_netapp_storage_pool" "default" {
1140+ provider = google-beta
1141+ name = "tf-test-pool%{random_suffix}"
1142+ location = "us-west2"
1143+ service_level = "PREMIUM"
1144+ capacity_gib = "2048"
1145+ network = data.google_compute_network.default.id
1146+ }
1147+ resource "time_sleep" "wait_3_minutes" {
1148+ depends_on = [google_netapp_storage_pool.default]
1149+ create_duration = "3m"
1150+ }
1151+ resource "google_netapp_volume" "test_volume" {
1152+ provider = google-beta
1153+ location = "us-west2"
1154+ name = "tf-test-test-volume%{random_suffix}"
1155+ capacity_gib = "100"
1156+ share_name = "tf-test-test-volume%{random_suffix}"
1157+ storage_pool = google_netapp_storage_pool.default.name
1158+ protocols = ["NFSV3"]
1159+ export_policy {
1160+ rules {
1161+ access_type = "READ_NONE"
1162+ allowed_clients = "0.0.0.0/0"
1163+ has_root_access = "false"
1164+ kerberos5_read_only = false
1165+ kerberos5_read_write = false
1166+ kerberos5i_read_only = false
1167+ kerberos5i_read_write = false
1168+ kerberos5p_read_only = false
1169+ kerberos5p_read_write = false
1170+ nfsv3 = true
1171+ nfsv4 = false
1172+ squash_mode = "ALL_SQUASH"
1173+ anon_uid = 65534
1174+ }
1175+ }
1176+ }
1177+
1178+ data "google_compute_network" "default" {
1179+ provider = google-beta
1180+ name = "%{network_name}"
1181+ }
1182+ `, context)
1183+ }
1184+
1185+ func testAccNetappVolume_volumeExportPolicyWithSquashMode_rootSquash(context map[string]interface{}) string {
1186+ return acctest.Nprintf(`
1187+ resource "google_netapp_storage_pool" "default" {
1188+ provider = google-beta
1189+ name = "tf-test-pool%{random_suffix}"
1190+ location = "us-west2"
1191+ service_level = "PREMIUM"
1192+ capacity_gib = "2048"
1193+ network = data.google_compute_network.default.id
1194+ }
1195+ resource "time_sleep" "wait_3_minutes" {
1196+ depends_on = [google_netapp_storage_pool.default]
1197+ create_duration = "3m"
1198+ }
1199+ resource "google_netapp_volume" "test_volume" {
1200+ provider = google-beta
1201+ location = "us-west2"
1202+ name = "tf-test-test-volume%{random_suffix}"
1203+ capacity_gib = "100"
1204+ share_name = "tf-test-test-volume%{random_suffix}"
1205+ storage_pool = google_netapp_storage_pool.default.name
1206+ protocols = ["NFSV3"]
1207+ export_policy {
1208+ rules {
1209+ access_type = "READ_WRITE"
1210+ allowed_clients = "0.0.0.0/0"
1211+ has_root_access = "false"
1212+ kerberos5_read_only = false
1213+ kerberos5_read_write = false
1214+ kerberos5i_read_only = false
1215+ kerberos5i_read_write = false
1216+ kerberos5p_read_only = false
1217+ kerberos5p_read_write = false
1218+ nfsv3 = true
1219+ nfsv4 = false
1220+ squash_mode = "ROOT_SQUASH"
1221+ }
1222+ }
1223+ }
1224+
1225+ data "google_compute_network" "default" {
1226+ provider = google-beta
1227+ name = "%{network_name}"
1228+ }
1229+ `, context)
1230+ }
1231+
1232+ func testAccNetappVolume_volumeExportPolicyWithSquashMode_rootSquash_readOnlyAccessType(context map[string]interface{}) string {
1233+ return acctest.Nprintf(`
1234+ resource "google_netapp_storage_pool" "default" {
1235+ provider = google-beta
1236+ name = "tf-test-pool%{random_suffix}"
1237+ location = "us-west2"
1238+ service_level = "PREMIUM"
1239+ capacity_gib = "2048"
1240+ network = data.google_compute_network.default.id
1241+ }
1242+ resource "time_sleep" "wait_3_minutes" {
1243+ depends_on = [google_netapp_storage_pool.default]
1244+ create_duration = "3m"
1245+ }
1246+ resource "google_netapp_volume" "test_volume" {
1247+ provider = google-beta
1248+ location = "us-west2"
1249+ name = "tf-test-test-volume%{random_suffix}"
1250+ capacity_gib = "100"
1251+ share_name = "tf-test-test-volume%{random_suffix}"
1252+ storage_pool = google_netapp_storage_pool.default.name
1253+ protocols = ["NFSV3"]
1254+ export_policy {
1255+ rules {
1256+ access_type = "READ_ONLY"
1257+ allowed_clients = "0.0.0.0/0"
1258+ has_root_access = "false"
1259+ kerberos5_read_only = false
1260+ kerberos5_read_write = false
1261+ kerberos5i_read_only = false
1262+ kerberos5i_read_write = false
1263+ kerberos5p_read_only = false
1264+ kerberos5p_read_write = false
1265+ nfsv3 = true
1266+ nfsv4 = false
1267+ squash_mode = "ROOT_SQUASH"
1268+ }
1269+ }
1270+ }
1271+
1272+ data "google_compute_network" "default" {
1273+ provider = google-beta
1274+ name = "%{network_name}"
1275+ }
1276+ `, context)
1277+ }
1278+
1279+ func testAccNetappVolume_volumeExportPolicyWithSquashMode_rootSquash_readNoneAccessType(context map[string]interface{}) string {
1280+ return acctest.Nprintf(`
1281+ resource "google_netapp_storage_pool" "default" {
1282+ provider = google-beta
1283+ name = "tf-test-pool%{random_suffix}"
1284+ location = "us-west2"
1285+ service_level = "PREMIUM"
1286+ capacity_gib = "2048"
1287+ network = data.google_compute_network.default.id
1288+ }
1289+ resource "time_sleep" "wait_3_minutes" {
1290+ depends_on = [google_netapp_storage_pool.default]
1291+ create_duration = "3m"
1292+ }
1293+ resource "google_netapp_volume" "test_volume" {
1294+ provider = google-beta
1295+ location = "us-west2"
1296+ name = "tf-test-test-volume%{random_suffix}"
1297+ capacity_gib = "100"
1298+ share_name = "tf-test-test-volume%{random_suffix}"
1299+ storage_pool = google_netapp_storage_pool.default.name
1300+ protocols = ["NFSV3"]
1301+ export_policy {
1302+ rules {
1303+ access_type = "READ_NONE"
1304+ allowed_clients = "0.0.0.0/0"
1305+ has_root_access = "false"
1306+ kerberos5_read_only = false
1307+ kerberos5_read_write = false
1308+ kerberos5i_read_only = false
1309+ kerberos5i_read_write = false
1310+ kerberos5p_read_only = false
1311+ kerberos5p_read_write = false
1312+ nfsv3 = true
1313+ nfsv4 = false
1314+ squash_mode = "ROOT_SQUASH"
1315+ }
1316+ }
1317+ }
1318+
1319+ data "google_compute_network" "default" {
1320+ provider = google-beta
1321+ name = "%{network_name}"
1322+ }
1323+ `, context)
1324+ }
9731325{{ end }}
0 commit comments