chore(refactor): Remove MountInfo struct from api (#225)

Signed-off-by: Gagandeep Singh <codegagan@gmail.com>
This commit is contained in:
Gagandeep Singh 2020-10-11 22:29:23 -07:00 committed by GitHub
parent 55a155c4a5
commit 3da4f7308e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 32 additions and 104 deletions

View file

@ -0,0 +1 @@
Remove MountInfo struct from the api files

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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()

View file

@ -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

View file

@ -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"}