Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
1105 Внедрение механизмов обеспечения безопасности цепочки поставки программных проектов
Legacy
scanned-projects
helm
Commits
627a0e24
Commit
627a0e24
authored
8 years ago
by
Matt Butcher
Browse files
Options
Download
Patches
Plain Diff
fix(storage): add mutex to in-memory
This adds a RW Mutex on the in-memory storage.
parent
ab906a4f
main
Release
add-codeql
dependabot/go_modules/github.com/docker/distribution-2.8.2incompatible
dependabot/go_modules/github.com/lib/pq-1.10.9
dependabot/go_modules/github.com/rubenv/sql-migrate-1.4.0
dependabot/go_modules/golang.org/x/crypto-0.9.0
dependabot/go_modules/golang.org/x/term-0.8.0
dependabot/go_modules/k8s.io/klog/v2-2.100.1
dev-v2
feat-v3/event-emitter-lua
kube-update-test
release-2.0
release-2.1
release-2.10
release-2.11
release-2.12
release-2.13
release-2.14
release-2.15
release-2.16
release-2.17
release-2.2
release-2.3
release-2.4
release-2.5
release-2.6
release-2.7
release-2.8
release-2.9
release-3.0
release-3.1
release-3.10
release-3.11
release-3.12
release-3.2
release-3.3
release-3.4
release-3.5
release-3.6
release-3.6.1
release-3.6.2
release-3.7
release-3.8
release-3.9
release-v3.0.0-beta.4
v3.12.0
v3.12.0-rc.1
v3.12.0-dev.1
v3.11.3
v3.11.2
v3.11.1
v3.11.0
v3.11.0-rc.2
v3.11.0-rc.1
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.10.0-rc.1
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc.1
v3.8.2
v3.8.1
v3.8.0
v3.8.0-rc.2
v3.8.0-rc.1
v3.7.2
v3.7.1
v3.7.0
v3.7.0-rc.3
v3.7.0-rc.2
v3.7.0-rc.1
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.6.0-rc.1
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.5.0-rc.2
v3.5.0-rc.1
v3.4.2
v3.4.1
v3.4.0
v3.4.0-rc.1
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.3.0-rc.2
v3.3.0-rc.1
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.2.0-rc.1
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc.1
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v3.0.0-rc.4
v3.0.0-rc.3
v3.0.0-rc.2
v3.0.0-rc.1
v3.0.0-beta.5
v3.0.0-beta.4
v3.0.0-beta.3
v3.0.0-beta.2
v3.0.0-beta.1
v3.0.0-alpha.2
v3.0.0-alpha.1
v2.17.0
v2.17.0-rc.1
v2.16.12
v2.16.11
v2.16.10
v2.16.9
v2.16.8
v2.16.7
v2.16.6
v2.16.5
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.16.0
v2.16.0-rc.2
v2.16.0-rc.1
v2.15.2
v2.15.1
v2.15.0
v2.15.0-rc.2
v2.15.0-rc.1
v2.14.3
v2.14.2
v2.14.1
v2.14.0
v2.14.0-rc.2
v2.14.0-rc.1
v2.13.1
v2.13.1-rc.1
v2.13.0
v2.13.0-rc.2
v2.13.0-rc.1
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.12.0-rc.2
v2.12.0-rc.1
v2.11.0
v2.11.0-rc.4
v2.11.0-rc.3
v2.11.0-rc.2
v2.11.0-rc.1
v2.10.0
v2.10.0-rc.3
v2.10.0-rc.2
v2.10.0-rc.1
v2.9.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.9.0-rc2
v2.9.0-rc1
v2.8.2
v2.8.2-rc1
v2.8.1
v2.8.0
v2.8.0-rc.1
v2.7.2
v2.7.1
v2.7.0
v2.7.0-rc1
v2.6.2
v2.6.1
v2.6.0
v2.5.1
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.2
v2.0.1
v2.0.0
v2.0.0-rc.2
v2.0.0-rc.1
v2.0.0-beta.2
v2.0.0-beta.1
v2.0.0-alpha.5
v2.0.0-alpha.4
v2.0.0-alpha.3
v2.0.0-alpha.2
v2.0.0-alpha.1
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
pkg/storage/memory.go
+14
-0
pkg/storage/memory.go
with
14 additions
and
0 deletions
+14
-0
pkg/storage/memory.go
+
14
−
0
View file @
627a0e24
...
@@ -2,12 +2,14 @@ package storage
...
@@ -2,12 +2,14 @@ package storage
import
(
import
(
"errors"
"errors"
"sync"
"github.com/deis/tiller/pkg/proto/hapi/release"
"github.com/deis/tiller/pkg/proto/hapi/release"
)
)
// Memory is an in-memory ReleaseStorage implementation.
// Memory is an in-memory ReleaseStorage implementation.
type
Memory
struct
{
type
Memory
struct
{
sync
.
RWMutex
releases
map
[
string
]
*
release
.
Release
releases
map
[
string
]
*
release
.
Release
}
}
...
@@ -25,6 +27,8 @@ var ErrNotFound = errors.New("release not found")
...
@@ -25,6 +27,8 @@ var ErrNotFound = errors.New("release not found")
//
//
// If the release is not found, an ErrNotFound error is returned.
// If the release is not found, an ErrNotFound error is returned.
func
(
m
*
Memory
)
Read
(
k
string
)
(
*
release
.
Release
,
error
)
{
func
(
m
*
Memory
)
Read
(
k
string
)
(
*
release
.
Release
,
error
)
{
m
.
RLock
()
defer
m
.
RUnlock
()
v
,
ok
:=
m
.
releases
[
k
]
v
,
ok
:=
m
.
releases
[
k
]
if
!
ok
{
if
!
ok
{
return
v
,
ErrNotFound
return
v
,
ErrNotFound
...
@@ -34,12 +38,16 @@ func (m *Memory) Read(k string) (*release.Release, error) {
...
@@ -34,12 +38,16 @@ func (m *Memory) Read(k string) (*release.Release, error) {
// Create sets a release.
// Create sets a release.
func
(
m
*
Memory
)
Create
(
rel
*
release
.
Release
)
error
{
func
(
m
*
Memory
)
Create
(
rel
*
release
.
Release
)
error
{
m
.
Lock
()
defer
m
.
Unlock
()
m
.
releases
[
rel
.
Name
]
=
rel
m
.
releases
[
rel
.
Name
]
=
rel
return
nil
return
nil
}
}
// Update sets a release.
// Update sets a release.
func
(
m
*
Memory
)
Update
(
rel
*
release
.
Release
)
error
{
func
(
m
*
Memory
)
Update
(
rel
*
release
.
Release
)
error
{
m
.
Lock
()
defer
m
.
Unlock
()
if
_
,
ok
:=
m
.
releases
[
rel
.
Name
];
!
ok
{
if
_
,
ok
:=
m
.
releases
[
rel
.
Name
];
!
ok
{
return
ErrNotFound
return
ErrNotFound
}
}
...
@@ -52,6 +60,8 @@ func (m *Memory) Update(rel *release.Release) error {
...
@@ -52,6 +60,8 @@ func (m *Memory) Update(rel *release.Release) error {
// Delete removes a release.
// Delete removes a release.
func
(
m
*
Memory
)
Delete
(
name
string
)
(
*
release
.
Release
,
error
)
{
func
(
m
*
Memory
)
Delete
(
name
string
)
(
*
release
.
Release
,
error
)
{
m
.
Lock
()
defer
m
.
Unlock
()
rel
,
ok
:=
m
.
releases
[
name
]
rel
,
ok
:=
m
.
releases
[
name
]
if
!
ok
{
if
!
ok
{
return
nil
,
ErrNotFound
return
nil
,
ErrNotFound
...
@@ -62,6 +72,8 @@ func (m *Memory) Delete(name string) (*release.Release, error) {
...
@@ -62,6 +72,8 @@ func (m *Memory) Delete(name string) (*release.Release, error) {
// List returns all releases.
// List returns all releases.
func
(
m
*
Memory
)
List
()
([]
*
release
.
Release
,
error
)
{
func
(
m
*
Memory
)
List
()
([]
*
release
.
Release
,
error
)
{
m
.
RLock
()
defer
m
.
RUnlock
()
buf
:=
make
([]
*
release
.
Release
,
len
(
m
.
releases
))
buf
:=
make
([]
*
release
.
Release
,
len
(
m
.
releases
))
i
:=
0
i
:=
0
for
_
,
v
:=
range
m
.
releases
{
for
_
,
v
:=
range
m
.
releases
{
...
@@ -73,5 +85,7 @@ func (m *Memory) List() ([]*release.Release, error) {
...
@@ -73,5 +85,7 @@ func (m *Memory) List() ([]*release.Release, error) {
// Query searches all releases for matches.
// Query searches all releases for matches.
func
(
m
*
Memory
)
Query
(
labels
map
[
string
]
string
)
([]
*
release
.
Release
,
error
)
{
func
(
m
*
Memory
)
Query
(
labels
map
[
string
]
string
)
([]
*
release
.
Release
,
error
)
{
m
.
RLock
()
defer
m
.
RUnlock
()
return
[]
*
release
.
Release
{},
errors
.
New
(
"Cannot implement until release.Release is defined."
)
return
[]
*
release
.
Release
{},
errors
.
New
(
"Cannot implement until release.Release is defined."
)
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets