@@ -173,6 +173,35 @@ func TestAccStorageVolume_importProject(t *testing.T) {
173173 })
174174}
175175
176+ func TestAccStorageVolume_inheritedStoragePoolKeys (t * testing.T ) {
177+ poolName := petname .Generate (2 , "-" )
178+ volumeName := petname .Generate (2 , "-" )
179+
180+ resource .Test (t , resource.TestCase {
181+ PreCheck : func () { acctest .PreCheck (t ) },
182+ ProtoV6ProviderFactories : acctest .ProtoV6ProviderFactories ,
183+ Steps : []resource.TestStep {
184+ {
185+ Config : testAccStorageVolume_inheritedStoragePoolVolumeKeys (poolName , volumeName ),
186+ Check : resource .ComposeTestCheckFunc (
187+ resource .TestCheckResourceAttr ("incus_storage_pool.pool1" , "name" , poolName ),
188+ resource .TestCheckResourceAttr ("incus_storage_pool.pool1" , "driver" , "zfs" ),
189+ resource .TestCheckResourceAttr ("incus_storage_pool.pool1" , "config.volume.zfs.remove_snapshots" , "true" ),
190+ resource .TestCheckResourceAttr ("incus_storage_pool.pool1" , "config.volume.zfs.use_refquota" , "true" ),
191+ resource .TestCheckResourceAttr ("incus_storage_volume.volume1" , "name" , volumeName ),
192+ resource .TestCheckResourceAttr ("incus_storage_volume.volume1" , "pool" , poolName ),
193+ resource .TestCheckResourceAttr ("incus_storage_volume.volume1" , "type" , "custom" ),
194+ resource .TestCheckResourceAttr ("incus_storage_volume.volume1" , "content_type" , "block" ),
195+
196+ // Ensure computed keys are not tracked.
197+ resource .TestCheckNoResourceAttr ("incus_storage_volume.volume1" , "config.zfs.remove_snapshots" ),
198+ resource .TestCheckNoResourceAttr ("incus_storage_volume.volume1" , "config.zfs.use_refquota" ),
199+ ),
200+ },
201+ },
202+ })
203+ }
204+
176205func testAccStorageVolume_basic (poolName , volumeName string ) string {
177206 return fmt .Sprintf (`
178207resource "incus_storage_pool" "pool1" {
@@ -258,3 +287,25 @@ resource "incus_storage_volume" "volume1" {
258287}
259288 ` , poolName , volumeName )
260289}
290+
291+ func testAccStorageVolume_inheritedStoragePoolVolumeKeys (poolName , volumeName string ) string {
292+ return fmt .Sprintf (`
293+ resource "incus_storage_pool" "pool1" {
294+ name = "%s"
295+ driver = "zfs"
296+ config = {
297+ "volume.zfs.remove_snapshots" = "true",
298+ "volume.zfs.use_refquota" = "true"
299+ }
300+ }
301+
302+ resource "incus_storage_volume" "volume1" {
303+ name = "%s"
304+ pool = incus_storage_pool.pool1.name
305+ content_type = "block"
306+ config = {
307+ "size" = "1GiB"
308+ }
309+ }
310+ ` , poolName , volumeName )
311+ }
0 commit comments