Skip to content

Commit

Permalink
Merge pull request #7601 from magodo/upgrade_remaining_network_resour…
Browse files Browse the repository at this point in the history
…ces_to_2020-05-01

upgrade network to 2020-05-01 for vhub(conn) & vwan
  • Loading branch information
tombuildsstuff authored Sep 24, 2020
2 parents af53259 + 25a9c4a commit 3515a71
Show file tree
Hide file tree
Showing 16 changed files with 321 additions and 298 deletions.
13 changes: 9 additions & 4 deletions azurerm/internal/services/network/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ type Client struct {
ExpressRouteGatewaysClient *network.ExpressRouteGatewaysClient
ExpressRoutePeeringsClient *network.ExpressRouteCircuitPeeringsClient
FirewallPolicyClient *network.FirewallPoliciesClient
HubVirtualNetworkConnectionClient *network.HubVirtualNetworkConnectionsClient
InterfacesClient *network.InterfacesClient
LoadBalancersClient *networkLegacy.LoadBalancersClient
LoadBalancerLoadBalancingRulesClient *networkLegacy.LoadBalancerLoadBalancingRulesClient
Expand All @@ -40,8 +41,8 @@ type Client struct {
VnetGatewayClient *network.VirtualNetworkGatewaysClient
VnetClient *network.VirtualNetworksClient
VnetPeeringsClient *network.VirtualNetworkPeeringsClient
VirtualWanClient *networkLegacy.VirtualWansClient
VirtualHubClient *networkLegacy.VirtualHubsClient
VirtualWanClient *network.VirtualWansClient
VirtualHubClient *network.VirtualHubsClient
VpnGatewaysClient *network.VpnGatewaysClient
VpnServerConfigurationsClient *network.VpnServerConfigurationsClient
WatcherClient *network.WatchersClient
Expand Down Expand Up @@ -86,6 +87,9 @@ func NewClient(o *common.ClientOptions) *Client {
FirewallPolicyClient := network.NewFirewallPoliciesClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&FirewallPolicyClient.Client, o.ResourceManagerAuthorizer)

HubVirtualNetworkConnectionClient := network.NewHubVirtualNetworkConnectionsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&HubVirtualNetworkConnectionClient.Client, o.ResourceManagerAuthorizer)

InterfacesClient := network.NewInterfacesClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&InterfacesClient.Client, o.ResourceManagerAuthorizer)

Expand Down Expand Up @@ -161,10 +165,10 @@ func NewClient(o *common.ClientOptions) *Client {
VnetGatewayConnectionsClient := network.NewVirtualNetworkGatewayConnectionsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&VnetGatewayConnectionsClient.Client, o.ResourceManagerAuthorizer)

VirtualWanClient := networkLegacy.NewVirtualWansClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
VirtualWanClient := network.NewVirtualWansClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&VirtualWanClient.Client, o.ResourceManagerAuthorizer)

VirtualHubClient := networkLegacy.NewVirtualHubsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
VirtualHubClient := network.NewVirtualHubsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
o.ConfigureClient(&VirtualHubClient.Client, o.ResourceManagerAuthorizer)

vpnGatewaysClient := network.NewVpnGatewaysClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
Expand Down Expand Up @@ -194,6 +198,7 @@ func NewClient(o *common.ClientOptions) *Client {
ExpressRouteGatewaysClient: &ExpressRouteGatewaysClient,
ExpressRoutePeeringsClient: &ExpressRoutePeeringsClient,
FirewallPolicyClient: &FirewallPolicyClient,
HubVirtualNetworkConnectionClient: &HubVirtualNetworkConnectionClient,
InterfacesClient: &InterfacesClient,
LoadBalancersClient: &LoadBalancersClient,
LoadBalancerLoadBalancingRulesClient: &LoadBalancerLoadBalancingRulesClient,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,33 @@
package network
package parse

import (
"fmt"

"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
)

type VirtualHubResourceID struct {
type VirtualHubId struct {
ResourceGroup string
Name string
}

func ParseVirtualHubID(input string) (*VirtualHubResourceID, error) {
func NewVirtualHubID(resourceGroup, name string) VirtualHubId {
return VirtualHubId{
ResourceGroup: resourceGroup,
Name: name,
}
}
func (id VirtualHubId) ID(subscriptionId string) string {
return fmt.Sprintf("/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/virtualHubs/%s", subscriptionId, id.ResourceGroup, id.Name)
}

func VirtualHubID(input string) (*VirtualHubId, error) {
id, err := azure.ParseAzureResourceID(input)
if err != nil {
return nil, fmt.Errorf("[ERROR] Unable to parse Virtual Hub ID %q: %+v", input, err)
}

virtualHub := VirtualHubResourceID{
virtualHub := VirtualHubId{
ResourceGroup: id.ResourceGroup,
}

Expand All @@ -31,16 +41,3 @@ func ParseVirtualHubID(input string) (*VirtualHubResourceID, error) {

return &virtualHub, nil
}

func ValidateVirtualHubID(i interface{}, k string) (warnings []string, errors []error) {
v, ok := i.(string)
if !ok {
return nil, []error{fmt.Errorf("expected type of %q to be string", k)}
}

if _, err := ParseVirtualHubID(v); err != nil {
return nil, []error{err}
}

return nil, nil
}
19 changes: 16 additions & 3 deletions azurerm/internal/services/network/parse/virtual_hub_connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,33 @@ import (
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
)

type VirtualHubConnectionResourceID struct {
type VirtualHubConnectionId struct {
ResourceGroup string
VirtualHubName string
Name string
}

func ParseVirtualHubConnectionID(input string) (*VirtualHubConnectionResourceID, error) {
func NewVirtualHubConnectionID(id VirtualHubId, name string) VirtualHubConnectionId {
return VirtualHubConnectionId{
ResourceGroup: id.ResourceGroup,
VirtualHubName: id.Name,
Name: name,
}
}

func (id VirtualHubConnectionId) ID(subscriptionId string) string {
base := NewVirtualHubID(id.ResourceGroup, id.VirtualHubName).ID(subscriptionId)
return fmt.Sprintf("%s/hubVirtualNetworkConnections/%s", base, id.Name)
}

func VirtualHubConnectionID(input string) (*VirtualHubConnectionId, error) {
id, err := azure.ParseAzureResourceID(input)
if err != nil {
return nil, fmt.Errorf("[ERROR] Unable to parse Virtual Hub Connection ID %q: %+v", input, err)
}

// /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/tom-dev99/providers/Microsoft.Network/virtualHubs/tom-devvh/hubVirtualNetworkConnections/first
connection := VirtualHubConnectionResourceID{
connection := VirtualHubConnectionId{
ResourceGroup: id.ResourceGroup,
VirtualHubName: id.Path["virtualHubs"],
Name: id.Path["hubVirtualNetworkConnections"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,27 @@ package parse

import (
"testing"

"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/resourceid"
)

func TestParseVirtualHubConnection(t *testing.T) {
var _ resourceid.Formatter = VirtualHubConnectionId{}

func TestVirtualHubConnectionIDFormatter(t *testing.T) {
subscriptionId := "12345678-1234-5678-1234-123456789012"
vhubid := NewVirtualHubID("group1", "vhub1")
actual := NewVirtualHubConnectionID(vhubid, "conn1").ID(subscriptionId)
expected := "/subscriptions/12345678-1234-5678-1234-123456789012/resourceGroups/group1/providers/Microsoft.Network/virtualHubs/vhub1/hubVirtualNetworkConnections/conn1"
if actual != expected {
t.Fatalf("Expected %q but got %q", expected, actual)
}
}

func TestVirtualHubConnectionID(t *testing.T) {
testData := []struct {
Name string
Input string
Expected *VirtualHubConnectionResourceID
Expected *VirtualHubConnectionId
}{
{
Name: "Empty",
Expand Down Expand Up @@ -38,7 +52,7 @@ func TestParseVirtualHubConnection(t *testing.T) {
{
Name: "Completed",
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/foo/virtualHubs/example/hubVirtualNetworkConnections/connection1",
Expected: &VirtualHubConnectionResourceID{
Expected: &VirtualHubConnectionId{
Name: "connection1",
VirtualHubName: "example",
ResourceGroup: "foo",
Expand All @@ -49,7 +63,7 @@ func TestParseVirtualHubConnection(t *testing.T) {
for _, v := range testData {
t.Logf("[DEBUG] Testing %q", v.Name)

actual, err := ParseVirtualHubConnectionID(v.Input)
actual, err := VirtualHubConnectionID(v.Input)
if err != nil {
if v.Expected == nil {
continue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
package network
package parse

import (
"testing"

"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/resourceid"
)

func TestParseVirtualHub(t *testing.T) {
var _ resourceid.Formatter = VirtualHubId{}

func TestVirtualHubIDFormatter(t *testing.T) {
subscriptionId := "12345678-1234-5678-1234-123456789012"
id := NewVirtualHubID("group1", "vhub1")
actual := id.ID(subscriptionId)
expected := "/subscriptions/12345678-1234-5678-1234-123456789012/resourceGroups/group1/providers/Microsoft.Network/virtualHubs/vhub1"
if actual != expected {
t.Fatalf("Expected %q but got %q", expected, actual)
}
}

func TestVirtualHubID(t *testing.T) {
testData := []struct {
Name string
Input string
Expected *VirtualHubResourceID
Expected *VirtualHubId
}{
{
Name: "Empty",
Expand All @@ -28,7 +42,7 @@ func TestParseVirtualHub(t *testing.T) {
{
Name: "Completed",
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/foo/virtualHubs/example",
Expected: &VirtualHubResourceID{
Expected: &VirtualHubId{
Name: "example",
ResourceGroup: "foo",
},
Expand All @@ -38,7 +52,7 @@ func TestParseVirtualHub(t *testing.T) {
for _, v := range testData {
t.Logf("[DEBUG] Testing %q", v.Name)

actual, err := ParseVirtualHubID(v.Input)
actual, err := VirtualHubID(v.Input)
if err != nil {
if v.Expected == nil {
continue
Expand All @@ -56,42 +70,3 @@ func TestParseVirtualHub(t *testing.T) {
}
}
}

func TestValidateVirtualHub(t *testing.T) {
testData := []struct {
Name string
Input string
Valid bool
}{
{
Name: "Empty",
Input: "",
Valid: false,
},
{
Name: "No Virtual Hubs Segment",
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/foo",
Valid: false,
},
{
Name: "No Virtual Hubs Value",
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/foo/virtualHubs/",
Valid: false,
},
{
Name: "Completed",
Input: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/foo/virtualHubs/example",
Valid: true,
},
}

for _, v := range testData {
t.Logf("[DEBUG] Testing %q", v.Input)

_, errors := ValidateVirtualHubID(v.Input, "virtual_hub_id")
isValid := len(errors) == 0
if v.Valid != isValid {
t.Fatalf("Expected %t but got %t", v.Valid, isValid)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"log"
"time"

validate2 "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/network/validate"

"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2020-05-01/network"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
Expand Down Expand Up @@ -50,7 +52,7 @@ func resourceArmPointToSiteVPNGateway() *schema.Resource {
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: ValidateVirtualHubID,
ValidateFunc: validate2.ValidateVirtualHubID,
},

"vpn_server_configuration_id": {
Expand Down
Loading

0 comments on commit 3515a71

Please sign in to comment.