Move locking code to download.go.
parent
b57022d2c8
commit
1cc80e1e7b
|
@ -23,11 +23,9 @@ import (
|
|||
"runtime"
|
||||
|
||||
"github.com/blang/semver"
|
||||
"github.com/juju/mutex"
|
||||
"github.com/pkg/errors"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/minikube/pkg/minikube/localpath"
|
||||
"k8s.io/minikube/pkg/util/lock"
|
||||
)
|
||||
|
||||
// binaryWithChecksumURL gets the location of a Kubernetes binary
|
||||
|
@ -55,10 +53,9 @@ func Binary(binary, version, osName, archName string) (string, error) {
|
|||
return "", err
|
||||
}
|
||||
|
||||
spec := lock.PathMutexSpec(targetLock)
|
||||
releaser, err := mutex.Acquire(spec)
|
||||
releaser, err := lockDownload(targetLock)
|
||||
if err != nil {
|
||||
return "", errors.Wrapf(err, "failed to acquire lock \"%s\": %+v", targetLock, spec)
|
||||
return "", err
|
||||
}
|
||||
defer releaser.Release()
|
||||
|
||||
|
|
|
@ -24,9 +24,11 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/hashicorp/go-getter"
|
||||
"github.com/juju/mutex"
|
||||
"github.com/pkg/errors"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/minikube/pkg/minikube/out"
|
||||
"k8s.io/minikube/pkg/util/lock"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -92,3 +94,12 @@ func withinUnitTest() bool {
|
|||
|
||||
return flag.Lookup("test.v") != nil || strings.HasSuffix(os.Args[0], "test")
|
||||
}
|
||||
|
||||
func lockDownload(file string) (mutex.Releaser, error) {
|
||||
spec := lock.PathMutexSpec(file)
|
||||
releaser, err := mutex.Acquire(spec)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to acquire lock \"%s\": %+v", file, spec)
|
||||
}
|
||||
return releaser, err
|
||||
}
|
||||
|
|
|
@ -30,12 +30,10 @@ import (
|
|||
"github.com/google/go-containerregistry/pkg/v1/daemon"
|
||||
"github.com/google/go-containerregistry/pkg/v1/remote"
|
||||
"github.com/google/go-containerregistry/pkg/v1/tarball"
|
||||
"github.com/juju/mutex"
|
||||
"github.com/pkg/errors"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/minikube/pkg/minikube/constants"
|
||||
"k8s.io/minikube/pkg/minikube/localpath"
|
||||
"k8s.io/minikube/pkg/util/lock"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -87,10 +85,9 @@ func ImageToCache(img string) error {
|
|||
f = localpath.SanitizeCacheDir(f)
|
||||
fileLock := f + ".lock"
|
||||
|
||||
spec := lock.PathMutexSpec(fileLock)
|
||||
releaser, err := mutex.Acquire(spec)
|
||||
releaser, err := lockDownload(fileLock)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to acquire lock \"%s\": %+v", fileLock, spec)
|
||||
return err
|
||||
}
|
||||
defer releaser.Release()
|
||||
|
||||
|
@ -171,10 +168,9 @@ func ImageToDaemon(img string) error {
|
|||
fileLock := filepath.Join(constants.KICCacheDir, path.Base(img)+".d.lock")
|
||||
fileLock = localpath.SanitizeCacheDir(fileLock)
|
||||
|
||||
spec := lock.PathMutexSpec(fileLock)
|
||||
releaser, err := mutex.Acquire(spec)
|
||||
releaser, err := lockDownload(fileLock)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to acquire lock \"%s\": %+v", fileLock, spec)
|
||||
return err
|
||||
}
|
||||
defer releaser.Release()
|
||||
|
||||
|
|
|
@ -30,14 +30,12 @@ import (
|
|||
"cloud.google.com/go/storage"
|
||||
"google.golang.org/api/option"
|
||||
|
||||
"github.com/juju/mutex"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/viper"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/minikube/pkg/minikube/localpath"
|
||||
"k8s.io/minikube/pkg/minikube/out"
|
||||
"k8s.io/minikube/pkg/minikube/style"
|
||||
"k8s.io/minikube/pkg/util/lock"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -133,10 +131,9 @@ func Preload(k8sVersion, containerRuntime string) error {
|
|||
targetPath := TarballPath(k8sVersion, containerRuntime)
|
||||
targetLock := targetPath + ".lock"
|
||||
|
||||
spec := lock.PathMutexSpec(targetLock)
|
||||
releaser, err := mutex.Acquire(spec)
|
||||
releaser, err := lockDownload(targetLock)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to acquire lock \"%s\": %+v", targetLock, spec)
|
||||
return err
|
||||
}
|
||||
defer releaser.Release()
|
||||
|
||||
|
|
Loading…
Reference in New Issue