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:
		@@ -18,6 +18,7 @@ package volumemanager
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"sort"
 | 
				
			||||||
	"strconv"
 | 
						"strconv"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -286,15 +287,8 @@ func (vm *volumeManager) GetVolumesInUse() []v1.UniqueVolumeName {
 | 
				
			|||||||
	// volume *should* be attached to this node until it is safely unmounted.
 | 
						// volume *should* be attached to this node until it is safely unmounted.
 | 
				
			||||||
	desiredVolumes := vm.desiredStateOfWorld.GetVolumesToMount()
 | 
						desiredVolumes := vm.desiredStateOfWorld.GetVolumesToMount()
 | 
				
			||||||
	mountedVolumes := vm.actualStateOfWorld.GetGloballyMountedVolumes()
 | 
						mountedVolumes := vm.actualStateOfWorld.GetGloballyMountedVolumes()
 | 
				
			||||||
	volumesToReportInUse :=
 | 
						volumesToReportInUse := make([]v1.UniqueVolumeName, 0, len(desiredVolumes)+len(mountedVolumes))
 | 
				
			||||||
		make(
 | 
						desiredVolumesMap := make(map[v1.UniqueVolumeName]bool, len(desiredVolumes)+len(mountedVolumes))
 | 
				
			||||||
			[]v1.UniqueVolumeName,
 | 
					 | 
				
			||||||
			0, /* len */
 | 
					 | 
				
			||||||
			len(desiredVolumes)+len(mountedVolumes) /* cap */)
 | 
					 | 
				
			||||||
	desiredVolumesMap :=
 | 
					 | 
				
			||||||
		make(
 | 
					 | 
				
			||||||
			map[v1.UniqueVolumeName]bool,
 | 
					 | 
				
			||||||
			len(desiredVolumes)+len(mountedVolumes) /* cap */)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, volume := range desiredVolumes {
 | 
						for _, volume := range desiredVolumes {
 | 
				
			||||||
		if volume.PluginIsAttachable {
 | 
							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
 | 
						return volumesToReportInUse
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user