Skip to content

Commit e545115

Browse files
committed
fix: getSubnetResourceID issue when subnetName is specified
1 parent 7bc338b commit e545115

File tree

3 files changed

+33
-10
lines changed

3 files changed

+33
-10
lines changed

pkg/blob/blob.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -734,18 +734,27 @@ func (d *Driver) GetStorageAccountFromSecret(secretName, secretNamespace string)
734734
}
735735

736736
// getSubnetResourceID get default subnet resource ID from cloud provider config
737-
func (d *Driver) getSubnetResourceID() string {
737+
func (d *Driver) getSubnetResourceID(vnetResourceGroup, vnetName, subnetName string) string {
738738
subsID := d.cloud.SubscriptionID
739739
if len(d.cloud.NetworkResourceSubscriptionID) > 0 {
740740
subsID = d.cloud.NetworkResourceSubscriptionID
741741
}
742742

743-
rg := d.cloud.ResourceGroup
744-
if len(d.cloud.VnetResourceGroup) > 0 {
745-
rg = d.cloud.VnetResourceGroup
743+
if len(vnetResourceGroup) == 0 {
744+
vnetResourceGroup = d.cloud.ResourceGroup
745+
if len(d.cloud.VnetResourceGroup) > 0 {
746+
vnetResourceGroup = d.cloud.VnetResourceGroup
747+
}
748+
}
749+
750+
if len(vnetName) == 0 {
751+
vnetName = d.cloud.VnetName
746752
}
747753

748-
return fmt.Sprintf(subnetTemplate, subsID, rg, d.cloud.VnetName, d.cloud.SubnetName)
754+
if len(subnetName) == 0 {
755+
subnetName = d.cloud.SubnetName
756+
}
757+
return fmt.Sprintf(subnetTemplate, subsID, vnetResourceGroup, vnetName, subnetName)
749758
}
750759

751760
func (d *Driver) useDataPlaneAPI(volumeID, accountName string) bool {

pkg/blob/blob_test.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,7 @@ func TestGetSubnetResourceID(t *testing.T) {
11211121
d.cloud.NetworkResourceSubscriptionID = ""
11221122
d.cloud.ResourceGroup = "foo"
11231123
d.cloud.VnetResourceGroup = "foo"
1124-
actualOutput := d.getSubnetResourceID()
1124+
actualOutput := d.getSubnetResourceID("", "", "")
11251125
expectedOutput := fmt.Sprintf(subnetTemplate, d.cloud.SubscriptionID, "foo", d.cloud.VnetName, d.cloud.SubnetName)
11261126
assert.Equal(t, actualOutput, expectedOutput, "cloud.SubscriptionID should be used as the SubID")
11271127
},
@@ -1135,7 +1135,7 @@ func TestGetSubnetResourceID(t *testing.T) {
11351135
d.cloud.NetworkResourceSubscriptionID = "fakeNetSubID"
11361136
d.cloud.ResourceGroup = "foo"
11371137
d.cloud.VnetResourceGroup = "foo"
1138-
actualOutput := d.getSubnetResourceID()
1138+
actualOutput := d.getSubnetResourceID("", "", "")
11391139
expectedOutput := fmt.Sprintf(subnetTemplate, d.cloud.NetworkResourceSubscriptionID, "foo", d.cloud.VnetName, d.cloud.SubnetName)
11401140
assert.Equal(t, actualOutput, expectedOutput, "cloud.NetworkResourceSubscriptionID should be used as the SubID")
11411141
},
@@ -1149,7 +1149,7 @@ func TestGetSubnetResourceID(t *testing.T) {
11491149
d.cloud.NetworkResourceSubscriptionID = "bar"
11501150
d.cloud.ResourceGroup = "fakeResourceGroup"
11511151
d.cloud.VnetResourceGroup = ""
1152-
actualOutput := d.getSubnetResourceID()
1152+
actualOutput := d.getSubnetResourceID("", "", "")
11531153
expectedOutput := fmt.Sprintf(subnetTemplate, "bar", d.cloud.ResourceGroup, d.cloud.VnetName, d.cloud.SubnetName)
11541154
assert.Equal(t, actualOutput, expectedOutput, "cloud.Resourcegroup should be used as the rg")
11551155
},
@@ -1163,11 +1163,25 @@ func TestGetSubnetResourceID(t *testing.T) {
11631163
d.cloud.NetworkResourceSubscriptionID = "bar"
11641164
d.cloud.ResourceGroup = "fakeResourceGroup"
11651165
d.cloud.VnetResourceGroup = "fakeVnetResourceGroup"
1166-
actualOutput := d.getSubnetResourceID()
1166+
actualOutput := d.getSubnetResourceID("", "", "")
11671167
expectedOutput := fmt.Sprintf(subnetTemplate, "bar", d.cloud.VnetResourceGroup, d.cloud.VnetName, d.cloud.SubnetName)
11681168
assert.Equal(t, actualOutput, expectedOutput, "cloud.VnetResourceGroup should be used as the rg")
11691169
},
11701170
},
1171+
{
1172+
name: "VnetResourceGroup, vnetName, subnetName is specified",
1173+
testFunc: func(t *testing.T) {
1174+
d := NewFakeDriver()
1175+
d.cloud = &azure.Cloud{}
1176+
d.cloud.SubscriptionID = "bar"
1177+
d.cloud.NetworkResourceSubscriptionID = "bar"
1178+
d.cloud.ResourceGroup = "fakeResourceGroup"
1179+
d.cloud.VnetResourceGroup = "fakeVnetResourceGroup"
1180+
actualOutput := d.getSubnetResourceID("vnetrg", "vnetName", "subnetName")
1181+
expectedOutput := fmt.Sprintf(subnetTemplate, "bar", "vnetrg", "vnetName", "subnetName")
1182+
assert.Equal(t, actualOutput, expectedOutput, "VnetResourceGroup, vnetName, subnetName is specified")
1183+
},
1184+
},
11711185
}
11721186
for _, tc := range testCases {
11731187
t.Run(tc.name, tc.testFunc)

pkg/blob/controllerserver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
205205
isHnsEnabled = to.BoolPtr(true)
206206
enableNfsV3 = to.BoolPtr(true)
207207
// set VirtualNetworkResourceIDs for storage account firewall setting
208-
vnetResourceID := d.getSubnetResourceID()
208+
vnetResourceID := d.getSubnetResourceID(vnetResourceGroup, vnetName, subnetName)
209209
klog.V(2).Infof("set vnetResourceID(%s) for NFS protocol", vnetResourceID)
210210
vnetResourceIDs = []string{vnetResourceID}
211211
if err := d.updateSubnetServiceEndpoints(ctx, vnetResourceGroup, vnetName, subnetName); err != nil {

0 commit comments

Comments
 (0)