lock_manager

package
v0.0.0-...-be506f1 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2024 License: Apache-2.0 Imports: 13 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigMapLocker

type ConfigMapLocker struct {
	ConfigMapName, Namespace string

	Locker lockgate.Locker
	// contains filtered or unexported fields
}

func NewConfigMapLocker

func NewConfigMapLocker(
	configMapName, namespace string,
	locker lockgate.Locker,
	options ConfigMapLockerOptions,
) *ConfigMapLocker

func (*ConfigMapLocker) Acquire

func (locker *ConfigMapLocker) Acquire(lockName string, opts lockgate.AcquireOptions) (
	bool,
	lockgate.LockHandle,
	error,
)

func (*ConfigMapLocker) Release

func (locker *ConfigMapLocker) Release(lock lockgate.LockHandle) error

type ConfigMapLockerOptions

type ConfigMapLockerOptions struct {
	CreateNamespace bool
	KubeClient      kubernetes.Interface
}

type LockManager

type LockManager struct {
	Namespace       string
	LockerWithRetry *locker_with_retry.LockerWithRetry
}

NOTE: LockManager for not is not multithreaded due to the lack of support of contexts in the lockgate library

func NewLockManager

func NewLockManager(
	namespace string,
	createNamespace bool,
	kubeClient kubernetes.Interface,
	dynamicKubeClient dynamic.Interface,
) (*LockManager, error)

func (*LockManager) LockRelease

func (lockManager *LockManager) LockRelease(
	ctx context.Context,
	releaseName string,
) (lockgate.LockHandle, error)

func (*LockManager) Unlock

func (lockManager *LockManager) Unlock(handle lockgate.LockHandle) error

Jump to

Keyboard shortcuts

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