Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upgrade network to 2020-05-01 for vhub(conn) & vwan #7601

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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