mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 11:13:48 +00:00
Merge pull request #84958 from kkmsft/disk_fixes
Azure : filter disks with ToBeDetached flag
This commit is contained in:
commit
84318d9f40
@ -122,6 +122,7 @@ go_test(
|
|||||||
"//vendor/github.com/Azure/go-autorest/autorest:go_default_library",
|
"//vendor/github.com/Azure/go-autorest/autorest:go_default_library",
|
||||||
"//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library",
|
"//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library",
|
||||||
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
||||||
|
"//vendor/k8s.io/utils/pointer:go_default_library",
|
||||||
"//vendor/sigs.k8s.io/yaml:go_default_library",
|
"//vendor/sigs.k8s.io/yaml:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -300,3 +300,17 @@ func (c *controllerCommon) DisksAreAttached(diskNames []string, nodeName types.N
|
|||||||
|
|
||||||
return attached, nil
|
return attached, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func filterDetachingDisks(unfilteredDisks []compute.DataDisk) []compute.DataDisk {
|
||||||
|
filteredDisks := []compute.DataDisk{}
|
||||||
|
for _, disk := range unfilteredDisks {
|
||||||
|
if disk.ToBeDetached != nil && *disk.ToBeDetached {
|
||||||
|
if disk.Name != nil {
|
||||||
|
klog.V(2).Infof("Filtering disk: %s with ToBeDetached flag set.", *disk.Name)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
filteredDisks = append(filteredDisks, disk)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filteredDisks
|
||||||
|
}
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"k8s.io/utils/pointer"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCommonAttachDisk(t *testing.T) {
|
func TestCommonAttachDisk(t *testing.T) {
|
||||||
@ -248,3 +249,38 @@ func TestDisksAreAttached(t *testing.T) {
|
|||||||
assert.Equal(t, test.expectedErr, err != nil, "TestCase[%d]: %s", i, test.desc)
|
assert.Equal(t, test.expectedErr, err != nil, "TestCase[%d]: %s", i, test.desc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFilteredDetatchingDisks(t *testing.T) {
|
||||||
|
|
||||||
|
disks := []compute.DataDisk{
|
||||||
|
{
|
||||||
|
Name: pointer.StringPtr("DiskName1"),
|
||||||
|
ToBeDetached: pointer.BoolPtr(false),
|
||||||
|
ManagedDisk: &compute.ManagedDiskParameters{
|
||||||
|
ID: pointer.StringPtr("ManagedID"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: pointer.StringPtr("DiskName2"),
|
||||||
|
ToBeDetached: pointer.BoolPtr(true),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: pointer.StringPtr("DiskName3"),
|
||||||
|
ToBeDetached: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: pointer.StringPtr("DiskName4"),
|
||||||
|
ToBeDetached: nil,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
filteredDisks := filterDetachingDisks(disks)
|
||||||
|
assert.Equal(t, 3, len(filteredDisks))
|
||||||
|
assert.Equal(t, "DiskName1", *filteredDisks[0].Name)
|
||||||
|
assert.Equal(t, "ManagedID", *filteredDisks[0].ManagedDisk.ID)
|
||||||
|
assert.Equal(t, "DiskName3", *filteredDisks[1].Name)
|
||||||
|
|
||||||
|
disks = []compute.DataDisk{}
|
||||||
|
filteredDisks = filterDetachingDisks(disks)
|
||||||
|
assert.Equal(t, 0, len(filteredDisks))
|
||||||
|
}
|
||||||
|
@ -42,8 +42,7 @@ func (as *availabilitySet) AttachDisk(isManagedDisk bool, diskName, diskURI stri
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
disks := make([]compute.DataDisk, len(*vm.StorageProfile.DataDisks))
|
disks := filterDetachingDisks(*vm.StorageProfile.DataDisks)
|
||||||
copy(disks, *vm.StorageProfile.DataDisks)
|
|
||||||
|
|
||||||
if isManagedDisk {
|
if isManagedDisk {
|
||||||
managedDisk := &compute.ManagedDiskParameters{ID: &diskURI}
|
managedDisk := &compute.ManagedDiskParameters{ID: &diskURI}
|
||||||
@ -117,8 +116,7 @@ func (as *availabilitySet) DetachDisk(diskName, diskURI string, nodeName types.N
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
disks := make([]compute.DataDisk, len(*vm.StorageProfile.DataDisks))
|
disks := filterDetachingDisks(*vm.StorageProfile.DataDisks)
|
||||||
copy(disks, *vm.StorageProfile.DataDisks)
|
|
||||||
|
|
||||||
bFoundDisk := false
|
bFoundDisk := false
|
||||||
for i, disk := range disks {
|
for i, disk := range disks {
|
||||||
|
@ -44,8 +44,7 @@ func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nod
|
|||||||
|
|
||||||
disks := []compute.DataDisk{}
|
disks := []compute.DataDisk{}
|
||||||
if vm.StorageProfile != nil && vm.StorageProfile.DataDisks != nil {
|
if vm.StorageProfile != nil && vm.StorageProfile.DataDisks != nil {
|
||||||
disks = make([]compute.DataDisk, len(*vm.StorageProfile.DataDisks))
|
disks = filterDetachingDisks(*vm.StorageProfile.DataDisks)
|
||||||
copy(disks, *vm.StorageProfile.DataDisks)
|
|
||||||
}
|
}
|
||||||
if isManagedDisk {
|
if isManagedDisk {
|
||||||
managedDisk := &compute.ManagedDiskParameters{ID: &diskURI}
|
managedDisk := &compute.ManagedDiskParameters{ID: &diskURI}
|
||||||
@ -121,8 +120,7 @@ func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName
|
|||||||
|
|
||||||
disks := []compute.DataDisk{}
|
disks := []compute.DataDisk{}
|
||||||
if vm.StorageProfile != nil && vm.StorageProfile.DataDisks != nil {
|
if vm.StorageProfile != nil && vm.StorageProfile.DataDisks != nil {
|
||||||
disks = make([]compute.DataDisk, len(*vm.StorageProfile.DataDisks))
|
disks = filterDetachingDisks(*vm.StorageProfile.DataDisks)
|
||||||
copy(disks, *vm.StorageProfile.DataDisks)
|
|
||||||
}
|
}
|
||||||
bFoundDisk := false
|
bFoundDisk := false
|
||||||
for i, disk := range disks {
|
for i, disk := range disks {
|
||||||
|
Loading…
Reference in New Issue
Block a user