diff --git a/CHANGELOG.md b/CHANGELOG.md index 2951ed5b..3e755966 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ BUG FIXES: * resources/opennebula_virtual_machine: fix `cpumodel` update (#463) * resources/opennebula_service_template: improve `service_template` idempotency (#468) * resources/opennebula_service: fix service crashes (#469) +* resources/opennebula_virtual_network: fix the `reservation_ar_id=0` case (#512) # 1.3.1 (September 11st, 2023) diff --git a/opennebula/resource_opennebula_virtual_network.go b/opennebula/resource_opennebula_virtual_network.go index 4d86c51f..7d3d465e 100644 --- a/opennebula/resource_opennebula_virtual_network.go +++ b/opennebula/resource_opennebula_virtual_network.go @@ -408,7 +408,7 @@ func resourceOpennebulaVirtualNetworkCreate(ctx context.Context, d *schema.Resou if reservationFirstIP, ok := d.GetOk("reservation_first_ip"); ok { reservationTemplate.AddPair("IP", reservationFirstIP.(string)) } - if reservationARID, ok := d.GetOk("reservation_ar_id"); ok && reservationARID != -1 { + if reservationARID := d.Get("reservation_ar_id"); reservationARID != -1 { reservationTemplate.AddPair("AR_ID", reservationARID.(int)) } reservationSize, ok := d.GetOk("reservation_size") diff --git a/opennebula/resource_opennebula_virtual_network_test.go b/opennebula/resource_opennebula_virtual_network_test.go index 231bb9a8..ff8f8e81 100644 --- a/opennebula/resource_opennebula_virtual_network_test.go +++ b/opennebula/resource_opennebula_virtual_network_test.go @@ -190,14 +190,17 @@ func TestAccVirtualNetwork(t *testing.T) { { Config: testAccVirtualNetworkReservationConfig, Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("opennebula_virtual_network.reservation", "name", "terravnetres"), - resource.TestCheckResourceAttr("opennebula_virtual_network.reservation", "reservation_size", "5"), - resource.TestCheckResourceAttr("opennebula_virtual_network.reservation", "reservation_first_ip", "172.16.100.115"), - resource.TestCheckResourceAttr("opennebula_virtual_network.reservation", "permissions", "660"), - resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation", "uid"), - resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation", "gid"), - resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation", "uname"), - resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation", "gname"), + resource.TestCheckResourceAttr("opennebula_virtual_network.reservation1", "name", "terravnetres"), + resource.TestCheckResourceAttr("opennebula_virtual_network.reservation1", "reservation_size", "5"), + resource.TestCheckResourceAttr("opennebula_virtual_network.reservation1", "reservation_first_ip", "172.16.100.115"), + resource.TestCheckResourceAttr("opennebula_virtual_network.reservation1", "permissions", "660"), + resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation1", "uid"), + resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation1", "gid"), + resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation1", "uname"), + resource.TestCheckResourceAttrSet("opennebula_virtual_network.reservation1", "gname"), + resource.TestCheckResourceAttr("opennebula_virtual_network.reservation2", "name", "zero_ar_id"), + resource.TestCheckResourceAttr("opennebula_virtual_network.reservation2", "reservation_size", "2"), + resource.TestCheckResourceAttr("opennebula_virtual_network.reservation2", "reservation_first_ip", "172.16.100.3"), testAccCheckVirtualNetworkPermissions(&shared.Permissions{ OwnerU: 1, OwnerM: 1, @@ -563,7 +566,7 @@ resource "opennebula_virtual_network_address_range" "test4" { size = 2 } -resource "opennebula_virtual_network" "reservation" { +resource "opennebula_virtual_network" "reservation1" { name = "terravnetres" description = "my terraform vnet" reservation_vnet = opennebula_virtual_network.test.id @@ -573,6 +576,16 @@ resource "opennebula_virtual_network" "reservation" { security_groups = [0] permissions = 660 } + +resource "opennebula_virtual_network" "reservation2" { + name = "zero_ar_id" + reservation_vnet = opennebula_virtual_network.test.id + reservation_size = 2 + reservation_ar_id = 0 + reservation_first_ip = "172.16.100.3" + security_groups = [0] + permissions = 660 +} ` var testAccVirtualNetworkReservationNoNetworkConfig = `