test: export a fake Azure cloud

Via the exported GetTestCloud(), we can reuse the code for the unit tests in Azure related CSI drivers.

Signed-off-by: ZeroMagic <anthonyliu@zju.edu.cn>
This commit is contained in:
ZeroMagic 2020-02-19 11:24:29 +00:00
parent 13750a0843
commit e2c733a702
10 changed files with 135 additions and 127 deletions

View File

@ -120,7 +120,6 @@ go_test(
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//staging/src/k8s.io/cloud-provider:go_default_library",
"//staging/src/k8s.io/cloud-provider/service/helpers:go_default_library",
"//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library",

View File

@ -63,7 +63,7 @@ func TestCommonAttachDisk(t *testing.T) {
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
common := &controllerCommon{
location: testCloud.Location,
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
@ -112,7 +112,7 @@ func TestCommonDetachDisk(t *testing.T) {
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
common := &controllerCommon{
location: testCloud.Location,
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
@ -153,7 +153,7 @@ func TestGetDiskLun(t *testing.T) {
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
common := &controllerCommon{
location: testCloud.Location,
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
@ -192,7 +192,7 @@ func TestGetNextDiskLun(t *testing.T) {
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
common := &controllerCommon{
location: testCloud.Location,
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
@ -234,7 +234,7 @@ func TestDisksAreAttached(t *testing.T) {
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
common := &controllerCommon{
location: testCloud.Location,
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,

View File

@ -53,7 +53,7 @@ func TestStandardAttachDisk(t *testing.T) {
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
vmSet := testCloud.vmSet
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
@ -90,7 +90,7 @@ func TestStandardDetachDisk(t *testing.T) {
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
vmSet := testCloud.vmSet
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
@ -140,7 +140,7 @@ func TestGetDataDisks(t *testing.T) {
},
}
for i, test := range testCases {
testCloud := getTestCloud()
testCloud := GetTestCloud()
vmSet := testCloud.vmSet
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)

View File

@ -34,7 +34,10 @@ import (
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/tools/record"
cloudprovider "k8s.io/cloud-provider"
"k8s.io/legacy-cloud-providers/azure/auth"
azcache "k8s.io/legacy-cloud-providers/azure/cache"
"k8s.io/legacy-cloud-providers/azure/retry"
)
@ -875,6 +878,10 @@ func (fDC *fakeDisksClient) CreateOrUpdate(ctx context.Context, resourceGroupNam
fDC.mutex.Lock()
defer fDC.mutex.Unlock()
provisioningStateSucceeded := string(compute.ProvisioningStateSucceeded)
diskParameter.DiskProperties = &compute.DiskProperties{ProvisioningState: &provisioningStateSucceeded}
diskParameter.ID = &diskName
if _, ok := fDC.FakeStore[resourceGroupName]; !ok {
fDC.FakeStore[resourceGroupName] = make(map[string]compute.Disk)
}
@ -991,3 +998,55 @@ func (f *fakeVMSet) GetDataDisks(nodeName types.NodeName, crt azcache.AzureCache
func (f *fakeVMSet) GetPowerStatusByNodeName(name string) (string, error) {
return "", fmt.Errorf("unimplemented")
}
// GetTestCloud returns a fake azure cloud for unit tests in Azure related CSI drivers
func GetTestCloud() (az *Cloud) {
az = &Cloud{
Config: Config{
AzureAuthConfig: auth.AzureAuthConfig{
TenantID: "tenant",
SubscriptionID: "subscription",
},
ResourceGroup: "rg",
VnetResourceGroup: "rg",
RouteTableResourceGroup: "rg",
SecurityGroupResourceGroup: "rg",
Location: "westus",
VnetName: "vnet",
SubnetName: "subnet",
SecurityGroupName: "nsg",
RouteTableName: "rt",
PrimaryAvailabilitySetName: "as",
MaximumLoadBalancerRuleCount: 250,
VMType: vmTypeStandard,
},
nodeZones: map[string]sets.String{},
nodeInformerSynced: func() bool { return true },
nodeResourceGroups: map[string]string{},
unmanagedNodes: sets.NewString(),
routeCIDRs: map[string]string{},
eventRecorder: &record.FakeRecorder{},
}
az.DisksClient = newFakeDisksClient()
az.InterfacesClient = newFakeAzureInterfacesClient()
az.LoadBalancerClient = newFakeAzureLBClient()
az.PublicIPAddressesClient = newFakeAzurePIPClient(az.Config.SubscriptionID)
az.RoutesClient = newFakeRoutesClient()
az.RouteTablesClient = newFakeRouteTablesClient()
az.SecurityGroupsClient = newFakeAzureNSGClient()
az.SubnetsClient = newFakeAzureSubnetsClient()
az.VirtualMachineScaleSetsClient = newFakeVirtualMachineScaleSetsClient()
az.VirtualMachineScaleSetVMsClient = newFakeVirtualMachineScaleSetVMsClient()
az.VirtualMachinesClient = newFakeAzureVirtualMachinesClient()
az.vmSet = newAvailabilitySet(az)
az.vmCache, _ = az.newVMCache()
az.lbCache, _ = az.newLBCache()
az.nsgCache, _ = az.newNSGCache()
az.rtCache, _ = az.newRouteTableCache()
common := &controllerCommon{cloud: az}
az.controllerCommon = common
az.ManagedDiskController = &ManagedDiskController{common: common}
return az
}

View File

@ -82,7 +82,7 @@ func setTestVirtualMachines(c *Cloud, vmList map[string]string, isDataDisksFull
}
func TestInstanceID(t *testing.T) {
cloud := getTestCloud()
cloud := GetTestCloud()
cloud.Config.UseInstanceMetadata = true
testcases := []struct {
@ -215,7 +215,7 @@ func TestInstanceShutdownByProviderID(t *testing.T) {
}
for _, test := range testcases {
cloud := getTestCloud()
cloud := GetTestCloud()
setTestVirtualMachines(cloud, test.vmList, false)
providerID := "azure://" + cloud.getStandardMachineID("subscription", "rg", test.nodeName)
hasShutdown, err := cloud.InstanceShutdownByProviderID(context.Background(), providerID)
@ -236,7 +236,7 @@ func TestInstanceShutdownByProviderID(t *testing.T) {
}
func TestNodeAddresses(t *testing.T) {
cloud := getTestCloud()
cloud := GetTestCloud()
cloud.Config.UseInstanceMetadata = true
metadataTemplate := `{"compute":{"name":"%s"},"network":{"interface":[{"ipv4":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]},"ipv6":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]}}]}}`

View File

@ -378,7 +378,7 @@ func TestEnsureLoadBalancerDeleted(t *testing.T) {
},
}
az := getTestCloud()
az := GetTestCloud()
for i, c := range tests {
clusterResources := getClusterResources(az, vmCount, availabilitySetCount)
getTestSecurityGroup(az)
@ -488,7 +488,7 @@ func TestServiceOwnsPublicIP(t *testing.T) {
}
func TestGetPublicIPAddressResourceGroup(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
for i, c := range []struct {
desc string
@ -693,7 +693,7 @@ func TestGetServiceLoadBalancer(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 3, 3)
for _, existingLB := range test.existingLBs {
@ -903,7 +903,7 @@ func TestIsFrontendIPChanged(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
err := az.SubnetsClient.CreateOrUpdate(context.TODO(), "rg", "vnet", "testSubnet", test.exsistingSubnet)
if err != nil {
t.Fatalf("TestCase[%d] meets unexpected error: %v", i, err)
@ -960,7 +960,7 @@ func TestDeterminePublicIPName(t *testing.T) {
},
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
service.Spec.LoadBalancerIP = test.loadBalancerIP
for _, existingPIP := range test.exsistingPIPs {
@ -1117,7 +1117,7 @@ func TestReconcileLoadBalancerRule(t *testing.T) {
},
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
az.Config.LoadBalancerSku = test.loadBalancerSku
probe, lbrule, err := az.reconcileLoadBalancerRule(&test.service, test.wantLb,
"frontendIPConfigID", "backendPoolID", "lbname", to.Int32Ptr(0))
@ -1547,7 +1547,7 @@ func TestReconcileLoadBalancer(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
az.Config.LoadBalancerSku = test.loadBalancerSku
az.DisableOutboundSNAT = test.disableOutboundSnat
if test.preConfigLBType != "" {
@ -1583,7 +1583,7 @@ func TestReconcileLoadBalancer(t *testing.T) {
}
func TestGetServiceLoadBalancerStatus(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
internalService := getInternalTestService("test1", 80)
@ -1804,7 +1804,7 @@ func TestReconcileSecurityGroup(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
for name, sg := range test.existingSgs {
err := az.SecurityGroupsClient.CreateOrUpdate(context.TODO(), "rg", name, sg, "")
if err != nil {
@ -1852,7 +1852,7 @@ func TestSafeDeletePublicIP(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
err := az.PublicIPAddressesClient.CreateOrUpdate(context.TODO(), "rg", "pip1", network.PublicIPAddress{
Name: to.StringPtr("pip1"),
PublicIPAddressPropertiesFormat: &network.PublicIPAddressPropertiesFormat{
@ -1971,7 +1971,7 @@ func TestReconcilePublicIP(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
service.Annotations = test.annotations
for _, pip := range test.existingPIPs {
@ -2082,7 +2082,7 @@ func TestEnsurePublicIPExists(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
for _, pip := range test.existingPIPs {
err := az.PublicIPAddressesClient.CreateOrUpdate(context.TODO(), "rg", to.String(pip.Name), pip)
@ -2134,7 +2134,7 @@ func TestShouldUpdateLoadBalancer(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
if test.lbHasDeletionTimestamp {
service.ObjectMeta.DeletionTimestamp = &metav1.Time{Time: time.Now()}
@ -2221,7 +2221,7 @@ func TestIsBackendPoolPreConfigured(t *testing.T) {
}
for i, test := range testCases {
az := getTestCloud()
az := GetTestCloud()
az.Config.PreConfiguredBackendPoolLoadBalancerTypes = test.preConfiguredBackendPoolLoadBalancerTypes
var service v1.Service
if test.isInternalService {

View File

@ -127,7 +127,7 @@ func TestGenerateStorageAccountName(t *testing.T) {
}
func TestMapLoadBalancerNameToVMSet(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
az.PrimaryAvailabilitySetName = "primary"
cases := []struct {
@ -175,7 +175,7 @@ func TestMapLoadBalancerNameToVMSet(t *testing.T) {
}
func TestGetAzureLoadBalancerName(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
az.PrimaryAvailabilitySetName = "primary"
cases := []struct {
@ -256,7 +256,7 @@ func TestGetAzureLoadBalancerName(t *testing.T) {
}
func TestGetLoadBalancingRuleName(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
az.PrimaryAvailabilitySetName = "primary"
svc := &v1.Service{
@ -337,7 +337,7 @@ func TestGetLoadBalancingRuleName(t *testing.T) {
}
func TestGetFrontendIPConfigName(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
az.PrimaryAvailabilitySetName = "primary"
svc := &v1.Service{

View File

@ -35,9 +35,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/tools/record"
servicehelpers "k8s.io/cloud-provider/service/helpers"
"k8s.io/legacy-cloud-providers/azure/auth"
"k8s.io/legacy-cloud-providers/azure/retry"
)
@ -69,7 +67,7 @@ func TestFlipServiceInternalAnnotation(t *testing.T) {
// Test additional of a new service/port.
func TestAddPort(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
clusterResources := getClusterResources(az, 1, 1)
@ -110,7 +108,7 @@ func TestLoadBalancerExternalServiceModeSelection(t *testing.T) {
}
func testLoadBalancerServiceDefaultModeSelection(t *testing.T, isInternal bool) {
az := getTestCloud()
az := GetTestCloud()
const vmCount = 8
const availabilitySetCount = 4
const serviceCount = 9
@ -165,7 +163,7 @@ func testLoadBalancerServiceDefaultModeSelection(t *testing.T, isInternal bool)
// Validate even distribution of external services across load balancers
// based on number of availability sets
func testLoadBalancerServiceAutoModeSelection(t *testing.T, isInternal bool) {
az := getTestCloud()
az := GetTestCloud()
const vmCount = 8
const availabilitySetCount = 4
const serviceCount = 9
@ -226,7 +224,7 @@ func testLoadBalancerServiceAutoModeSelection(t *testing.T, isInternal bool) {
// services will be assigned load balancers that are part of the provided availability sets
// specified in service annotation
func testLoadBalancerServicesSpecifiedSelection(t *testing.T, isInternal bool) {
az := getTestCloud()
az := GetTestCloud()
const vmCount = 8
const availabilitySetCount = 4
const serviceCount = 9
@ -269,7 +267,7 @@ func testLoadBalancerServicesSpecifiedSelection(t *testing.T, isInternal bool) {
}
func testLoadBalancerMaxRulesServices(t *testing.T, isInternal bool) {
az := getTestCloud()
az := GetTestCloud()
const vmCount = 1
const availabilitySetCount = 1
@ -329,7 +327,7 @@ func testLoadBalancerMaxRulesServices(t *testing.T, isInternal bool) {
// Validate service deletion in lb auto selection mode
func testLoadBalancerServiceAutoModeDeleteSelection(t *testing.T, isInternal bool) {
az := getTestCloud()
az := GetTestCloud()
const vmCount = 8
const availabilitySetCount = 4
const serviceCount = 9
@ -387,7 +385,7 @@ func testLoadBalancerServiceAutoModeDeleteSelection(t *testing.T, isInternal boo
// Test addition of a new service on an internal LB with a subnet.
func TestReconcileLoadBalancerAddServiceOnInternalSubnet(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc := getInternalTestService("servicea", 80)
addTestSubnet(t, az, &svc)
@ -406,7 +404,7 @@ func TestReconcileLoadBalancerAddServiceOnInternalSubnet(t *testing.T) {
}
func TestReconcileSecurityGroupFromAnyDestinationAddressPrefixToLoadBalancerIP(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("serviceea", v1.ProtocolTCP, nil, 80)
svc1.Spec.LoadBalancerIP = "192.168.0.0"
getTestSecurityGroup(az)
@ -423,7 +421,7 @@ func TestReconcileSecurityGroupFromAnyDestinationAddressPrefixToLoadBalancerIP(t
}
func TestReconcileSecurityGroupDynamicLoadBalancerIP(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80)
svc1.Spec.LoadBalancerIP = ""
getTestSecurityGroup(az)
@ -437,7 +435,7 @@ func TestReconcileSecurityGroupDynamicLoadBalancerIP(t *testing.T) {
// Test addition of services on an internal LB using both default and explicit subnets.
func TestReconcileLoadBalancerAddServicesOnMultipleSubnets(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc1 := getTestService("service1", v1.ProtocolTCP, nil, 8081)
svc2 := getInternalTestService("service2", 8081)
@ -474,7 +472,7 @@ func TestReconcileLoadBalancerAddServicesOnMultipleSubnets(t *testing.T) {
// Test moving a service exposure from one subnet to another.
func TestReconcileLoadBalancerEditServiceSubnet(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc := getInternalTestService("service1", 8081)
addTestSubnet(t, az, &svc)
@ -503,7 +501,7 @@ func TestReconcileLoadBalancerEditServiceSubnet(t *testing.T) {
}
func TestReconcileLoadBalancerNodeHealth(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal
@ -524,7 +522,7 @@ func TestReconcileLoadBalancerNodeHealth(t *testing.T) {
// Test removing all services results in removing the frontend ip configuration
func TestReconcileLoadBalancerRemoveService(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
@ -548,7 +546,7 @@ func TestReconcileLoadBalancerRemoveService(t *testing.T) {
// Test removing all service ports results in removing the frontend ip configuration
func TestReconcileLoadBalancerRemoveAllPortsRemovesFrontendConfig(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
@ -574,7 +572,7 @@ func TestReconcileLoadBalancerRemoveAllPortsRemovesFrontendConfig(t *testing.T)
// Test removal of a port from an existing service.
func TestReconcileLoadBalancerRemovesPort(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
@ -594,7 +592,7 @@ func TestReconcileLoadBalancerRemovesPort(t *testing.T) {
// Test reconciliation of multiple services on same port
func TestReconcileLoadBalancerMultipleServices(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
clusterResources := getClusterResources(az, 1, 1)
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
svc2 := getTestService("serviceb", v1.ProtocolTCP, nil, 80)
@ -622,7 +620,7 @@ func findLBRuleForPort(lbRules []network.LoadBalancingRule, port int32) (network
}
func TestServiceDefaultsToNoSessionPersistence(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("service-sa-omitted", v1.ProtocolTCP, nil, 7170)
clusterResources := getClusterResources(az, 1, 1)
@ -642,7 +640,7 @@ func TestServiceDefaultsToNoSessionPersistence(t *testing.T) {
}
func TestServiceRespectsNoSessionAffinity(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("service-sa-none", v1.ProtocolTCP, nil, 7170)
svc.Spec.SessionAffinity = v1.ServiceAffinityNone
clusterResources := getClusterResources(az, 1, 1)
@ -665,7 +663,7 @@ func TestServiceRespectsNoSessionAffinity(t *testing.T) {
}
func TestServiceRespectsClientIPSessionAffinity(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("service-sa-clientip", v1.ProtocolTCP, nil, 7170)
svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP
clusterResources := getClusterResources(az, 1, 1)
@ -688,7 +686,7 @@ func TestServiceRespectsClientIPSessionAffinity(t *testing.T) {
}
func TestReconcileSecurityGroupNewServiceAddsPort(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
getTestSecurityGroup(az)
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80)
clusterResources := getClusterResources(az, 1, 1)
@ -704,7 +702,7 @@ func TestReconcileSecurityGroupNewServiceAddsPort(t *testing.T) {
}
func TestReconcileSecurityGroupNewInternalServiceAddsPort(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
getTestSecurityGroup(az)
svc1 := getInternalTestService("serviceea", 80)
addTestSubnet(t, az, &svc1)
@ -721,7 +719,7 @@ func TestReconcileSecurityGroupNewInternalServiceAddsPort(t *testing.T) {
}
func TestReconcileSecurityGroupRemoveService(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
service1 := getTestService("servicea", v1.ProtocolTCP, nil, 81)
service2 := getTestService("serviceb", v1.ProtocolTCP, nil, 82)
clusterResources := getClusterResources(az, 1, 1)
@ -743,7 +741,7 @@ func TestReconcileSecurityGroupRemoveService(t *testing.T) {
}
func TestReconcileSecurityGroupRemoveServiceRemovesPort(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
clusterResources := getClusterResources(az, 1, 1)
@ -761,7 +759,7 @@ func TestReconcileSecurityGroupRemoveServiceRemovesPort(t *testing.T) {
}
func TestReconcileSecurityWithSourceRanges(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
svc.Spec.LoadBalancerSourceRanges = []string{
"192.168.0.0/24",
@ -782,7 +780,7 @@ func TestReconcileSecurityWithSourceRanges(t *testing.T) {
}
func TestReconcileSecurityGroupEtagMismatch(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
sg := getTestSecurityGroup(az)
cachedSG := *sg
@ -805,7 +803,7 @@ func TestReconcileSecurityGroupEtagMismatch(t *testing.T) {
}
func TestReconcilePublicIPWithNewService(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
@ -826,7 +824,7 @@ func TestReconcilePublicIPWithNewService(t *testing.T) {
}
func TestReconcilePublicIPRemoveService(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
@ -846,7 +844,7 @@ func TestReconcilePublicIPRemoveService(t *testing.T) {
}
func TestReconcilePublicIPWithInternalService(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getInternalTestService("servicea", 80, 443)
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
@ -858,7 +856,7 @@ func TestReconcilePublicIPWithInternalService(t *testing.T) {
}
func TestReconcilePublicIPWithExternalAndInternalSwitch(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getInternalTestService("servicea", 80, 443)
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
@ -883,54 +881,6 @@ func TestReconcilePublicIPWithExternalAndInternalSwitch(t *testing.T) {
validatePublicIP(t, pip, &svc, true)
}
func getTestCloud() (az *Cloud) {
az = &Cloud{
Config: Config{
AzureAuthConfig: auth.AzureAuthConfig{
TenantID: "tenant",
SubscriptionID: "subscription",
},
ResourceGroup: "rg",
VnetResourceGroup: "rg",
RouteTableResourceGroup: "rg",
SecurityGroupResourceGroup: "rg",
Location: "westus",
VnetName: "vnet",
SubnetName: "subnet",
SecurityGroupName: "nsg",
RouteTableName: "rt",
PrimaryAvailabilitySetName: "as",
MaximumLoadBalancerRuleCount: 250,
VMType: vmTypeStandard,
},
nodeZones: map[string]sets.String{},
nodeInformerSynced: func() bool { return true },
nodeResourceGroups: map[string]string{},
unmanagedNodes: sets.NewString(),
routeCIDRs: map[string]string{},
eventRecorder: &record.FakeRecorder{},
}
az.DisksClient = newFakeDisksClient()
az.InterfacesClient = newFakeAzureInterfacesClient()
az.LoadBalancerClient = newFakeAzureLBClient()
az.PublicIPAddressesClient = newFakeAzurePIPClient(az.Config.SubscriptionID)
az.RoutesClient = newFakeRoutesClient()
az.RouteTablesClient = newFakeRouteTablesClient()
az.SecurityGroupsClient = newFakeAzureNSGClient()
az.SubnetsClient = newFakeAzureSubnetsClient()
az.VirtualMachineScaleSetsClient = newFakeVirtualMachineScaleSetsClient()
az.VirtualMachineScaleSetVMsClient = newFakeVirtualMachineScaleSetVMsClient()
az.VirtualMachinesClient = newFakeAzureVirtualMachinesClient()
az.vmSet = newAvailabilitySet(az)
az.vmCache, _ = az.newVMCache()
az.lbCache, _ = az.newLBCache()
az.nsgCache, _ = az.newNSGCache()
az.rtCache, _ = az.newRouteTableCache()
az.controllerCommon = &controllerCommon{cloud: az}
return az
}
const networkInterfacesIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/networkInterfaces/%s"
const primaryIPConfigIDTemplate = "%s/ipConfigurations/ipconfig"
@ -1159,7 +1109,7 @@ func getTestSecurityGroup(az *Cloud, services ...v1.Service) *network.SecurityGr
}
func validateLoadBalancer(t *testing.T, loadBalancer *network.LoadBalancer, services ...v1.Service) {
az := getTestCloud()
az := GetTestCloud()
expectedRuleCount := 0
expectedFrontendIPCount := 0
expectedProbeCount := 0
@ -1375,7 +1325,7 @@ func securityRuleMatches(serviceSourceRange string, servicePort v1.ServicePort,
}
func validateSecurityGroup(t *testing.T, securityGroup *network.SecurityGroup, services ...v1.Service) {
az := getTestCloud()
az := GetTestCloud()
seenRules := make(map[string]string)
for _, svc := range services {
for _, wantedRule := range svc.Spec.Ports {
@ -1702,7 +1652,7 @@ func validateEmptyConfig(t *testing.T, config string) {
}
func TestGetNodeNameByProviderID(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
providers := []struct {
providerID string
name types.NodeName
@ -1783,7 +1733,7 @@ func addTestSubnet(t *testing.T, az *Cloud, svc *v1.Service) {
}
func TestIfServiceSpecifiesSharedRuleAndRuleDoesNotExistItIsCreated(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("servicesr", v1.ProtocolTCP, nil, 80)
svc.Spec.LoadBalancerIP = "192.168.77.88"
svc.Annotations[ServiceAnnotationSharedSecurityRule] = "true"
@ -1822,7 +1772,7 @@ func TestIfServiceSpecifiesSharedRuleAndRuleDoesNotExistItIsCreated(t *testing.T
}
func TestIfServiceSpecifiesSharedRuleAndRuleExistsThenTheServicesPortAndAddressAreAdded(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc := getTestService("servicesr", v1.ProtocolTCP, nil, 80)
svc.Spec.LoadBalancerIP = "192.168.77.88"
svc.Annotations[ServiceAnnotationSharedSecurityRule] = "true"
@ -1874,7 +1824,7 @@ func TestIfServiceSpecifiesSharedRuleAndRuleExistsThenTheServicesPortAndAddressA
}
func TestIfServicesSpecifySharedRuleButDifferentPortsThenSeparateRulesAreCreated(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -1943,7 +1893,7 @@ func TestIfServicesSpecifySharedRuleButDifferentPortsThenSeparateRulesAreCreated
}
func TestIfServicesSpecifySharedRuleButDifferentProtocolsThenSeparateRulesAreCreated(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -2010,7 +1960,7 @@ func TestIfServicesSpecifySharedRuleButDifferentProtocolsThenSeparateRulesAreCre
}
func TestIfServicesSpecifySharedRuleButDifferentSourceAddressesThenSeparateRulesAreCreated(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 80)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -2081,7 +2031,7 @@ func TestIfServicesSpecifySharedRuleButDifferentSourceAddressesThenSeparateRules
}
func TestIfServicesSpecifySharedRuleButSomeAreOnDifferentPortsThenRulesAreSeparatedOrConsoliatedByPort(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -2181,7 +2131,7 @@ func TestIfServicesSpecifySharedRuleButSomeAreOnDifferentPortsThenRulesAreSepara
}
func TestIfServiceSpecifiesSharedRuleAndServiceIsDeletedThenTheServicesPortAndAddressAreRemoved(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 80)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -2236,7 +2186,7 @@ func TestIfServiceSpecifiesSharedRuleAndServiceIsDeletedThenTheServicesPortAndAd
}
func TestIfSomeServicesShareARuleAndOneIsDeletedItIsRemovedFromTheRightRule(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -2343,7 +2293,7 @@ func TestIfSomeServicesShareARuleAndOneIsDeletedItIsRemovedFromTheRightRule(t *t
}
func TestIfServiceSpecifiesSharedRuleAndLastServiceIsDeletedThenRuleIsDeleted(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -2423,7 +2373,7 @@ func TestIfServiceSpecifiesSharedRuleAndLastServiceIsDeletedThenRuleIsDeleted(t
}
func TestCanCombineSharedAndPrivateRulesInSameGroup(t *testing.T) {
az := getTestCloud()
az := GetTestCloud()
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
svc1.Spec.LoadBalancerIP = "192.168.77.88"
@ -2680,7 +2630,7 @@ func TestGetResourceGroups(t *testing.T) {
},
}
az := getTestCloud()
az := GetTestCloud()
for _, test := range tests {
az.nodeResourceGroups = test.nodeResourceGroups
if test.informerSynced {
@ -2730,7 +2680,7 @@ func TestGetNodeResourceGroup(t *testing.T) {
},
}
az := getTestCloud()
az := GetTestCloud()
for _, test := range tests {
az.nodeResourceGroups = test.nodeResourceGroups
if test.informerSynced {

View File

@ -38,7 +38,7 @@ func newTestScaleSet(scaleSetName, zone string, faultDomain int32, vmList []stri
}
func newTestScaleSetWithState(scaleSetName, zone string, faultDomain int32, vmList []string, state string) (*scaleSet, error) {
cloud := getTestCloud()
cloud := GetTestCloud()
setTestVirtualMachineCloud(cloud, scaleSetName, zone, faultDomain, vmList, state)
ss, err := newScaleSet(cloud)
if err != nil {

View File

@ -89,7 +89,7 @@ func TestIsNodeUnmanaged(t *testing.T) {
},
}
az := getTestCloud()
az := GetTestCloud()
for _, test := range tests {
az.unmanagedNodes = test.unmanagedNodes
if test.expectErr {
@ -137,7 +137,7 @@ func TestIsNodeUnmanagedByProviderID(t *testing.T) {
},
}
az := getTestCloud()
az := GetTestCloud()
for _, test := range tests {
isUnmanagedNode := az.IsNodeUnmanagedByProviderID(test.providerID)
assert.Equal(t, test.expected, isUnmanagedNode, test.providerID)