mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-14 02:43:36 +00:00
cleanup: add IsBlockMultiNode() helper
IsBlockMultiNode() is a new helper that takes a slice of VolumeCapability objects and checks if it includes multi-node access and/or block-mode support. This can then easily be used in other services that need checking for these particular capabilities, and preventing multi-node block-mode access. Signed-off-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
committed by
mergify[bot]
parent
50d6ea825c
commit
30333378ef
@ -290,3 +290,19 @@ func requirePositive(x int64) int64 {
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
// IsBlockMultiNode checks the volume capabilities for BlockMode and MultiNode.
|
||||
func IsBlockMultiNode(caps []*csi.VolumeCapability) (bool, bool) {
|
||||
isMultiNode := false
|
||||
isBlock := false
|
||||
for _, capability := range caps {
|
||||
if capability.GetAccessMode().GetMode() == csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER {
|
||||
isMultiNode = true
|
||||
}
|
||||
if capability.GetBlock() != nil {
|
||||
isBlock = true
|
||||
}
|
||||
}
|
||||
|
||||
return isBlock, isMultiNode
|
||||
}
|
||||
|
Reference in New Issue
Block a user