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 }