Merge pull request #49849 from dixudx/stable_sort_volumesInUse

Automatic merge from submit-queue (batch tested with PRs 49849, 50334, 51414)

make volumesInUse sorted in node status updates

**What this PR does / why we need it**:

`volumesInUse` is not sent in a stable sort order. This will make node status patch requests larger than needed, and makes debugging nodes harder than necessary.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #49731

**Special notes for your reviewer**:

/cc @derekwaynecarr @jboyd01

**Release note**:

```release-note
make volumesInUse sorted in node status updates
```
This commit is contained in:
Kubernetes Submit Queue 2017-08-26 18:09:27 -07:00 committed by GitHub
commit cbe5f38ed2

View File

@ -18,6 +18,7 @@ package volumemanager
import (
"fmt"
"sort"
"strconv"
"time"
@ -286,15 +287,8 @@ func (vm *volumeManager) GetVolumesInUse() []v1.UniqueVolumeName {
// volume *should* be attached to this node until it is safely unmounted.
desiredVolumes := vm.desiredStateOfWorld.GetVolumesToMount()
mountedVolumes := vm.actualStateOfWorld.GetGloballyMountedVolumes()
volumesToReportInUse :=
make(
[]v1.UniqueVolumeName,
0, /* len */
len(desiredVolumes)+len(mountedVolumes) /* cap */)
desiredVolumesMap :=
make(
map[v1.UniqueVolumeName]bool,
len(desiredVolumes)+len(mountedVolumes) /* cap */)
volumesToReportInUse := make([]v1.UniqueVolumeName, 0, len(desiredVolumes)+len(mountedVolumes))
desiredVolumesMap := make(map[v1.UniqueVolumeName]bool, len(desiredVolumes)+len(mountedVolumes))
for _, volume := range desiredVolumes {
if volume.PluginIsAttachable {
@ -313,6 +307,9 @@ func (vm *volumeManager) GetVolumesInUse() []v1.UniqueVolumeName {
}
}
sort.Slice(volumesToReportInUse, func(i, j int) bool {
return string(volumesToReportInUse[i]) < string(volumesToReportInUse[j])
})
return volumesToReportInUse
}