in pkg/providers/imagefamily/nodeimageversionsclient.go [108:132]
func isNewerVersion(version1, version2 string) bool {
// Split by dots and compare each segment as an integer getting the largest vhd version
v1Segments := strings.Split(version1, ".")
v2Segments := strings.Split(version2, ".")
for i := 0; i < len(v1Segments) && i < len(v2Segments); i++ {
v1Segment, err1 := strconv.Atoi(v1Segments[i])
v2Segment, err2 := strconv.Atoi(v2Segments[i])
if err1 != nil || err2 != nil {
return false
}
if v1Segment > v2Segment {
return true
} else if v1Segment < v2Segment {
return false
}
}
// If all segments are equal up to the length of the shorter version,
// the longer version is considered newer if it has additional segments
// the legacy linux versions use "yy.mm.dd" whereas new linux versions use "yymm.dd.build"
return len(v1Segments) > len(v2Segments)
}