@@ -18,7 +18,6 @@ package storage // import "k8s.io/helm/pkg/storage"
1818
1919import (
2020 "fmt"
21- "sync"
2221
2322 rspb "k8s.io/helm/pkg/proto/hapi/release"
2423 relutil "k8s.io/helm/pkg/releaseutil"
@@ -28,12 +27,6 @@ import (
2827// Storage represents a storage engine for a Release.
2928type Storage struct {
3029 driver.Driver
31-
32- // releaseLocks are for locking releases to make sure that only one operation at a time is executed on each release
33- releaseLocks map [string ]* sync.Mutex
34- // releaseLocksLock is a mutex for accessing releaseLocks
35- releaseLocksLock * sync.Mutex
36-
3730 Log func (string , ... interface {})
3831}
3932
@@ -157,53 +150,6 @@ func (s *Storage) Last(name string) (*rspb.Release, error) {
157150 return h [0 ], nil
158151}
159152
160- // LockRelease gains a mutually exclusive access to a release via a mutex.
161- func (s * Storage ) LockRelease (name string ) error {
162- s .Log ("locking release %s" , name )
163- s .releaseLocksLock .Lock ()
164- defer s .releaseLocksLock .Unlock ()
165-
166- var lock * sync.Mutex
167- lock , exists := s .releaseLocks [name ]
168-
169- if ! exists {
170- releases , err := s .ListReleases ()
171- if err != nil {
172- return err
173- }
174-
175- found := false
176- for _ , release := range releases {
177- if release .Name == name {
178- found = true
179- }
180- }
181- if ! found {
182- return fmt .Errorf ("Unable to lock release %q: release not found" , name )
183- }
184-
185- lock = & sync.Mutex {}
186- s .releaseLocks [name ] = lock
187- }
188- lock .Lock ()
189- return nil
190- }
191-
192- // UnlockRelease releases a mutually exclusive access to a release.
193- // If release doesn't exist or wasn't previously locked - the unlock will pass
194- func (s * Storage ) UnlockRelease (name string ) {
195- s .Log ("unlocking release %s" , name )
196- s .releaseLocksLock .Lock ()
197- defer s .releaseLocksLock .Unlock ()
198-
199- var lock * sync.Mutex
200- lock , exists := s .releaseLocks [name ]
201- if ! exists {
202- return
203- }
204- lock .Unlock ()
205- }
206-
207153// makeKey concatenates a release name and version into
208154// a string with format ```<release_name>#v<version>```.
209155// This key is used to uniquely identify storage objects.
@@ -219,9 +165,7 @@ func Init(d driver.Driver) *Storage {
219165 d = driver .NewMemory ()
220166 }
221167 return & Storage {
222- Driver : d ,
223- releaseLocks : make (map [string ]* sync.Mutex ),
224- releaseLocksLock : & sync.Mutex {},
225- Log : func (_ string , _ ... interface {}) {},
168+ Driver : d ,
169+ Log : func (_ string , _ ... interface {}) {},
226170 }
227171}
0 commit comments