mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-12 06:20:11 +01:00
chore(refactor): Remove MountInfo struct from api (#225)
Signed-off-by: Gagandeep Singh <codegagan@gmail.com>
This commit is contained in:
parent
55a155c4a5
commit
3da4f7308e
8 changed files with 32 additions and 104 deletions
1
changelogs/unreleased/225-codegagan
Normal file
1
changelogs/unreleased/225-codegagan
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Remove MountInfo struct from the api files
|
||||||
|
|
@ -42,27 +42,6 @@ type ZFSVolume struct {
|
||||||
Status VolStatus `json:"status,omitempty"`
|
Status VolStatus `json:"status,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// MountInfo contains the volume related info
|
|
||||||
// for all types of volumes in ZFSVolume
|
|
||||||
type MountInfo struct {
|
|
||||||
// FSType of a volume will specify the
|
|
||||||
// format type - ext4(default), xfs of PV
|
|
||||||
FSType string `json:"fsType"`
|
|
||||||
|
|
||||||
// AccessMode of a volume will hold the
|
|
||||||
// access mode of the volume
|
|
||||||
AccessModes []string `json:"accessModes"`
|
|
||||||
|
|
||||||
// MountPath of the volume will hold the
|
|
||||||
// path on which the volume is mounted
|
|
||||||
// on that node
|
|
||||||
MountPath string `json:"mountPath"`
|
|
||||||
|
|
||||||
// MountOptions specifies the options with
|
|
||||||
// which mount needs to be attempted
|
|
||||||
MountOptions []string `json:"mountOptions"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ZFSVolumeList is a list of ZFSVolume resources
|
// ZFSVolumeList is a list of ZFSVolume resources
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
// +resource:path=zfsvolumes
|
// +resource:path=zfsvolumes
|
||||||
|
|
|
||||||
|
|
@ -24,32 +24,6 @@ import (
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *MountInfo) DeepCopyInto(out *MountInfo) {
|
|
||||||
*out = *in
|
|
||||||
if in.AccessModes != nil {
|
|
||||||
in, out := &in.AccessModes, &out.AccessModes
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.MountOptions != nil {
|
|
||||||
in, out := &in.MountOptions, &out.MountOptions
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MountInfo.
|
|
||||||
func (in *MountInfo) DeepCopy() *MountInfo {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(MountInfo)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *SnapStatus) DeepCopyInto(out *SnapStatus) {
|
func (in *SnapStatus) DeepCopyInto(out *SnapStatus) {
|
||||||
*out = *in
|
*out = *in
|
||||||
|
|
|
||||||
|
|
@ -41,27 +41,6 @@ type ZFSVolume struct {
|
||||||
Status VolStatus `json:"status,omitempty"`
|
Status VolStatus `json:"status,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// MountInfo contains the volume related info
|
|
||||||
// for all types of volumes in ZFSVolume
|
|
||||||
type MountInfo struct {
|
|
||||||
// FSType of a volume will specify the
|
|
||||||
// format type - ext4(default), xfs of PV
|
|
||||||
FSType string `json:"fsType"`
|
|
||||||
|
|
||||||
// AccessMode of a volume will hold the
|
|
||||||
// access mode of the volume
|
|
||||||
AccessModes []string `json:"accessModes"`
|
|
||||||
|
|
||||||
// MountPath of the volume will hold the
|
|
||||||
// path on which the volume is mounted
|
|
||||||
// on that node
|
|
||||||
MountPath string `json:"mountPath"`
|
|
||||||
|
|
||||||
// MountOptions specifies the options with
|
|
||||||
// which mount needs to be attempted
|
|
||||||
MountOptions []string `json:"mountOptions"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ZFSVolumeList is a list of ZFSVolume resources
|
// ZFSVolumeList is a list of ZFSVolume resources
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
// +resource:path=zfsvolumes
|
// +resource:path=zfsvolumes
|
||||||
|
|
|
||||||
|
|
@ -24,32 +24,6 @@ import (
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *MountInfo) DeepCopyInto(out *MountInfo) {
|
|
||||||
*out = *in
|
|
||||||
if in.AccessModes != nil {
|
|
||||||
in, out := &in.AccessModes, &out.AccessModes
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.MountOptions != nil {
|
|
||||||
in, out := &in.MountOptions, &out.MountOptions
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MountInfo.
|
|
||||||
func (in *MountInfo) DeepCopy() *MountInfo {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(MountInfo)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *SnapStatus) DeepCopyInto(out *SnapStatus) {
|
func (in *SnapStatus) DeepCopyInto(out *SnapStatus) {
|
||||||
*out = *in
|
*out = *in
|
||||||
|
|
|
||||||
|
|
@ -91,8 +91,8 @@ func NewNode(d *CSIDriver) csi.NodeServer {
|
||||||
// GetVolAndMountInfo get volume and mount info from node csi volume request
|
// GetVolAndMountInfo get volume and mount info from node csi volume request
|
||||||
func GetVolAndMountInfo(
|
func GetVolAndMountInfo(
|
||||||
req *csi.NodePublishVolumeRequest,
|
req *csi.NodePublishVolumeRequest,
|
||||||
) (*apis.ZFSVolume, *apis.MountInfo, error) {
|
) (*apis.ZFSVolume, *zfs.MountInfo, error) {
|
||||||
var mountinfo apis.MountInfo
|
var mountinfo zfs.MountInfo
|
||||||
|
|
||||||
mountinfo.FSType = req.GetVolumeCapability().GetMount().GetFsType()
|
mountinfo.FSType = req.GetVolumeCapability().GetMount().GetFsType()
|
||||||
mountinfo.MountPath = req.GetTargetPath()
|
mountinfo.MountPath = req.GetTargetPath()
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,9 @@ limitations under the License.
|
||||||
package usage
|
package usage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"fmt"
|
||||||
|
|
||||||
"github.com/openebs/zfs-localpv/pkg/common/env"
|
"github.com/openebs/zfs-localpv/pkg/common/env"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// OpenEBSPingPeriod ping interval of volume io analytics
|
// OpenEBSPingPeriod ping interval of volume io analytics
|
||||||
|
|
@ -50,7 +50,7 @@ func PingCheck() {
|
||||||
|
|
||||||
// getPingPeriod sets the duration of health events, defaults to 24
|
// getPingPeriod sets the duration of health events, defaults to 24
|
||||||
func getPingPeriod() time.Duration {
|
func getPingPeriod() time.Duration {
|
||||||
value := env.GetOrDefault(OpenEBSPingPeriod, string(defaultPingPeriod))
|
value := env.GetOrDefault(OpenEBSPingPeriod, fmt.Sprint(defaultPingPeriod))
|
||||||
duration, _ := time.ParseDuration(value)
|
duration, _ := time.ParseDuration(value)
|
||||||
// Sanitychecks for setting time duration of health events
|
// Sanitychecks for setting time duration of health events
|
||||||
// This way, we are checking for negative and zero time duration and we
|
// This way, we are checking for negative and zero time duration and we
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,29 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// MountInfo contains the volume related info
|
||||||
|
// for all types of volumes in ZFSVolume
|
||||||
|
type MountInfo struct {
|
||||||
|
// FSType of a volume will specify the
|
||||||
|
// format type - ext4(default), xfs of PV
|
||||||
|
FSType string `json:"fsType"`
|
||||||
|
|
||||||
|
// AccessMode of a volume will hold the
|
||||||
|
// access mode of the volume
|
||||||
|
AccessModes []string `json:"accessModes"`
|
||||||
|
|
||||||
|
// MountPath of the volume will hold the
|
||||||
|
// path on which the volume is mounted
|
||||||
|
// on that node
|
||||||
|
MountPath string `json:"mountPath"`
|
||||||
|
|
||||||
|
// MountOptions specifies the options with
|
||||||
|
// which mount needs to be attempted
|
||||||
|
MountOptions []string `json:"mountOptions"`
|
||||||
|
}
|
||||||
|
|
||||||
// FormatAndMountZvol formats and mounts the created volume to the desired mount path
|
// FormatAndMountZvol formats and mounts the created volume to the desired mount path
|
||||||
func FormatAndMountZvol(devicePath string, mountInfo *apis.MountInfo) error {
|
func FormatAndMountZvol(devicePath string, mountInfo *MountInfo) error {
|
||||||
mounter := &mount.SafeFormatAndMount{Interface: mount.New(""), Exec: mount.NewOsExec()}
|
mounter := &mount.SafeFormatAndMount{Interface: mount.New(""), Exec: mount.NewOsExec()}
|
||||||
|
|
||||||
err := mounter.FormatAndMount(devicePath, mountInfo.MountPath, mountInfo.FSType, mountInfo.MountOptions)
|
err := mounter.FormatAndMount(devicePath, mountInfo.MountPath, mountInfo.FSType, mountInfo.MountOptions)
|
||||||
|
|
@ -191,7 +212,7 @@ func verifyMountRequest(vol *apis.ZFSVolume, mountpath string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MountZvol mounts the disk to the specified path
|
// MountZvol mounts the disk to the specified path
|
||||||
func MountZvol(vol *apis.ZFSVolume, mount *apis.MountInfo) error {
|
func MountZvol(vol *apis.ZFSVolume, mount *MountInfo) error {
|
||||||
volume := vol.Spec.PoolName + "/" + vol.Name
|
volume := vol.Spec.PoolName + "/" + vol.Name
|
||||||
err := verifyMountRequest(vol, mount.MountPath)
|
err := verifyMountRequest(vol, mount.MountPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -211,7 +232,7 @@ func MountZvol(vol *apis.ZFSVolume, mount *apis.MountInfo) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MountDataset mounts the zfs dataset to the specified path
|
// MountDataset mounts the zfs dataset to the specified path
|
||||||
func MountDataset(vol *apis.ZFSVolume, mount *apis.MountInfo) error {
|
func MountDataset(vol *apis.ZFSVolume, mount *MountInfo) error {
|
||||||
volume := vol.Spec.PoolName + "/" + vol.Name
|
volume := vol.Spec.PoolName + "/" + vol.Name
|
||||||
err := verifyMountRequest(vol, mount.MountPath)
|
err := verifyMountRequest(vol, mount.MountPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -257,7 +278,7 @@ func MountDataset(vol *apis.ZFSVolume, mount *apis.MountInfo) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MountFilesystem mounts the disk to the specified path
|
// MountFilesystem mounts the disk to the specified path
|
||||||
func MountFilesystem(vol *apis.ZFSVolume, mount *apis.MountInfo) error {
|
func MountFilesystem(vol *apis.ZFSVolume, mount *MountInfo) error {
|
||||||
switch vol.Spec.VolumeType {
|
switch vol.Spec.VolumeType {
|
||||||
case VolTypeDataset:
|
case VolTypeDataset:
|
||||||
return MountDataset(vol, mount)
|
return MountDataset(vol, mount)
|
||||||
|
|
@ -267,7 +288,7 @@ func MountFilesystem(vol *apis.ZFSVolume, mount *apis.MountInfo) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MountBlock mounts the block disk to the specified path
|
// MountBlock mounts the block disk to the specified path
|
||||||
func MountBlock(vol *apis.ZFSVolume, mountinfo *apis.MountInfo) error {
|
func MountBlock(vol *apis.ZFSVolume, mountinfo *MountInfo) error {
|
||||||
target := mountinfo.MountPath
|
target := mountinfo.MountPath
|
||||||
devicePath := ZFSDevPath + vol.Spec.PoolName + "/" + vol.Name
|
devicePath := ZFSDevPath + vol.Spec.PoolName + "/" + vol.Name
|
||||||
mountopt := []string{"bind"}
|
mountopt := []string{"bind"}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue