github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/loadbalancer_live_test.go (about)

     1  //go:build go1.18
     2  // +build go1.18
     3  
     4  // Copyright (c) Microsoft Corporation. All rights reserved.
     5  // Licensed under the MIT License. See License.txt in the project root for license information.
     6  
     7  package armnetwork_test
     8  
     9  import (
    10  	"context"
    11  	"fmt"
    12  	"testing"
    13  
    14  	"github.com/Azure/azure-sdk-for-go/sdk/azcore"
    15  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/arm"
    16  	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
    17  	"github.com/Azure/azure-sdk-for-go/sdk/internal/recording"
    18  	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3/testutil"
    19  	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6"
    20  	"github.com/stretchr/testify/suite"
    21  )
    22  
    23  type LoadBalancerTestSuite struct {
    24  	suite.Suite
    25  
    26  	ctx                       context.Context
    27  	cred                      azcore.TokenCredential
    28  	options                   *arm.ClientOptions
    29  	backendAddressPoolName    string
    30  	frontendIPConfigurationId string
    31  	inboundNatRuleName        string
    32  	loadBalancerName          string
    33  	subnetId                  string
    34  	location                  string
    35  	resourceGroupName         string
    36  	subscriptionId            string
    37  }
    38  
    39  func (testsuite *LoadBalancerTestSuite) SetupSuite() {
    40  	testutil.StartRecording(testsuite.T(), pathToPackage)
    41  
    42  	testsuite.ctx = context.Background()
    43  	testsuite.cred, testsuite.options = testutil.GetCredAndClientOptions(testsuite.T())
    44  	testsuite.backendAddressPoolName, _ = recording.GenerateAlphaNumericID(testsuite.T(), "backendadd", 16, false)
    45  	testsuite.inboundNatRuleName, _ = recording.GenerateAlphaNumericID(testsuite.T(), "inboundnat", 16, false)
    46  	testsuite.loadBalancerName, _ = recording.GenerateAlphaNumericID(testsuite.T(), "loadbalanc", 16, false)
    47  	testsuite.location = recording.GetEnvVariable("LOCATION", "westus")
    48  	testsuite.resourceGroupName = recording.GetEnvVariable("RESOURCE_GROUP_NAME", "scenarioTestTempGroup")
    49  	testsuite.subscriptionId = recording.GetEnvVariable("AZURE_SUBSCRIPTION_ID", "00000000-0000-0000-0000-000000000000")
    50  	resourceGroup, _, err := testutil.CreateResourceGroup(testsuite.ctx, testsuite.subscriptionId, testsuite.cred, testsuite.options, testsuite.location)
    51  	testsuite.Require().NoError(err)
    52  	testsuite.resourceGroupName = *resourceGroup.Name
    53  	testsuite.Prepare()
    54  }
    55  
    56  func (testsuite *LoadBalancerTestSuite) TearDownSuite() {
    57  	testsuite.Cleanup()
    58  	_, err := testutil.DeleteResourceGroup(testsuite.ctx, testsuite.subscriptionId, testsuite.cred, testsuite.options, testsuite.resourceGroupName)
    59  	testsuite.Require().NoError(err)
    60  	testutil.StopRecording(testsuite.T())
    61  }
    62  
    63  func TestLoadBalancerTestSuite(t *testing.T) {
    64  	suite.Run(t, new(LoadBalancerTestSuite))
    65  }
    66  
    67  func (testsuite *LoadBalancerTestSuite) Prepare() {
    68  	var err error
    69  	// From step VirtualNetworks_CreateOrUpdate
    70  	fmt.Println("Call operation: VirtualNetworks_CreateOrUpdate")
    71  	virtualNetworksClient, err := armnetwork.NewVirtualNetworksClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
    72  	testsuite.Require().NoError(err)
    73  	virtualNetworksClientCreateOrUpdateResponsePoller, err := virtualNetworksClient.BeginCreateOrUpdate(testsuite.ctx, testsuite.resourceGroupName, "test-vnet", armnetwork.VirtualNetwork{
    74  		Location: to.Ptr(testsuite.location),
    75  		Properties: &armnetwork.VirtualNetworkPropertiesFormat{
    76  			AddressSpace: &armnetwork.AddressSpace{
    77  				AddressPrefixes: []*string{
    78  					to.Ptr("10.0.0.0/16")},
    79  			},
    80  			Subnets: []*armnetwork.Subnet{
    81  				{
    82  					Name: to.Ptr("test-1"),
    83  					Properties: &armnetwork.SubnetPropertiesFormat{
    84  						AddressPrefix: to.Ptr("10.0.0.0/24"),
    85  					},
    86  				}},
    87  		},
    88  	}, nil)
    89  	testsuite.Require().NoError(err)
    90  	var virtualNetworksClientCreateOrUpdateResponse *armnetwork.VirtualNetworksClientCreateOrUpdateResponse
    91  	virtualNetworksClientCreateOrUpdateResponse, err = testutil.PollForTest(testsuite.ctx, virtualNetworksClientCreateOrUpdateResponsePoller)
    92  	testsuite.Require().NoError(err)
    93  	testsuite.subnetId = *virtualNetworksClientCreateOrUpdateResponse.Properties.Subnets[0].ID
    94  
    95  	// From step LoadBalancers_CreateOrUpdate
    96  	fmt.Println("Call operation: LoadBalancers_CreateOrUpdate")
    97  	loadBalancersClient, err := armnetwork.NewLoadBalancersClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
    98  	testsuite.Require().NoError(err)
    99  	loadBalancersClientCreateOrUpdateResponsePoller, err := loadBalancersClient.BeginCreateOrUpdate(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, armnetwork.LoadBalancer{
   100  		Location: to.Ptr(testsuite.location),
   101  		Properties: &armnetwork.LoadBalancerPropertiesFormat{
   102  			FrontendIPConfigurations: []*armnetwork.FrontendIPConfiguration{
   103  				{
   104  					Name: to.Ptr("frontendipconf"),
   105  					Properties: &armnetwork.FrontendIPConfigurationPropertiesFormat{
   106  						Subnet: &armnetwork.Subnet{
   107  							ID: to.Ptr(testsuite.subnetId),
   108  						},
   109  					},
   110  				}},
   111  		},
   112  		SKU: &armnetwork.LoadBalancerSKU{
   113  			Name: to.Ptr(armnetwork.LoadBalancerSKUNameStandard),
   114  		},
   115  	}, nil)
   116  	testsuite.Require().NoError(err)
   117  	var loadBalancersClientCreateOrUpdateResponse *armnetwork.LoadBalancersClientCreateOrUpdateResponse
   118  	loadBalancersClientCreateOrUpdateResponse, err = testutil.PollForTest(testsuite.ctx, loadBalancersClientCreateOrUpdateResponsePoller)
   119  	testsuite.Require().NoError(err)
   120  	testsuite.frontendIPConfigurationId = *loadBalancersClientCreateOrUpdateResponse.Properties.FrontendIPConfigurations[0].ID
   121  }
   122  
   123  // Microsoft.Network/loadBalancers/{loadBalancerName}
   124  func (testsuite *LoadBalancerTestSuite) TestLoadBalancers() {
   125  	var err error
   126  	// From step LoadBalancers_ListAll
   127  	fmt.Println("Call operation: LoadBalancers_ListAll")
   128  	loadBalancersClient, err := armnetwork.NewLoadBalancersClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   129  	testsuite.Require().NoError(err)
   130  	loadBalancersClientNewListAllPager := loadBalancersClient.NewListAllPager(nil)
   131  	for loadBalancersClientNewListAllPager.More() {
   132  		_, err := loadBalancersClientNewListAllPager.NextPage(testsuite.ctx)
   133  		testsuite.Require().NoError(err)
   134  		break
   135  	}
   136  
   137  	// From step LoadBalancers_List
   138  	fmt.Println("Call operation: LoadBalancers_List")
   139  	loadBalancersClientNewListPager := loadBalancersClient.NewListPager(testsuite.resourceGroupName, nil)
   140  	for loadBalancersClientNewListPager.More() {
   141  		_, err := loadBalancersClientNewListPager.NextPage(testsuite.ctx)
   142  		testsuite.Require().NoError(err)
   143  		break
   144  	}
   145  
   146  	// From step LoadBalancers_Get
   147  	fmt.Println("Call operation: LoadBalancers_Get")
   148  	_, err = loadBalancersClient.Get(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, &armnetwork.LoadBalancersClientGetOptions{Expand: nil})
   149  	testsuite.Require().NoError(err)
   150  
   151  	// From step LoadBalancers_UpdateTags
   152  	fmt.Println("Call operation: LoadBalancers_UpdateTags")
   153  	_, err = loadBalancersClient.UpdateTags(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, armnetwork.TagsObject{
   154  		Tags: map[string]*string{
   155  			"tag1": to.Ptr("value1"),
   156  			"tag2": to.Ptr("value2"),
   157  		},
   158  	}, nil)
   159  	testsuite.Require().NoError(err)
   160  }
   161  
   162  // Microsoft.Network/loadBalancers/{loadBalancerName}/backendAddressPools/{backendAddressPoolName}
   163  func (testsuite *LoadBalancerTestSuite) TestLoadBalancerBackendAddressPools() {
   164  	var err error
   165  	// From step LoadBalancerBackendAddressPools_CreateOrUpdate
   166  	fmt.Println("Call operation: LoadBalancerBackendAddressPools_CreateOrUpdate")
   167  	loadBalancerBackendAddressPoolsClient, err := armnetwork.NewLoadBalancerBackendAddressPoolsClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   168  	testsuite.Require().NoError(err)
   169  	loadBalancerBackendAddressPoolsClientCreateOrUpdateResponsePoller, err := loadBalancerBackendAddressPoolsClient.BeginCreateOrUpdate(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, testsuite.backendAddressPoolName, armnetwork.BackendAddressPool{
   170  		Properties: &armnetwork.BackendAddressPoolPropertiesFormat{},
   171  	}, nil)
   172  	testsuite.Require().NoError(err)
   173  	_, err = testutil.PollForTest(testsuite.ctx, loadBalancerBackendAddressPoolsClientCreateOrUpdateResponsePoller)
   174  	testsuite.Require().NoError(err)
   175  
   176  	// From step LoadBalancerBackendAddressPools_List
   177  	fmt.Println("Call operation: LoadBalancerBackendAddressPools_List")
   178  	loadBalancerBackendAddressPoolsClientNewListPager := loadBalancerBackendAddressPoolsClient.NewListPager(testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   179  	for loadBalancerBackendAddressPoolsClientNewListPager.More() {
   180  		_, err := loadBalancerBackendAddressPoolsClientNewListPager.NextPage(testsuite.ctx)
   181  		testsuite.Require().NoError(err)
   182  		break
   183  	}
   184  
   185  	// From step LoadBalancerBackendAddressPools_Get
   186  	fmt.Println("Call operation: LoadBalancerBackendAddressPools_Get")
   187  	_, err = loadBalancerBackendAddressPoolsClient.Get(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, testsuite.backendAddressPoolName, nil)
   188  	testsuite.Require().NoError(err)
   189  
   190  	// From step LoadBalancerBackendAddressPools_Delete
   191  	fmt.Println("Call operation: LoadBalancerBackendAddressPools_Delete")
   192  	loadBalancerBackendAddressPoolsClientDeleteResponsePoller, err := loadBalancerBackendAddressPoolsClient.BeginDelete(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, testsuite.backendAddressPoolName, nil)
   193  	testsuite.Require().NoError(err)
   194  	_, err = testutil.PollForTest(testsuite.ctx, loadBalancerBackendAddressPoolsClientDeleteResponsePoller)
   195  	testsuite.Require().NoError(err)
   196  }
   197  
   198  // Microsoft.Network/loadBalancers/{loadBalancerName}/frontendIPConfigurations
   199  func (testsuite *LoadBalancerTestSuite) TestLoadBalancerFrontendIpConfigurations() {
   200  	var err error
   201  	// From step LoadBalancerFrontendIPConfigurations_List
   202  	fmt.Println("Call operation: LoadBalancerFrontendIPConfigurations_List")
   203  	loadBalancerFrontendIPConfigurationsClient, err := armnetwork.NewLoadBalancerFrontendIPConfigurationsClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   204  	testsuite.Require().NoError(err)
   205  	loadBalancerFrontendIPConfigurationsClientNewListPager := loadBalancerFrontendIPConfigurationsClient.NewListPager(testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   206  	for loadBalancerFrontendIPConfigurationsClientNewListPager.More() {
   207  		_, err := loadBalancerFrontendIPConfigurationsClientNewListPager.NextPage(testsuite.ctx)
   208  		testsuite.Require().NoError(err)
   209  		break
   210  	}
   211  
   212  	// From step LoadBalancerFrontendIPConfigurations_Get
   213  	fmt.Println("Call operation: LoadBalancerFrontendIPConfigurations_Get")
   214  	_, err = loadBalancerFrontendIPConfigurationsClient.Get(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, "frontendipconf", nil)
   215  	testsuite.Require().NoError(err)
   216  }
   217  
   218  // Microsoft.Network/loadBalancers/{loadBalancerName}/inboundNatRules/{inboundNatRuleName}
   219  func (testsuite *LoadBalancerTestSuite) TestInboundNatRules() {
   220  	var err error
   221  	// From step InboundNatRules_CreateOrUpdate
   222  	fmt.Println("Call operation: InboundNatRules_CreateOrUpdate")
   223  	inboundNatRulesClient, err := armnetwork.NewInboundNatRulesClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   224  	testsuite.Require().NoError(err)
   225  	inboundNatRulesClientCreateOrUpdateResponsePoller, err := inboundNatRulesClient.BeginCreateOrUpdate(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, testsuite.inboundNatRuleName, armnetwork.InboundNatRule{
   226  		Properties: &armnetwork.InboundNatRulePropertiesFormat{
   227  			BackendPort:      to.Ptr[int32](3389),
   228  			EnableFloatingIP: to.Ptr(false),
   229  			EnableTCPReset:   to.Ptr(false),
   230  			FrontendIPConfiguration: &armnetwork.SubResource{
   231  				ID: to.Ptr(testsuite.frontendIPConfigurationId),
   232  			},
   233  			FrontendPort:         to.Ptr[int32](3390),
   234  			IdleTimeoutInMinutes: to.Ptr[int32](4),
   235  			Protocol:             to.Ptr(armnetwork.TransportProtocolTCP),
   236  		},
   237  	}, nil)
   238  	testsuite.Require().NoError(err)
   239  	_, err = testutil.PollForTest(testsuite.ctx, inboundNatRulesClientCreateOrUpdateResponsePoller)
   240  	testsuite.Require().NoError(err)
   241  
   242  	// From step InboundNatRules_List
   243  	fmt.Println("Call operation: InboundNatRules_List")
   244  	inboundNatRulesClientNewListPager := inboundNatRulesClient.NewListPager(testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   245  	for inboundNatRulesClientNewListPager.More() {
   246  		_, err := inboundNatRulesClientNewListPager.NextPage(testsuite.ctx)
   247  		testsuite.Require().NoError(err)
   248  		break
   249  	}
   250  
   251  	// From step InboundNatRules_Get
   252  	fmt.Println("Call operation: InboundNatRules_Get")
   253  	_, err = inboundNatRulesClient.Get(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, testsuite.inboundNatRuleName, &armnetwork.InboundNatRulesClientGetOptions{Expand: nil})
   254  	testsuite.Require().NoError(err)
   255  
   256  	// From step InboundNatRules_Delete
   257  	fmt.Println("Call operation: InboundNatRules_Delete")
   258  	inboundNatRulesClientDeleteResponsePoller, err := inboundNatRulesClient.BeginDelete(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, testsuite.inboundNatRuleName, nil)
   259  	testsuite.Require().NoError(err)
   260  	_, err = testutil.PollForTest(testsuite.ctx, inboundNatRulesClientDeleteResponsePoller)
   261  	testsuite.Require().NoError(err)
   262  }
   263  
   264  // Microsoft.Network/loadBalancers/{loadBalancerName}/loadBalancingRules
   265  func (testsuite *LoadBalancerTestSuite) TestLoadBalancerLoadBalancingRules() {
   266  	var err error
   267  	// From step LoadBalancerLoadBalancingRules_List
   268  	fmt.Println("Call operation: LoadBalancerLoadBalancingRules_List")
   269  	loadBalancerLoadBalancingRulesClient, err := armnetwork.NewLoadBalancerLoadBalancingRulesClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   270  	testsuite.Require().NoError(err)
   271  	loadBalancerLoadBalancingRulesClientNewListPager := loadBalancerLoadBalancingRulesClient.NewListPager(testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   272  	for loadBalancerLoadBalancingRulesClientNewListPager.More() {
   273  		_, err := loadBalancerLoadBalancingRulesClientNewListPager.NextPage(testsuite.ctx)
   274  		testsuite.Require().NoError(err)
   275  		break
   276  	}
   277  }
   278  
   279  // Microsoft.Network/loadBalancers/{loadBalancerName}/outboundRules
   280  func (testsuite *LoadBalancerTestSuite) TestLoadBalancerOutboundRules() {
   281  	var err error
   282  	// From step LoadBalancerOutboundRules_List
   283  	fmt.Println("Call operation: LoadBalancerOutboundRules_List")
   284  	loadBalancerOutboundRulesClient, err := armnetwork.NewLoadBalancerOutboundRulesClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   285  	testsuite.Require().NoError(err)
   286  	loadBalancerOutboundRulesClientNewListPager := loadBalancerOutboundRulesClient.NewListPager(testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   287  	for loadBalancerOutboundRulesClientNewListPager.More() {
   288  		_, err := loadBalancerOutboundRulesClientNewListPager.NextPage(testsuite.ctx)
   289  		testsuite.Require().NoError(err)
   290  		break
   291  	}
   292  }
   293  
   294  // Microsoft.Network/loadBalancers/{loadBalancerName}/networkInterfaces
   295  func (testsuite *LoadBalancerTestSuite) TestLoadBalancerNetworkInterfaces() {
   296  	var err error
   297  	// From step LoadBalancerNetworkInterfaces_List
   298  	fmt.Println("Call operation: LoadBalancerNetworkInterfaces_List")
   299  	loadBalancerNetworkInterfacesClient, err := armnetwork.NewLoadBalancerNetworkInterfacesClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   300  	testsuite.Require().NoError(err)
   301  	loadBalancerNetworkInterfacesClientNewListPager := loadBalancerNetworkInterfacesClient.NewListPager(testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   302  	for loadBalancerNetworkInterfacesClientNewListPager.More() {
   303  		_, err := loadBalancerNetworkInterfacesClientNewListPager.NextPage(testsuite.ctx)
   304  		testsuite.Require().NoError(err)
   305  		break
   306  	}
   307  }
   308  
   309  // Microsoft.Network/loadBalancers/{loadBalancerName}/probes
   310  func (testsuite *LoadBalancerTestSuite) TestLoadBalancerProbes() {
   311  	var err error
   312  	// From step LoadBalancerProbes_List
   313  	fmt.Println("Call operation: LoadBalancerProbes_List")
   314  	loadBalancerProbesClient, err := armnetwork.NewLoadBalancerProbesClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   315  	testsuite.Require().NoError(err)
   316  	loadBalancerProbesClientNewListPager := loadBalancerProbesClient.NewListPager(testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   317  	for loadBalancerProbesClientNewListPager.More() {
   318  		_, err := loadBalancerProbesClientNewListPager.NextPage(testsuite.ctx)
   319  		testsuite.Require().NoError(err)
   320  		break
   321  	}
   322  }
   323  
   324  func (testsuite *LoadBalancerTestSuite) Cleanup() {
   325  	var err error
   326  	// From step LoadBalancers_Delete
   327  	fmt.Println("Call operation: LoadBalancers_Delete")
   328  	loadBalancersClient, err := armnetwork.NewLoadBalancersClient(testsuite.subscriptionId, testsuite.cred, testsuite.options)
   329  	testsuite.Require().NoError(err)
   330  	loadBalancersClientDeleteResponsePoller, err := loadBalancersClient.BeginDelete(testsuite.ctx, testsuite.resourceGroupName, testsuite.loadBalancerName, nil)
   331  	testsuite.Require().NoError(err)
   332  	_, err = testutil.PollForTest(testsuite.ctx, loadBalancersClientDeleteResponsePoller)
   333  	testsuite.Require().NoError(err)
   334  }