kubelet/volumemanager: simplify GetVolumesInUse

remove the map[v1.UniqueVolumeName]bool allocation
and also accelerate this func.
This commit is contained in:
胡玮文 2024-05-27 15:16:36 +08:00
parent 93cdd08dcd
commit 7f7d720a7d

View File

@ -351,27 +351,21 @@ func (vm *volumeManager) GetVolumesInUse() []v1.UniqueVolumeName {
desiredVolumes := vm.desiredStateOfWorld.GetVolumesToMount()
allAttachedVolumes := vm.actualStateOfWorld.GetAttachedVolumes()
volumesToReportInUse := make([]v1.UniqueVolumeName, 0, len(desiredVolumes)+len(allAttachedVolumes))
desiredVolumesMap := make(map[v1.UniqueVolumeName]bool, len(desiredVolumes)+len(allAttachedVolumes))
for _, volume := range desiredVolumes {
if volume.PluginIsAttachable {
if _, exists := desiredVolumesMap[volume.VolumeName]; !exists {
desiredVolumesMap[volume.VolumeName] = true
volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName)
}
volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName)
}
}
for _, volume := range allAttachedVolumes {
if volume.PluginIsAttachable {
if _, exists := desiredVolumesMap[volume.VolumeName]; !exists {
volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName)
}
volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName)
}
}
slices.Sort(volumesToReportInUse)
return volumesToReportInUse
return slices.Compact(volumesToReportInUse)
}
func (vm *volumeManager) ReconcilerStatesHasBeenSynced() bool {