Skip to content

Commit

Permalink
AzureStack: backport virtual network gateway connection PR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
katbyte committed Sep 8, 2018
1 parent a82bd88 commit 2d37405
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 106 deletions.
3 changes: 0 additions & 3 deletions azurerm/resource_arm_virtual_machine_extension.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,6 @@ func resourceArmVirtualMachineExtensionsRead(d *schema.ResourceData, meta interf
}
}

if resp.VirtualMachineExtensionProperties.Settings != nil {
}

flattenAndSetTags(d, resp.Tags)

return nil
Expand Down
89 changes: 51 additions & 38 deletions azurerm/resource_arm_virtual_network_gateway_connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package azurerm

import (
"fmt"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/suppress"
"github.com/terraform-providers/terraform-provider-azurestack/azurestack/helpers/azure"
"log"

"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2018-04-01/network"
Expand All @@ -16,15 +18,17 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
Read: resourceArmVirtualNetworkGatewayConnectionRead,
Update: resourceArmVirtualNetworkGatewayConnectionCreateUpdate,
Delete: resourceArmVirtualNetworkGatewayConnectionDelete,

Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
},

Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: validation.NoZeroValues,
},

"resource_group_name": resourceGroupNameSchema(),
Expand All @@ -40,36 +44,41 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
string(network.IPsec),
string(network.Vnet2Vnet),
}, true),
DiffSuppressFunc: ignoreCaseDiffSuppressFunc,
DiffSuppressFunc: suppress.CaseDifference,
},

"virtual_network_gateway_id": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: azure.ValidateResourceId,
},

"authorization_key": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
Type: schema.TypeString,
Optional: true,
Sensitive: true,
ValidateFunc: validation.NoZeroValues,
},

"express_route_circuit_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: azure.ValidateResourceIDOrEmpty,
},

"peer_virtual_network_gateway_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: azure.ValidateResourceIDOrEmpty,
},

"local_network_gateway_id": {
Type: schema.TypeString,
Optional: true,
Type: schema.TypeString,
Optional: true,
ValidateFunc: azure.ValidateResourceIDOrEmpty,
},

"enable_bgp": {
Expand All @@ -85,9 +94,10 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
},

"routing_weight": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: validation.IntBetween(1, 1000),
},

"shared_key": {
Expand All @@ -105,7 +115,7 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
"dh_group": {
Type: schema.TypeString,
Required: true,
DiffSuppressFunc: ignoreCaseDiffSuppressFunc,
DiffSuppressFunc: suppress.CaseDifference,
ValidateFunc: validation.StringInSlice([]string{
string(network.DHGroup1),
string(network.DHGroup14),
Expand All @@ -117,10 +127,11 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
string(network.None),
}, true),
},

"ike_encryption": {
Type: schema.TypeString,
Required: true,
DiffSuppressFunc: ignoreCaseDiffSuppressFunc,
DiffSuppressFunc: suppress.CaseDifference,
ValidateFunc: validation.StringInSlice([]string{
string(network.AES128),
string(network.AES192),
Expand All @@ -129,10 +140,11 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
string(network.DES3),
}, true),
},

"ike_integrity": {
Type: schema.TypeString,
Required: true,
DiffSuppressFunc: ignoreCaseDiffSuppressFunc,
DiffSuppressFunc: suppress.CaseDifference,
ValidateFunc: validation.StringInSlice([]string{
string(network.IkeIntegrityGCMAES128),
string(network.IkeIntegrityGCMAES256),
Expand All @@ -142,10 +154,11 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
string(network.IkeIntegritySHA384),
}, true),
},

"ipsec_encryption": {
Type: schema.TypeString,
Required: true,
DiffSuppressFunc: ignoreCaseDiffSuppressFunc,
DiffSuppressFunc: suppress.CaseDifference,
ValidateFunc: validation.StringInSlice([]string{
string(network.IpsecEncryptionAES128),
string(network.IpsecEncryptionAES192),
Expand All @@ -158,10 +171,11 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
string(network.IpsecEncryptionNone),
}, true),
},

"ipsec_integrity": {
Type: schema.TypeString,
Required: true,
DiffSuppressFunc: ignoreCaseDiffSuppressFunc,
DiffSuppressFunc: suppress.CaseDifference,
ValidateFunc: validation.StringInSlice([]string{
string(network.IpsecIntegrityGCMAES128),
string(network.IpsecIntegrityGCMAES192),
Expand All @@ -171,10 +185,11 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
string(network.IpsecIntegritySHA256),
}, true),
},

"pfs_group": {
Type: schema.TypeString,
Required: true,
DiffSuppressFunc: ignoreCaseDiffSuppressFunc,
DiffSuppressFunc: suppress.CaseDifference,
ValidateFunc: validation.StringInSlice([]string{
string(network.PfsGroupECP256),
string(network.PfsGroupECP384),
Expand All @@ -185,12 +200,14 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource {
string(network.PfsGroupPFS24),
}, true),
},

"sa_datasize": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: validation.IntAtLeast(1024),
},

"sa_lifetime": {
Type: schema.TypeInt,
Optional: true,
Expand Down Expand Up @@ -234,8 +251,7 @@ func resourceArmVirtualNetworkGatewayConnectionCreateUpdate(d *schema.ResourceDa
return fmt.Errorf("Error Creating/Updating AzureRM Virtual Network Gateway Connection %q (Resource Group %q): %+v", name, resGroup, err)
}

err = future.WaitForCompletionRef(ctx, client.Client)
if err != nil {
if err := future.WaitForCompletionRef(ctx, client.Client); err != nil {
return fmt.Errorf("Error waiting for completion of Virtual Network Gateway Connection %q (Resource Group %q): %+v", name, resGroup, err)
}

Expand Down Expand Up @@ -345,8 +361,7 @@ func resourceArmVirtualNetworkGatewayConnectionDelete(d *schema.ResourceData, me
return fmt.Errorf("Error Deleting Virtual Network Gateway Connection %q (Resource Group %q): %+v", name, resGroup, err)
}

err = future.WaitForCompletionRef(ctx, client.Client)
if err != nil {
if err := future.WaitForCompletionRef(ctx, client.Client); err != nil {
return fmt.Errorf("Error waiting for deletion of Virtual Network Gateway Connection %q (Resource Group %q): %+v", name, resGroup, err)
}

Expand All @@ -357,11 +372,14 @@ func getArmVirtualNetworkGatewayConnectionProperties(d *schema.ResourceData) (*n
connectionType := network.VirtualNetworkGatewayConnectionType(d.Get("type").(string))

props := &network.VirtualNetworkGatewayConnectionPropertiesFormat{
ConnectionType: connectionType,
ConnectionType: connectionType,
EnableBgp: utils.Bool(d.Get("enable_bgp").(bool)),
UsePolicyBasedTrafficSelectors: utils.Bool(d.Get("use_policy_based_traffic_selectors").(bool)),
}

if v, ok := d.GetOk("virtual_network_gateway_id"); ok {
virtualNetworkGatewayId := v.(string)

_, name, err := resourceGroupAndVirtualNetworkGatewayFromId(virtualNetworkGatewayId)
if err != nil {
return nil, fmt.Errorf("Error Getting VirtualNetworkGateway Name and Group:: %+v", err)
Expand Down Expand Up @@ -420,10 +438,6 @@ func getArmVirtualNetworkGatewayConnectionProperties(d *schema.ResourceData) (*n
}
}

props.EnableBgp = utils.Bool(d.Get("enable_bgp").(bool))

props.UsePolicyBasedTrafficSelectors = utils.Bool(d.Get("use_policy_based_traffic_selectors").(bool))

if v, ok := d.GetOk("routing_weight"); ok {
routingWeight := int32(v.(int))
props.RoutingWeight = &routingWeight
Expand All @@ -434,8 +448,7 @@ func getArmVirtualNetworkGatewayConnectionProperties(d *schema.ResourceData) (*n
}

if v, ok := d.GetOk("ipsec_policy"); ok {
ipsecPolicies := v.([]interface{})
props.IpsecPolicies = expandArmVirtualNetworkGatewayConnectionIpsecPolicies(ipsecPolicies)
props.IpsecPolicies = expandArmVirtualNetworkGatewayConnectionIpsecPolicies(v.([]interface{}))
}

if props.ConnectionType == network.ExpressRoute {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
)

func TestAccAzureRMVirtualNetworkGatewayConnection_sitetosite(t *testing.T) {
resourceName := "azurerm_virtual_network_gateway_connection.test"
ri := acctest.RandInt()
config := testAccAzureRMVirtualNetworkGatewayConnection_sitetosite(ri, testLocation())

Expand All @@ -25,6 +26,11 @@ func TestAccAzureRMVirtualNetworkGatewayConnection_sitetosite(t *testing.T) {
testCheckAzureRMVirtualNetworkGatewayConnectionExists("azurerm_virtual_network_gateway_connection.test"),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
},
},
})
}
Expand Down
Loading

0 comments on commit 2d37405

Please sign in to comment.