mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-13 10:33:35 +00:00
util: move kernel version functions to pkg/util/kernel
Signed-off-by: Niels de Vos <ndevos@ibm.com>
This commit is contained in:
committed by
mergify[bot]
parent
542ed3de63
commit
15da101b1b
@ -24,6 +24,8 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/ceph/ceph-csi/pkg/util/kernel"
|
||||
|
||||
csicommon "github.com/ceph/ceph-csi/internal/csi-common"
|
||||
"github.com/ceph/ceph-csi/internal/util"
|
||||
"github.com/ceph/ceph-csi/internal/util/file"
|
||||
@ -88,7 +90,7 @@ var (
|
||||
// deepFlattenSupport holds the list of kernel which support mapping rbd
|
||||
// image with deep-flatten image feature
|
||||
//nolint:mnd // numbers specify Kernel versions.
|
||||
deepFlattenSupport = []util.KernelVersion{
|
||||
deepFlattenSupport = []kernel.KernelVersion{
|
||||
{
|
||||
Version: 5,
|
||||
PatchLevel: 1,
|
||||
@ -587,12 +589,12 @@ func flattenImageBeforeMapping(
|
||||
|
||||
if kernelRelease == "" {
|
||||
// fetch the current running kernel info
|
||||
kernelRelease, err = util.GetKernelVersion()
|
||||
kernelRelease, err = kernel.GetKernelVersion()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if !util.CheckKernelSupport(kernelRelease, deepFlattenSupport) && !skipForceFlatten {
|
||||
if !kernel.CheckKernelSupport(kernelRelease, deepFlattenSupport) && !skipForceFlatten {
|
||||
feature, err = volOptions.checkImageChainHasFeature(ctx, librbd.FeatureDeepFlatten)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -25,6 +25,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/ceph/ceph-csi/pkg/util/kernel"
|
||||
|
||||
"github.com/ceph/ceph-csi/internal/util"
|
||||
"github.com/ceph/ceph-csi/internal/util/log"
|
||||
|
||||
@ -71,7 +73,7 @@ var (
|
||||
hasNBD = true
|
||||
hasNBDCookieSupport = false
|
||||
|
||||
kernelCookieSupport = []util.KernelVersion{
|
||||
kernelCookieSupport = []kernel.KernelVersion{
|
||||
{
|
||||
Version: 5,
|
||||
PatchLevel: 14,
|
||||
@ -243,13 +245,13 @@ func SetRbdNbdToolFeatures() {
|
||||
log.DefaultLog("nbd module loaded")
|
||||
|
||||
// fetch the current running kernel info
|
||||
release, err := util.GetKernelVersion()
|
||||
release, err := kernel.GetKernelVersion()
|
||||
if err != nil {
|
||||
log.WarningLogMsg("fetching current kernel version failed (%v)", err)
|
||||
|
||||
return
|
||||
}
|
||||
if !util.CheckKernelSupport(release, kernelCookieSupport) {
|
||||
if !kernel.CheckKernelSupport(release, kernelCookieSupport) {
|
||||
log.WarningLogMsg("kernel version %q doesn't support cookie feature", release)
|
||||
|
||||
return
|
||||
|
@ -29,6 +29,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/ceph/ceph-csi/pkg/util/crypto"
|
||||
"github.com/ceph/ceph-csi/pkg/util/kernel"
|
||||
|
||||
"github.com/ceph/ceph-csi/internal/rbd/types"
|
||||
"github.com/ceph/ceph-csi/internal/util"
|
||||
@ -245,28 +246,28 @@ var (
|
||||
},
|
||||
}
|
||||
|
||||
krbdLayeringSupport = []util.KernelVersion{
|
||||
krbdLayeringSupport = []kernel.KernelVersion{
|
||||
{
|
||||
Version: 3,
|
||||
PatchLevel: 8,
|
||||
SubLevel: 0,
|
||||
},
|
||||
}
|
||||
krbdStripingV2Support = []util.KernelVersion{
|
||||
krbdStripingV2Support = []kernel.KernelVersion{
|
||||
{
|
||||
Version: 3,
|
||||
PatchLevel: 10,
|
||||
SubLevel: 0,
|
||||
},
|
||||
}
|
||||
krbdExclusiveLockSupport = []util.KernelVersion{
|
||||
krbdExclusiveLockSupport = []kernel.KernelVersion{
|
||||
{
|
||||
Version: 4,
|
||||
PatchLevel: 9,
|
||||
SubLevel: 0,
|
||||
},
|
||||
}
|
||||
krbdDataPoolSupport = []util.KernelVersion{
|
||||
krbdDataPoolSupport = []kernel.KernelVersion{
|
||||
{
|
||||
Version: 4,
|
||||
PatchLevel: 11,
|
||||
@ -279,19 +280,19 @@ var (
|
||||
// Minimum kernel version should be 3.8, else it will return error.
|
||||
func prepareKrbdFeatureAttrs() (uint64, error) {
|
||||
// fetch the current running kernel info
|
||||
release, err := util.GetKernelVersion()
|
||||
release, err := kernel.GetKernelVersion()
|
||||
if err != nil {
|
||||
return 0, fmt.Errorf("fetching current kernel version failed: %w", err)
|
||||
}
|
||||
|
||||
switch {
|
||||
case util.CheckKernelSupport(release, krbdDataPoolSupport):
|
||||
case kernel.CheckKernelSupport(release, krbdDataPoolSupport):
|
||||
return librbd.FeatureDataPool, nil
|
||||
case util.CheckKernelSupport(release, krbdExclusiveLockSupport):
|
||||
case kernel.CheckKernelSupport(release, krbdExclusiveLockSupport):
|
||||
return librbd.FeatureExclusiveLock, nil
|
||||
case util.CheckKernelSupport(release, krbdStripingV2Support):
|
||||
case kernel.CheckKernelSupport(release, krbdStripingV2Support):
|
||||
return librbd.FeatureStripingV2, nil
|
||||
case util.CheckKernelSupport(release, krbdLayeringSupport):
|
||||
case kernel.CheckKernelSupport(release, krbdLayeringSupport):
|
||||
return librbd.FeatureLayering, nil
|
||||
}
|
||||
log.ErrorLogMsg("kernel version is too old: %q", release)
|
||||
|
Reference in New Issue
Block a user