Revision 8bf9fd275cb9c3bf650bcd12753cf12e6034a65a authored by Tam Mach on 24 February 2024, 11:28:40 UTC, committed by Jarno Rajahalme on 28 February 2024, 14:28:39 UTC
This commit is to move MockStream struct to stream_test.go as it's only used in unit test. Signed-off-by: Tam Mach <tam.mach@cilium.io>
1 parent 6fee46f
version_unix.go
// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of Cilium
//go:build !windows
package version
import (
"fmt"
"regexp"
"strings"
"github.com/blang/semver/v4"
"golang.org/x/sys/unix"
"github.com/cilium/cilium/pkg/versioncheck"
)
func parseKernelVersion(ver string) (semver.Version, error) {
verStrs := strings.Split(ver, ".")
switch {
case len(verStrs) < 2:
return semver.Version{}, fmt.Errorf("unable to get kernel version from %q", ver)
case len(verStrs) < 3:
verStrs = append(verStrs, "0")
}
// We are assuming the kernel version will be something as:
// 4.9.17-040917-generic
// If verStrs is []string{ "4", "9", "17-040917-generic" }
// then we need to retrieve patch number.
patch := regexp.MustCompilePOSIX(`^[0-9]+`).FindString(verStrs[2])
if patch == "" {
verStrs[2] = "0"
} else {
verStrs[2] = patch
}
return versioncheck.Version(strings.Join(verStrs[:3], "."))
}
// GetKernelVersion returns the version of the Linux kernel running on this host.
func GetKernelVersion() (semver.Version, error) {
var unameBuf unix.Utsname
if err := unix.Uname(&unameBuf); err != nil {
return semver.Version{}, err
}
return parseKernelVersion(string(unameBuf.Release[:]))
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...