utils

package
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2024 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VGNamePrefix = "volumegroup"

	VGFinalizer  = vgGroupName
	VGAsPrefix   = vgGroupName + "/"
	VgcFinalizer = VGAsPrefix + "vgc-protection"

	PrefixedVGSecretNameKey      = VGAsPrefix + "secret-name"      // name key for secret
	PrefixedVGSecretNamespaceKey = VGAsPrefix + "secret-namespace" // namespace key secret

	APIVersion = "csi.ibm.com/v1"
)

Variables

View Source
var (
	PvcPredicate = predicate.Funcs{
		CreateFunc: func(e event.CreateEvent) bool {
			return true
		},
		DeleteFunc: func(e event.DeleteEvent) bool {
			return false
		},
		UpdateFunc: func(e event.UpdateEvent) bool {
			return isLabelsChanged(e.ObjectOld, e.ObjectNew) || isPhaseChanged(e.ObjectOld, e.ObjectNew)
		},
		GenericFunc: func(e event.GenericEvent) bool {
			return false
		},
	}
	FinalizerPredicate = predicate.Funcs{
		UpdateFunc: func(e event.UpdateEvent) bool {
			return !reflect.DeepEqual(e.ObjectNew.GetFinalizers(), e.ObjectOld.GetFinalizers())
		},
	}
)

Functions

func AddFinalizerToPVC

func AddFinalizerToPVC(client runtimeclient.Client, logger logr.Logger, pvc *corev1.PersistentVolumeClaim) error

func AddFinalizerToVG

func AddFinalizerToVG(client runtimeclient.Client, logger logr.Logger, vg *volumegroupv1.VolumeGroup) error

func AddFinalizerToVGC

func AddFinalizerToVGC(client runtimeclient.Client, logger logr.Logger, vgc *volumegroupv1.VolumeGroupContent) error

func AddMatchingPVToMatchingVGC

func AddMatchingPVToMatchingVGC(logger logr.Logger, client client.Client,
	pvc *corev1.PersistentVolumeClaim, vg *volumegroupv1.VolumeGroup) error

func AddPVCToVG

func AddPVCToVG(logger logr.Logger, client client.Client, pvc *corev1.PersistentVolumeClaim, vg *volumegroupv1.VolumeGroup) error

func AddVolumeToPvcListAndPvList

func AddVolumeToPvcListAndPvList(logger logr.Logger, client client.Client,
	pvc *corev1.PersistentVolumeClaim, vg *volumegroupv1.VolumeGroup) error

func CreateRequests added in v0.9.1

func CreateRequests(client runtimeclient.Client) handler.EventHandler

func CreateSuccessVGCEvent added in v0.9.1

func CreateSuccessVGCEvent(logger logr.Logger, client client.Client, vgc *volumegroupv1.VolumeGroupContent) error

func CreateVGC added in v0.9.1

func CreateVGC(client client.Client, logger logr.Logger, vgc *volumegroupv1.VolumeGroupContent) error

func DeletePVCsUnderVGC added in v0.9.1

func DeletePVCsUnderVGC(logger logr.Logger, client client.Client, vgc *volumegroupv1.VolumeGroupContent, driver string) error

func FilterPrefixedParameters

func FilterPrefixedParameters(prefix string, param map[string]string) map[string]string

func GenerateVGC added in v0.9.1

func GenerateVGC(vgname string, instance *volumegroupv1.VolumeGroup, vgClass *volumegroupv1.VolumeGroupClass, secretName string, secretNamespace string) *volumegroupv1.VolumeGroupContent

func GetBoolField added in v0.9.1

func GetBoolField(object interface{}, fieldName string) bool

func GetCurrentTime added in v0.9.1

func GetCurrentTime() *metav1.Time

func GetMessageFromError

func GetMessageFromError(err error) string

func GetObjectField added in v0.9.1

func GetObjectField(object interface{}, fieldName string) reflect.Value

func GetPVC added in v0.9.1

func GetPVC(logger logr.Logger, client runtimeclient.Client, name, namespace string) (*corev1.PersistentVolumeClaim, error)

func GetPVCClass added in v0.9.1

func GetPVCClass(claim *corev1.PersistentVolumeClaim) (string, error)

func GetPVCList

func GetPVCList(logger logr.Logger, client runtimeclient.Client, driver string) (corev1.PersistentVolumeClaimList, error)

func GetPVFromPVC

func GetPVFromPVC(logger logr.Logger, client client.Client, pvc *corev1.PersistentVolumeClaim) (*corev1.PersistentVolume, error)

func GetSecretCred

func GetSecretCred(vgClass *volumegroupv1.VolumeGroupClass) (string, string)

func GetSecretDataFromClass

func GetSecretDataFromClass(client client.Client, vgClass *volumegroupv1.VolumeGroupClass, logger logr.Logger) (map[string]string, error)

func GetStringField added in v0.9.1

func GetStringField(object interface{}, fieldName string) string

func GetVG added in v0.9.1

func GetVG(client client.Client, logger logr.Logger, vgName string, vgNamespace string) (*volumegroupv1.VolumeGroup, error)

func GetVGC added in v0.9.1

func GetVGC(client client.Client, logger logr.Logger, vgcName string, vgcNamespace string) (*volumegroupv1.VolumeGroupContent, error)

func GetVGClass added in v0.9.1

func GetVGClass(client client.Client, logger logr.Logger, vgClassName string) (*volumegroupv1.VolumeGroupClass, error)

func GetVGList

func GetVGList(logger logr.Logger, client client.Client, driver string) (volumegroupv1.VolumeGroupList, error)

func HandleErrorMessage

func HandleErrorMessage(logger logr.Logger, client client.Client, vg *volumegroupv1.VolumeGroup,
	err error, reason string) error

func HandlePVCErrorMessage

func HandlePVCErrorMessage(logger logr.Logger, client client.Client, pvc *corev1.PersistentVolumeClaim,
	err error, reason string) error

func HandleSuccessMessage

func HandleSuccessMessage(logger logr.Logger, client client.Client, vg *volumegroupv1.VolumeGroup, message, reason string) error

func HandleVGCErrorMessage

func HandleVGCErrorMessage(logger logr.Logger, client client.Client, vgc *volumegroupv1.VolumeGroupContent,
	err error, reason string) error

func IsContainOtherFinalizers added in v0.9.1

func IsContainOtherFinalizers(object runtimeclient.Object, logger logr.Logger) bool

func IsPVCCanBeAddedToVG

func IsPVCCanBeAddedToVG(logger logr.Logger, pvc *corev1.PersistentVolumeClaim, vgs []volumegroupv1.VolumeGroup) error

func IsPVCHasMatchingDriver

func IsPVCHasMatchingDriver(logger logr.Logger, client runtimeclient.Client,
	pvc *corev1.PersistentVolumeClaim, driver string) (bool, error)

func IsPVCInPVCList added in v0.9.1

func IsPVCInPVCList(pvc *corev1.PersistentVolumeClaim, pvcList []corev1.PersistentVolumeClaim) bool

func IsPVCInStaticVG

func IsPVCInStaticVG(logger logr.Logger, client runtimeclient.Client, pvc *corev1.PersistentVolumeClaim) (bool, error)

func IsPVCListEqual added in v0.9.1

func IsPVCNeedToBeHandled added in v0.9.1

func IsPVCNeedToBeHandled(reqLogger logr.Logger, pvc *corev1.PersistentVolumeClaim, client runtimeclient.Client, driverName string) (bool, error)

func IsVgExist added in v0.9.1

func IsVgExist(client client.Client, logger logr.Logger, vgc *volumegroupv1.VolumeGroupContent) (bool, error)

func MakeVGName added in v0.9.1

func MakeVGName(prefix string, vgUID string) (string, error)

func ModifyVG added in v0.9.1

func ModifyVG(logger logr.Logger, client client.Client, vg *volumegroupv1.VolumeGroup,
	vgClient grpcClient.VolumeGroup) error

func ModifyVolumesInVG added in v0.9.1

func ModifyVolumesInVG(logger logr.Logger, client client.Client, vgClient grpcClient.VolumeGroup,
	matchingPvcs []corev1.PersistentVolumeClaim, vg volumegroupv1.VolumeGroup) error

func RemoveFinalizerFromPVC

func RemoveFinalizerFromPVC(client runtimeclient.Client, logger logr.Logger, driver string,
	pvc *corev1.PersistentVolumeClaim) error

func RemoveFinalizerFromVG

func RemoveFinalizerFromVG(client runtimeclient.Client, logger logr.Logger, vg *volumegroupv1.VolumeGroup) error

func RemoveFinalizerFromVGC

func RemoveFinalizerFromVGC(client runtimeclient.Client, logger logr.Logger, vgc *volumegroupv1.VolumeGroupContent) error

func RemovePVCFromVG

func RemovePVCFromVG(logger logr.Logger, client client.Client, pvc *corev1.PersistentVolumeClaim, vg *volumegroupv1.VolumeGroup) error

func RemovePVFromVGC

func RemovePVFromVGC(logger logr.Logger, client client.Client, pv *corev1.PersistentVolume, vgc *volumegroupv1.VolumeGroupContent) error

func RemoveVolumeFromPvcListAndPvList

func RemoveVolumeFromPvcListAndPvList(logger logr.Logger, client client.Client, driver string,
	pvc corev1.PersistentVolumeClaim, vg *volumegroupv1.VolumeGroup) error

func UpdateObject

func UpdateObject(client client.Client, updateObject client.Object) error

func UpdateObjectStatus

func UpdateObjectStatus(client client.Client, updateObject client.Object) error

func UpdatePvcAndPvList added in v0.9.1

func UpdatePvcAndPvList(logger logr.Logger, vg *volumegroupv1.VolumeGroup, client client.Client, driver string,
	matchingPvcs []corev1.PersistentVolumeClaim) error

func UpdateStaticVGC

func UpdateStaticVGC(client client.Client, vgcNamespace, vgcName string,
	vgClass *volumegroupv1.VolumeGroupClass, logger logr.Logger) error

func UpdateStaticVGCFromVG added in v0.9.1

func UpdateStaticVGCFromVG(client client.Client, vg *volumegroupv1.VolumeGroup, vgClass *volumegroupv1.VolumeGroupClass, logger logr.Logger) error

func UpdateThinVGC added in v0.9.1

func UpdateThinVGC(client client.Client, vgcNamespace, vgcName string, logger logr.Logger) error

func UpdateVGCByResponse added in v0.9.1

func UpdateVGCByResponse(client client.Client, vgc *volumegroupv1.VolumeGroupContent, resp *volumegroup.Response) error

func UpdateVGCStatus added in v0.9.1

func UpdateVGCStatus(client client.Client, logger logr.Logger, vgc *volumegroupv1.VolumeGroupContent, groupCreationTime *metav1.Time, ready bool) error

func UpdateVGCStatusError added in v0.9.1

func UpdateVGCStatusError(client client.Client, vgc *volumegroupv1.VolumeGroupContent, logger logr.Logger, message string) error

func UpdateVGSourceContent added in v0.9.1

func UpdateVGSourceContent(client client.Client, instance *volumegroupv1.VolumeGroup,
	vgcName string, logger logr.Logger) error

func UpdateVGStatus added in v0.9.1

func UpdateVGStatus(client client.Client, vg *volumegroupv1.VolumeGroup, vgcName string,
	groupCreationTime *metav1.Time, ready bool, logger logr.Logger) error

func UpdateVGStatusError added in v0.9.1

func UpdateVGStatusError(client client.Client, vg *volumegroupv1.VolumeGroup, logger logr.Logger, message string) error

func ValidatePrefixedParameters

func ValidatePrefixedParameters(param map[string]string) error

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL