Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
53f433f0
Commit
53f433f0
authored
Mar 25, 2016
by
Wojciech Tyczynski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove Set() from storage.Interface.
parent
5470488a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
79 additions
and
200 deletions
+79
-200
resttest.go
pkg/api/rest/resttest/resttest.go
+0
-0
master_test.go
pkg/master/master_test.go
+9
-9
etcd_test.go
pkg/registry/deployment/etcd/etcd_test.go
+3
-3
etcd_test.go
pkg/registry/experimental/controller/etcd/etcd_test.go
+2
-2
etcd_test.go
pkg/registry/namespace/etcd/etcd_test.go
+2
-2
etcd_test.go
pkg/registry/persistentvolume/etcd/etcd_test.go
+1
-1
etcd_test.go
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
+1
-1
etcd.go
pkg/registry/registrytest/etcd.go
+7
-7
etcd_test.go
pkg/registry/replicaset/etcd/etcd_test.go
+3
-3
etcd_test.go
pkg/registry/resourcequota/etcd/etcd_test.go
+1
-1
etcd_test.go
pkg/registry/service/allocator/etcd/etcd_test.go
+1
-1
etcd_test.go
pkg/registry/service/ipallocator/etcd/etcd_test.go
+1
-1
cacher.go
pkg/storage/cacher.go
+0
-5
cacher_test.go
pkg/storage/cacher_test.go
+14
-12
etcd_helper.go
pkg/storage/etcd/etcd_helper.go
+0
-63
etcd_helper_test.go
pkg/storage/etcd/etcd_helper_test.go
+1
-71
etcd_watcher_test.go
pkg/storage/etcd/etcd_watcher_test.go
+29
-9
interfaces.go
pkg/storage/interfaces.go
+0
-5
utils.go
pkg/storage/testing/utils.go
+1
-1
etcd_tools_test.go
test/integration/etcd_tools_test.go
+3
-3
No files found.
pkg/api/rest/resttest/resttest.go
View file @
53f433f0
This diff is collapsed.
Click to expand it.
pkg/master/master_test.go
View file @
53f433f0
...
@@ -569,7 +569,7 @@ func testInstallThirdPartyAPIListVersion(t *testing.T, version string) {
...
@@ -569,7 +569,7 @@ func testInstallThirdPartyAPIListVersion(t *testing.T, version string) {
defer
etcdserver
.
Terminate
(
t
)
defer
etcdserver
.
Terminate
(
t
)
if
test
.
items
!=
nil
{
if
test
.
items
!=
nil
{
err
:=
stor
eThirdPartyList
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default"
,
test
.
items
)
err
:=
creat
eThirdPartyList
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default"
,
test
.
items
)
if
!
assert
.
NoError
(
err
)
{
if
!
assert
.
NoError
(
err
)
{
return
return
}
}
...
@@ -637,17 +637,17 @@ func encodeToThirdParty(name string, obj interface{}) (runtime.Object, error) {
...
@@ -637,17 +637,17 @@ func encodeToThirdParty(name string, obj interface{}) (runtime.Object, error) {
return
&
thirdPartyData
,
nil
return
&
thirdPartyData
,
nil
}
}
func
stor
eThirdPartyObject
(
s
storage
.
Interface
,
path
,
name
string
,
obj
interface
{})
error
{
func
creat
eThirdPartyObject
(
s
storage
.
Interface
,
path
,
name
string
,
obj
interface
{})
error
{
data
,
err
:=
encodeToThirdParty
(
name
,
obj
)
data
,
err
:=
encodeToThirdParty
(
name
,
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
s
.
Set
(
context
.
TODO
(),
etcdtest
.
AddPrefix
(
path
),
data
,
nil
,
0
)
return
s
.
Create
(
context
.
TODO
(),
etcdtest
.
AddPrefix
(
path
),
data
,
nil
,
0
)
}
}
func
stor
eThirdPartyList
(
s
storage
.
Interface
,
path
string
,
list
[]
Foo
)
error
{
func
creat
eThirdPartyList
(
s
storage
.
Interface
,
path
string
,
list
[]
Foo
)
error
{
for
_
,
obj
:=
range
list
{
for
_
,
obj
:=
range
list
{
if
err
:=
stor
eThirdPartyObject
(
s
,
path
+
"/"
+
obj
.
Name
,
obj
.
Name
,
obj
);
err
!=
nil
{
if
err
:=
creat
eThirdPartyObject
(
s
,
path
+
"/"
+
obj
.
Name
,
obj
.
Name
,
obj
);
err
!=
nil
{
return
err
return
err
}
}
}
}
...
@@ -690,7 +690,7 @@ func testInstallThirdPartyAPIGetVersion(t *testing.T, version string) {
...
@@ -690,7 +690,7 @@ func testInstallThirdPartyAPIGetVersion(t *testing.T, version string) {
SomeField
:
"test field"
,
SomeField
:
"test field"
,
OtherField
:
10
,
OtherField
:
10
,
}
}
if
!
assert
.
NoError
(
stor
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/test"
,
"test"
,
expectedObj
))
{
if
!
assert
.
NoError
(
creat
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/test"
,
"test"
,
expectedObj
))
{
t
.
FailNow
()
t
.
FailNow
()
return
return
}
}
...
@@ -803,7 +803,7 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
...
@@ -803,7 +803,7 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
SomeField
:
"test field"
,
SomeField
:
"test field"
,
OtherField
:
10
,
OtherField
:
10
,
}
}
if
!
assert
.
NoError
(
stor
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/test"
,
"test"
,
expectedObj
))
{
if
!
assert
.
NoError
(
creat
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/test"
,
"test"
,
expectedObj
))
{
t
.
FailNow
()
t
.
FailNow
()
return
return
}
}
...
@@ -913,13 +913,13 @@ func testInstallThirdPartyResourceRemove(t *testing.T, version string) {
...
@@ -913,13 +913,13 @@ func testInstallThirdPartyResourceRemove(t *testing.T, version string) {
SomeField
:
"test field"
,
SomeField
:
"test field"
,
OtherField
:
10
,
OtherField
:
10
,
}
}
if
!
assert
.
NoError
(
stor
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/test"
,
"test"
,
expectedObj
))
{
if
!
assert
.
NoError
(
creat
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/test"
,
"test"
,
expectedObj
))
{
t
.
FailNow
()
t
.
FailNow
()
return
return
}
}
secondObj
:=
expectedObj
secondObj
:=
expectedObj
secondObj
.
Name
=
"bar"
secondObj
.
Name
=
"bar"
if
!
assert
.
NoError
(
stor
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/bar"
,
"bar"
,
secondObj
))
{
if
!
assert
.
NoError
(
creat
eThirdPartyObject
(
master
.
thirdPartyStorage
,
"/ThirdPartyResourceData/company.com/foos/default/bar"
,
"bar"
,
secondObj
))
{
t
.
FailNow
()
t
.
FailNow
()
return
return
}
}
...
...
pkg/registry/deployment/etcd/etcd_test.go
View file @
53f433f0
...
@@ -185,7 +185,7 @@ func TestScaleGet(t *testing.T) {
...
@@ -185,7 +185,7 @@ func TestScaleGet(t *testing.T) {
var
deployment
extensions
.
Deployment
var
deployment
extensions
.
Deployment
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
namespace
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
namespace
)
key
:=
etcdtest
.
AddPrefix
(
"/deployments/"
+
namespace
+
"/"
+
name
)
key
:=
etcdtest
.
AddPrefix
(
"/deployments/"
+
namespace
+
"/"
+
name
)
if
err
:=
storage
.
Deployment
.
Storage
.
Set
(
ctx
,
key
,
&
validDeployment
,
&
deployment
,
0
);
err
!=
nil
{
if
err
:=
storage
.
Deployment
.
Storage
.
Create
(
ctx
,
key
,
&
validDeployment
,
&
deployment
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"error setting new deployment (key: %s) %v: %v"
,
key
,
validDeployment
,
err
)
t
.
Fatalf
(
"error setting new deployment (key: %s) %v: %v"
,
key
,
validDeployment
,
err
)
}
}
...
@@ -222,7 +222,7 @@ func TestScaleUpdate(t *testing.T) {
...
@@ -222,7 +222,7 @@ func TestScaleUpdate(t *testing.T) {
var
deployment
extensions
.
Deployment
var
deployment
extensions
.
Deployment
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
namespace
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
namespace
)
key
:=
etcdtest
.
AddPrefix
(
"/deployments/"
+
namespace
+
"/"
+
name
)
key
:=
etcdtest
.
AddPrefix
(
"/deployments/"
+
namespace
+
"/"
+
name
)
if
err
:=
storage
.
Deployment
.
Storage
.
Set
(
ctx
,
key
,
&
validDeployment
,
&
deployment
,
0
);
err
!=
nil
{
if
err
:=
storage
.
Deployment
.
Storage
.
Create
(
ctx
,
key
,
&
validDeployment
,
&
deployment
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"error setting new deployment (key: %s) %v: %v"
,
key
,
validDeployment
,
err
)
t
.
Fatalf
(
"error setting new deployment (key: %s) %v: %v"
,
key
,
validDeployment
,
err
)
}
}
replicas
:=
12
replicas
:=
12
...
@@ -259,7 +259,7 @@ func TestStatusUpdate(t *testing.T) {
...
@@ -259,7 +259,7 @@ func TestStatusUpdate(t *testing.T) {
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
namespace
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
namespace
)
key
:=
etcdtest
.
AddPrefix
(
"/deployments/"
+
namespace
+
"/"
+
name
)
key
:=
etcdtest
.
AddPrefix
(
"/deployments/"
+
namespace
+
"/"
+
name
)
if
err
:=
storage
.
Deployment
.
Storage
.
Set
(
ctx
,
key
,
&
validDeployment
,
nil
,
0
);
err
!=
nil
{
if
err
:=
storage
.
Deployment
.
Storage
.
Create
(
ctx
,
key
,
&
validDeployment
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
update
:=
extensions
.
Deployment
{
update
:=
extensions
.
Deployment
{
...
...
pkg/registry/experimental/controller/etcd/etcd_test.go
View file @
53f433f0
...
@@ -86,7 +86,7 @@ func TestGet(t *testing.T) {
...
@@ -86,7 +86,7 @@ func TestGet(t *testing.T) {
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
key
:=
etcdtest
.
AddPrefix
(
"/controllers/test/foo"
)
key
:=
etcdtest
.
AddPrefix
(
"/controllers/test/foo"
)
if
err
:=
si
.
Set
(
ctx
,
key
,
&
validController
,
nil
,
0
);
err
!=
nil
{
if
err
:=
si
.
Create
(
ctx
,
key
,
&
validController
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
obj
,
err
:=
storage
.
Get
(
ctx
,
"foo"
)
obj
,
err
:=
storage
.
Get
(
ctx
,
"foo"
)
...
@@ -105,7 +105,7 @@ func TestUpdate(t *testing.T) {
...
@@ -105,7 +105,7 @@ func TestUpdate(t *testing.T) {
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
key
:=
etcdtest
.
AddPrefix
(
"/controllers/test/foo"
)
key
:=
etcdtest
.
AddPrefix
(
"/controllers/test/foo"
)
if
err
:=
si
.
Set
(
ctx
,
key
,
&
validController
,
nil
,
0
);
err
!=
nil
{
if
err
:=
si
.
Create
(
ctx
,
key
,
&
validController
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
replicas
:=
12
replicas
:=
12
...
...
pkg/registry/namespace/etcd/etcd_test.go
View file @
53f433f0
...
@@ -147,7 +147,7 @@ func TestDeleteNamespaceWithIncompleteFinalizers(t *testing.T) {
...
@@ -147,7 +147,7 @@ func TestDeleteNamespaceWithIncompleteFinalizers(t *testing.T) {
},
},
Status
:
api
.
NamespaceStatus
{
Phase
:
api
.
NamespaceActive
},
Status
:
api
.
NamespaceStatus
{
Phase
:
api
.
NamespaceActive
},
}
}
if
err
:=
storage
.
Storage
.
Set
(
ctx
,
key
,
namespace
,
nil
,
0
);
err
!=
nil
{
if
err
:=
storage
.
Storage
.
Create
(
ctx
,
key
,
namespace
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
if
_
,
err
:=
storage
.
Delete
(
ctx
,
"foo"
,
nil
);
err
==
nil
{
if
_
,
err
:=
storage
.
Delete
(
ctx
,
"foo"
,
nil
);
err
==
nil
{
...
@@ -171,7 +171,7 @@ func TestDeleteNamespaceWithCompleteFinalizers(t *testing.T) {
...
@@ -171,7 +171,7 @@ func TestDeleteNamespaceWithCompleteFinalizers(t *testing.T) {
},
},
Status
:
api
.
NamespaceStatus
{
Phase
:
api
.
NamespaceActive
},
Status
:
api
.
NamespaceStatus
{
Phase
:
api
.
NamespaceActive
},
}
}
if
err
:=
storage
.
Storage
.
Set
(
ctx
,
key
,
namespace
,
nil
,
0
);
err
!=
nil
{
if
err
:=
storage
.
Storage
.
Create
(
ctx
,
key
,
namespace
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
if
_
,
err
:=
storage
.
Delete
(
ctx
,
"foo"
,
nil
);
err
!=
nil
{
if
_
,
err
:=
storage
.
Delete
(
ctx
,
"foo"
,
nil
);
err
!=
nil
{
...
...
pkg/registry/persistentvolume/etcd/etcd_test.go
View file @
53f433f0
...
@@ -153,7 +153,7 @@ func TestUpdateStatus(t *testing.T) {
...
@@ -153,7 +153,7 @@ func TestUpdateStatus(t *testing.T) {
key
,
_
:=
storage
.
KeyFunc
(
ctx
,
"foo"
)
key
,
_
:=
storage
.
KeyFunc
(
ctx
,
"foo"
)
key
=
etcdtest
.
AddPrefix
(
key
)
key
=
etcdtest
.
AddPrefix
(
key
)
pvStart
:=
validNewPersistentVolume
(
"foo"
)
pvStart
:=
validNewPersistentVolume
(
"foo"
)
err
:=
storage
.
Storage
.
Set
(
ctx
,
key
,
pvStart
,
nil
,
0
)
err
:=
storage
.
Storage
.
Create
(
ctx
,
key
,
pvStart
,
nil
,
0
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
}
...
...
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
View file @
53f433f0
...
@@ -148,7 +148,7 @@ func TestUpdateStatus(t *testing.T) {
...
@@ -148,7 +148,7 @@ func TestUpdateStatus(t *testing.T) {
key
,
_
:=
storage
.
KeyFunc
(
ctx
,
"foo"
)
key
,
_
:=
storage
.
KeyFunc
(
ctx
,
"foo"
)
key
=
etcdtest
.
AddPrefix
(
key
)
key
=
etcdtest
.
AddPrefix
(
key
)
pvcStart
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
pvcStart
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
err
:=
storage
.
Storage
.
Set
(
ctx
,
key
,
pvcStart
,
nil
,
0
)
err
:=
storage
.
Storage
.
Create
(
ctx
,
key
,
pvcStart
,
nil
,
0
)
pvc
:=
&
api
.
PersistentVolumeClaim
{
pvc
:=
&
api
.
PersistentVolumeClaim
{
ObjectMeta
:
api
.
ObjectMeta
{
ObjectMeta
:
api
.
ObjectMeta
{
...
...
pkg/registry/registrytest/etcd.go
View file @
53f433f0
...
@@ -82,7 +82,7 @@ func (t *Tester) ReturnDeletedObject() *Tester {
...
@@ -82,7 +82,7 @@ func (t *Tester) ReturnDeletedObject() *Tester {
func
(
t
*
Tester
)
TestCreate
(
valid
runtime
.
Object
,
invalid
...
runtime
.
Object
)
{
func
(
t
*
Tester
)
TestCreate
(
valid
runtime
.
Object
,
invalid
...
runtime
.
Object
)
{
t
.
tester
.
TestCreate
(
t
.
tester
.
TestCreate
(
valid
,
valid
,
t
.
set
Object
,
t
.
create
Object
,
t
.
getObject
,
t
.
getObject
,
invalid
...
,
invalid
...
,
)
)
...
@@ -95,7 +95,7 @@ func (t *Tester) TestUpdate(valid runtime.Object, validUpdateFunc UpdateFunc, in
...
@@ -95,7 +95,7 @@ func (t *Tester) TestUpdate(valid runtime.Object, validUpdateFunc UpdateFunc, in
}
}
t
.
tester
.
TestUpdate
(
t
.
tester
.
TestUpdate
(
valid
,
valid
,
t
.
set
Object
,
t
.
create
Object
,
t
.
getObject
,
t
.
getObject
,
resttest
.
UpdateFunc
(
validUpdateFunc
),
resttest
.
UpdateFunc
(
validUpdateFunc
),
invalidFuncs
...
,
invalidFuncs
...
,
...
@@ -105,7 +105,7 @@ func (t *Tester) TestUpdate(valid runtime.Object, validUpdateFunc UpdateFunc, in
...
@@ -105,7 +105,7 @@ func (t *Tester) TestUpdate(valid runtime.Object, validUpdateFunc UpdateFunc, in
func
(
t
*
Tester
)
TestDelete
(
valid
runtime
.
Object
)
{
func
(
t
*
Tester
)
TestDelete
(
valid
runtime
.
Object
)
{
t
.
tester
.
TestDelete
(
t
.
tester
.
TestDelete
(
valid
,
valid
,
t
.
set
Object
,
t
.
create
Object
,
t
.
getObject
,
t
.
getObject
,
errors
.
IsNotFound
,
errors
.
IsNotFound
,
)
)
...
@@ -114,7 +114,7 @@ func (t *Tester) TestDelete(valid runtime.Object) {
...
@@ -114,7 +114,7 @@ func (t *Tester) TestDelete(valid runtime.Object) {
func
(
t
*
Tester
)
TestDeleteGraceful
(
valid
runtime
.
Object
,
expectedGrace
int64
)
{
func
(
t
*
Tester
)
TestDeleteGraceful
(
valid
runtime
.
Object
,
expectedGrace
int64
)
{
t
.
tester
.
TestDeleteGraceful
(
t
.
tester
.
TestDeleteGraceful
(
valid
,
valid
,
t
.
set
Object
,
t
.
create
Object
,
t
.
getObject
,
t
.
getObject
,
expectedGrace
,
expectedGrace
,
)
)
...
@@ -181,7 +181,7 @@ func (t *Tester) getObject(ctx api.Context, obj runtime.Object) (runtime.Object,
...
@@ -181,7 +181,7 @@ func (t *Tester) getObject(ctx api.Context, obj runtime.Object) (runtime.Object,
return
result
,
nil
return
result
,
nil
}
}
func
(
t
*
Tester
)
set
Object
(
ctx
api
.
Context
,
obj
runtime
.
Object
)
error
{
func
(
t
*
Tester
)
create
Object
(
ctx
api
.
Context
,
obj
runtime
.
Object
)
error
{
accessor
,
err
:=
meta
.
Accessor
(
obj
)
accessor
,
err
:=
meta
.
Accessor
(
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
...
@@ -190,7 +190,7 @@ func (t *Tester) setObject(ctx api.Context, obj runtime.Object) error {
...
@@ -190,7 +190,7 @@ func (t *Tester) setObject(ctx api.Context, obj runtime.Object) error {
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
t
.
storage
.
Storage
.
Set
(
ctx
,
key
,
obj
,
nil
,
0
)
return
t
.
storage
.
Storage
.
Create
(
ctx
,
key
,
obj
,
nil
,
0
)
}
}
func
(
t
*
Tester
)
setObjectsForList
(
objects
[]
runtime
.
Object
)
[]
runtime
.
Object
{
func
(
t
*
Tester
)
setObjectsForList
(
objects
[]
runtime
.
Object
)
[]
runtime
.
Object
{
...
@@ -208,7 +208,7 @@ func (t *Tester) emitObject(obj runtime.Object, action string) error {
...
@@ -208,7 +208,7 @@ func (t *Tester) emitObject(obj runtime.Object, action string) error {
switch
action
{
switch
action
{
case
etcdstorage
.
EtcdCreate
:
case
etcdstorage
.
EtcdCreate
:
err
=
t
.
set
Object
(
ctx
,
obj
)
err
=
t
.
create
Object
(
ctx
,
obj
)
case
etcdstorage
.
EtcdDelete
:
case
etcdstorage
.
EtcdDelete
:
accessor
,
err
:=
meta
.
Accessor
(
obj
)
accessor
,
err
:=
meta
.
Accessor
(
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/registry/replicaset/etcd/etcd_test.go
View file @
53f433f0
...
@@ -246,7 +246,7 @@ func TestScaleGet(t *testing.T) {
...
@@ -246,7 +246,7 @@ func TestScaleGet(t *testing.T) {
var
rs
extensions
.
ReplicaSet
var
rs
extensions
.
ReplicaSet
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
api
.
NamespaceDefault
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
api
.
NamespaceDefault
)
key
:=
etcdtest
.
AddPrefix
(
"/replicasets/"
+
api
.
NamespaceDefault
+
"/"
+
name
)
key
:=
etcdtest
.
AddPrefix
(
"/replicasets/"
+
api
.
NamespaceDefault
+
"/"
+
name
)
if
err
:=
storage
.
ReplicaSet
.
Storage
.
Set
(
ctx
,
key
,
&
validReplicaSet
,
&
rs
,
0
);
err
!=
nil
{
if
err
:=
storage
.
ReplicaSet
.
Storage
.
Create
(
ctx
,
key
,
&
validReplicaSet
,
&
rs
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"error setting new replica set (key: %s) %v: %v"
,
key
,
validReplicaSet
,
err
)
t
.
Fatalf
(
"error setting new replica set (key: %s) %v: %v"
,
key
,
validReplicaSet
,
err
)
}
}
...
@@ -285,7 +285,7 @@ func TestScaleUpdate(t *testing.T) {
...
@@ -285,7 +285,7 @@ func TestScaleUpdate(t *testing.T) {
var
rs
extensions
.
ReplicaSet
var
rs
extensions
.
ReplicaSet
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
api
.
NamespaceDefault
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
api
.
NamespaceDefault
)
key
:=
etcdtest
.
AddPrefix
(
"/replicasets/"
+
api
.
NamespaceDefault
+
"/"
+
name
)
key
:=
etcdtest
.
AddPrefix
(
"/replicasets/"
+
api
.
NamespaceDefault
+
"/"
+
name
)
if
err
:=
storage
.
ReplicaSet
.
Storage
.
Set
(
ctx
,
key
,
&
validReplicaSet
,
&
rs
,
0
);
err
!=
nil
{
if
err
:=
storage
.
ReplicaSet
.
Storage
.
Create
(
ctx
,
key
,
&
validReplicaSet
,
&
rs
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"error setting new replica set (key: %s) %v: %v"
,
key
,
validReplicaSet
,
err
)
t
.
Fatalf
(
"error setting new replica set (key: %s) %v: %v"
,
key
,
validReplicaSet
,
err
)
}
}
replicas
:=
12
replicas
:=
12
...
@@ -326,7 +326,7 @@ func TestStatusUpdate(t *testing.T) {
...
@@ -326,7 +326,7 @@ func TestStatusUpdate(t *testing.T) {
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
api
.
NamespaceDefault
)
ctx
:=
api
.
WithNamespace
(
api
.
NewContext
(),
api
.
NamespaceDefault
)
key
:=
etcdtest
.
AddPrefix
(
"/replicasets/"
+
api
.
NamespaceDefault
+
"/foo"
)
key
:=
etcdtest
.
AddPrefix
(
"/replicasets/"
+
api
.
NamespaceDefault
+
"/foo"
)
if
err
:=
storage
.
ReplicaSet
.
Storage
.
Set
(
ctx
,
key
,
&
validReplicaSet
,
nil
,
0
);
err
!=
nil
{
if
err
:=
storage
.
ReplicaSet
.
Storage
.
Create
(
ctx
,
key
,
&
validReplicaSet
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
update
:=
extensions
.
ReplicaSet
{
update
:=
extensions
.
ReplicaSet
{
...
...
pkg/registry/resourcequota/etcd/etcd_test.go
View file @
53f433f0
...
@@ -147,7 +147,7 @@ func TestUpdateStatus(t *testing.T) {
...
@@ -147,7 +147,7 @@ func TestUpdateStatus(t *testing.T) {
key
,
_
:=
storage
.
KeyFunc
(
ctx
,
"foo"
)
key
,
_
:=
storage
.
KeyFunc
(
ctx
,
"foo"
)
key
=
etcdtest
.
AddPrefix
(
key
)
key
=
etcdtest
.
AddPrefix
(
key
)
resourcequotaStart
:=
validNewResourceQuota
()
resourcequotaStart
:=
validNewResourceQuota
()
err
:=
storage
.
Storage
.
Set
(
ctx
,
key
,
resourcequotaStart
,
nil
,
0
)
err
:=
storage
.
Storage
.
Create
(
ctx
,
key
,
resourcequotaStart
,
nil
,
0
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
...
...
pkg/registry/service/allocator/etcd/etcd_test.go
View file @
53f433f0
...
@@ -58,7 +58,7 @@ func TestEmpty(t *testing.T) {
...
@@ -58,7 +58,7 @@ func TestEmpty(t *testing.T) {
func
TestStore
(
t
*
testing
.
T
)
{
func
TestStore
(
t
*
testing
.
T
)
{
storage
,
server
,
backing
:=
newStorage
(
t
)
storage
,
server
,
backing
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
defer
server
.
Terminate
(
t
)
if
err
:=
storage
.
storage
.
Set
(
context
.
TODO
(),
key
(),
validNewRangeAllocation
(),
nil
,
0
);
err
!=
nil
{
if
err
:=
storage
.
storage
.
Create
(
context
.
TODO
(),
key
(),
validNewRangeAllocation
(),
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
...
...
pkg/registry/service/ipallocator/etcd/etcd_test.go
View file @
53f433f0
...
@@ -82,7 +82,7 @@ func TestErrors(t *testing.T) {
...
@@ -82,7 +82,7 @@ func TestErrors(t *testing.T) {
func
TestStore
(
t
*
testing
.
T
)
{
func
TestStore
(
t
*
testing
.
T
)
{
server
,
storage
,
backing
,
si
:=
newStorage
(
t
)
server
,
storage
,
backing
,
si
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
defer
server
.
Terminate
(
t
)
if
err
:=
si
.
Set
(
context
.
TODO
(),
key
(),
validNewRangeAllocation
(),
nil
,
0
);
err
!=
nil
{
if
err
:=
si
.
Create
(
context
.
TODO
(),
key
(),
validNewRangeAllocation
(),
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
...
...
pkg/storage/cacher.go
View file @
53f433f0
...
@@ -234,11 +234,6 @@ func (c *Cacher) Create(ctx context.Context, key string, obj, out runtime.Object
...
@@ -234,11 +234,6 @@ func (c *Cacher) Create(ctx context.Context, key string, obj, out runtime.Object
}
}
// Implements storage.Interface.
// Implements storage.Interface.
func
(
c
*
Cacher
)
Set
(
ctx
context
.
Context
,
key
string
,
obj
,
out
runtime
.
Object
,
ttl
uint64
)
error
{
return
c
.
storage
.
Set
(
ctx
,
key
,
obj
,
out
,
ttl
)
}
// Implements storage.Interface.
func
(
c
*
Cacher
)
Delete
(
ctx
context
.
Context
,
key
string
,
out
runtime
.
Object
,
preconditions
*
Preconditions
)
error
{
func
(
c
*
Cacher
)
Delete
(
ctx
context
.
Context
,
key
string
,
out
runtime
.
Object
,
preconditions
*
Preconditions
)
error
{
return
c
.
storage
.
Delete
(
ctx
,
key
,
out
,
preconditions
)
return
c
.
storage
.
Delete
(
ctx
,
key
,
out
,
preconditions
)
}
}
...
...
pkg/storage/cacher_test.go
View file @
53f433f0
...
@@ -69,20 +69,22 @@ func makeTestPod(name string) *api.Pod {
...
@@ -69,20 +69,22 @@ func makeTestPod(name string) *api.Pod {
}
}
func
updatePod
(
t
*
testing
.
T
,
s
storage
.
Interface
,
obj
,
old
*
api
.
Pod
)
*
api
.
Pod
{
func
updatePod
(
t
*
testing
.
T
,
s
storage
.
Interface
,
obj
,
old
*
api
.
Pod
)
*
api
.
Pod
{
key
:=
etcdtest
.
AddPrefix
(
"pods/ns/"
+
obj
.
Name
)
updateFn
:=
func
(
input
runtime
.
Object
,
res
storage
.
ResponseMeta
)
(
runtime
.
Object
,
*
uint64
,
error
)
{
result
:=
&
api
.
Pod
{}
newObj
,
err
:=
api
.
Scheme
.
DeepCopy
(
obj
)
if
old
==
nil
{
if
err
!=
nil
{
if
err
:=
s
.
Create
(
context
.
TODO
(),
key
,
obj
,
result
,
0
);
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
}
else
{
// To force "update" behavior of Set() we need to set ResourceVersion of
// previous version of object.
obj
.
ResourceVersion
=
old
.
ResourceVersion
if
err
:=
s
.
Set
(
context
.
TODO
(),
key
,
obj
,
result
,
0
);
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
return
nil
,
nil
,
err
}
}
obj
.
ResourceVersion
=
""
return
newObj
.
(
*
api
.
Pod
),
nil
,
nil
}
key
:=
etcdtest
.
AddPrefix
(
"pods/ns/"
+
obj
.
Name
)
if
err
:=
s
.
GuaranteedUpdate
(
context
.
TODO
(),
key
,
&
api
.
Pod
{},
old
==
nil
,
nil
,
updateFn
);
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
obj
.
ResourceVersion
=
""
result
:=
&
api
.
Pod
{}
if
err
:=
s
.
Get
(
context
.
TODO
(),
key
,
result
,
false
);
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
}
return
result
return
result
}
}
...
...
pkg/storage/etcd/etcd_helper.go
View file @
53f433f0
...
@@ -228,69 +228,6 @@ func (h *etcdHelper) Create(ctx context.Context, key string, obj, out runtime.Ob
...
@@ -228,69 +228,6 @@ func (h *etcdHelper) Create(ctx context.Context, key string, obj, out runtime.Ob
return
err
return
err
}
}
// Implements storage.Interface.
func
(
h
*
etcdHelper
)
Set
(
ctx
context
.
Context
,
key
string
,
obj
,
out
runtime
.
Object
,
ttl
uint64
)
error
{
if
ctx
==
nil
{
glog
.
Errorf
(
"Context is nil"
)
}
version
:=
uint64
(
0
)
var
err
error
if
version
,
err
=
h
.
versioner
.
ObjectResourceVersion
(
obj
);
err
!=
nil
{
return
errors
.
New
(
"couldn't get resourceVersion from object"
)
}
if
version
!=
0
{
// We cannot store object with resourceVersion in etcd, we need to clear it here.
if
err
:=
h
.
versioner
.
UpdateObject
(
obj
,
nil
,
0
);
err
!=
nil
{
return
errors
.
New
(
"resourceVersion cannot be set on objects store in etcd"
)
}
}
var
response
*
etcd
.
Response
data
,
err
:=
runtime
.
Encode
(
h
.
codec
,
obj
)
if
err
!=
nil
{
return
err
}
key
=
h
.
prefixEtcdKey
(
key
)
create
:=
true
if
version
!=
0
{
create
=
false
startTime
:=
time
.
Now
()
opts
:=
etcd
.
SetOptions
{
TTL
:
time
.
Duration
(
ttl
)
*
time
.
Second
,
PrevIndex
:
version
,
}
response
,
err
=
h
.
etcdKeysAPI
.
Set
(
ctx
,
key
,
string
(
data
),
&
opts
)
metrics
.
RecordEtcdRequestLatency
(
"compareAndSwap"
,
getTypeName
(
obj
),
startTime
)
if
err
!=
nil
{
return
toStorageErr
(
err
,
key
,
int64
(
version
))
}
}
if
create
{
// Create will fail if a key already exists.
startTime
:=
time
.
Now
()
opts
:=
etcd
.
SetOptions
{
TTL
:
time
.
Duration
(
ttl
)
*
time
.
Second
,
PrevExist
:
etcd
.
PrevNoExist
,
}
response
,
err
=
h
.
etcdKeysAPI
.
Set
(
ctx
,
key
,
string
(
data
),
&
opts
)
if
err
!=
nil
{
return
toStorageErr
(
err
,
key
,
0
)
}
metrics
.
RecordEtcdRequestLatency
(
"create"
,
getTypeName
(
obj
),
startTime
)
}
if
out
!=
nil
{
if
_
,
err
:=
conversion
.
EnforcePtr
(
out
);
err
!=
nil
{
panic
(
"unable to convert output object to pointer"
)
}
_
,
_
,
err
=
h
.
extractObj
(
response
,
err
,
out
,
false
,
false
)
}
return
err
}
func
checkPreconditions
(
preconditions
*
storage
.
Preconditions
,
out
runtime
.
Object
)
error
{
func
checkPreconditions
(
preconditions
*
storage
.
Preconditions
,
out
runtime
.
Object
)
error
{
if
preconditions
==
nil
{
if
preconditions
==
nil
{
return
nil
return
nil
...
...
pkg/storage/etcd/etcd_helper_test.go
View file @
53f433f0
...
@@ -229,7 +229,7 @@ func TestGet(t *testing.T) {
...
@@ -229,7 +229,7 @@ func TestGet(t *testing.T) {
Spec
:
apitesting
.
DeepEqualSafePodSpec
(),
Spec
:
apitesting
.
DeepEqualSafePodSpec
(),
}
}
var
got
api
.
Pod
var
got
api
.
Pod
if
err
:=
helper
.
Set
(
context
.
TODO
(),
key
,
&
expect
,
&
got
,
0
);
err
!=
nil
{
if
err
:=
helper
.
Create
(
context
.
TODO
(),
key
,
&
expect
,
&
got
,
0
);
err
!=
nil
{
t
.
Errorf
(
"Unexpected error %#v"
,
err
)
t
.
Errorf
(
"Unexpected error %#v"
,
err
)
}
}
expect
=
got
expect
=
got
...
@@ -293,76 +293,6 @@ func TestCreateNilOutParam(t *testing.T) {
...
@@ -293,76 +293,6 @@ func TestCreateNilOutParam(t *testing.T) {
}
}
}
}
func
TestSet
(
t
*
testing
.
T
)
{
obj
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
server
:=
etcdtesting
.
NewEtcdTestClientServer
(
t
)
defer
server
.
Terminate
(
t
)
helper
:=
newEtcdHelper
(
server
.
Client
,
testapi
.
Default
.
Codec
(),
etcdtest
.
PathPrefix
())
returnedObj
:=
&
api
.
Pod
{}
err
:=
helper
.
Set
(
context
.
TODO
(),
"/some/key"
,
obj
,
returnedObj
,
5
)
if
err
!=
nil
{
t
.
Errorf
(
"Unexpected error %#v"
,
err
)
}
if
obj
.
ObjectMeta
.
Name
==
returnedObj
.
ObjectMeta
.
Name
{
// Set worked, now override the values.
obj
=
returnedObj
}
err
=
helper
.
Get
(
context
.
TODO
(),
"/some/key"
,
returnedObj
,
false
)
if
err
!=
nil
{
t
.
Errorf
(
"Unexpected error %#v"
,
err
)
}
if
!
reflect
.
DeepEqual
(
obj
,
returnedObj
)
{
t
.
Errorf
(
"Wanted %#v, got %#v"
,
obj
,
returnedObj
)
}
}
func
TestSetFailCAS
(
t
*
testing
.
T
)
{
obj
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
,
ResourceVersion
:
"1"
}}
server
:=
etcdtesting
.
NewEtcdTestClientServer
(
t
)
defer
server
.
Terminate
(
t
)
helper
:=
newEtcdHelper
(
server
.
Client
,
testapi
.
Default
.
Codec
(),
etcdtest
.
PathPrefix
())
err
:=
helper
.
Set
(
context
.
TODO
(),
"/some/key"
,
obj
,
nil
,
5
)
if
err
==
nil
{
t
.
Errorf
(
"Expecting error."
)
}
}
func
TestSetWithVersion
(
t
*
testing
.
T
)
{
obj
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
server
:=
etcdtesting
.
NewEtcdTestClientServer
(
t
)
defer
server
.
Terminate
(
t
)
helper
:=
newEtcdHelper
(
server
.
Client
,
testapi
.
Default
.
Codec
(),
etcdtest
.
PathPrefix
())
returnedObj
:=
&
api
.
Pod
{}
err
:=
helper
.
Set
(
context
.
TODO
(),
"/some/key"
,
obj
,
returnedObj
,
7
)
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error %#v"
,
err
)
}
// resource revision is now set, try to set again with new value to test CAS
obj
=
returnedObj
obj
.
Name
=
"bar"
err
=
helper
.
Set
(
context
.
TODO
(),
"/some/key"
,
obj
,
returnedObj
,
7
)
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error %#v"
,
err
)
}
if
returnedObj
.
Name
!=
"bar"
{
t
.
Fatalf
(
"Unexpected error %#v"
,
returnedObj
)
}
}
func
TestSetNilOutParam
(
t
*
testing
.
T
)
{
obj
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
server
:=
etcdtesting
.
NewEtcdTestClientServer
(
t
)
defer
server
.
Terminate
(
t
)
helper
:=
newEtcdHelper
(
server
.
Client
,
testapi
.
Default
.
Codec
(),
etcdtest
.
PathPrefix
())
err
:=
helper
.
Set
(
context
.
TODO
(),
"/some/key"
,
obj
,
nil
,
3
)
if
err
!=
nil
{
t
.
Errorf
(
"Unexpected error %#v"
,
err
)
}
}
func
TestGuaranteedUpdate
(
t
*
testing
.
T
)
{
func
TestGuaranteedUpdate
(
t
*
testing
.
T
)
{
_
,
codec
:=
testScheme
(
t
)
_
,
codec
:=
testScheme
(
t
)
server
:=
etcdtesting
.
NewEtcdTestClientServer
(
t
)
server
:=
etcdtesting
.
NewEtcdTestClientServer
(
t
)
...
...
pkg/storage/etcd/etcd_watcher_test.go
View file @
53f433f0
...
@@ -236,7 +236,7 @@ func TestWatch(t *testing.T) {
...
@@ -236,7 +236,7 @@ func TestWatch(t *testing.T) {
// Test normal case
// Test normal case
pod
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
pod
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
returnObj
:=
&
api
.
Pod
{}
returnObj
:=
&
api
.
Pod
{}
err
=
h
.
Set
(
context
.
TODO
(),
key
,
pod
,
returnObj
,
0
)
err
=
h
.
Create
(
context
.
TODO
(),
key
,
pod
,
returnObj
,
0
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
...
@@ -292,7 +292,7 @@ func TestWatchEtcdState(t *testing.T) {
...
@@ -292,7 +292,7 @@ func TestWatchEtcdState(t *testing.T) {
Subsets
:
emptySubsets
(),
Subsets
:
emptySubsets
(),
}
}
err
=
h
.
Set
(
context
.
TODO
(),
key
,
endpoint
,
endpoint
,
0
)
err
=
h
.
Create
(
context
.
TODO
(),
key
,
endpoint
,
endpoint
,
0
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
...
@@ -304,9 +304,18 @@ func TestWatchEtcdState(t *testing.T) {
...
@@ -304,9 +304,18 @@ func TestWatchEtcdState(t *testing.T) {
subset
:=
makeSubsets
(
"127.0.0.1"
,
9000
)
subset
:=
makeSubsets
(
"127.0.0.1"
,
9000
)
endpoint
.
Subsets
=
subset
endpoint
.
Subsets
=
subset
endpoint
.
ResourceVersion
=
""
// CAS the previous value
// CAS the previous value
err
=
h
.
Set
(
context
.
TODO
(),
key
,
endpoint
,
endpoint
,
0
)
updateFn
:=
func
(
input
runtime
.
Object
,
res
storage
.
ResponseMeta
)
(
runtime
.
Object
,
*
uint64
,
error
)
{
newObj
,
err
:=
api
.
Scheme
.
DeepCopy
(
endpoint
)
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
return
nil
,
nil
,
err
}
return
newObj
.
(
*
api
.
Endpoints
),
nil
,
nil
}
err
=
h
.
GuaranteedUpdate
(
context
.
TODO
(),
key
,
&
api
.
Endpoints
{},
false
,
nil
,
updateFn
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
...
@@ -317,7 +326,7 @@ func TestWatchEtcdState(t *testing.T) {
...
@@ -317,7 +326,7 @@ func TestWatchEtcdState(t *testing.T) {
}
}
if
e
,
a
:=
endpoint
,
event
.
Object
;
!
api
.
Semantic
.
DeepDerivative
(
e
,
a
)
{
if
e
,
a
:=
endpoint
,
event
.
Object
;
!
api
.
Semantic
.
DeepDerivative
(
e
,
a
)
{
t
.
Errorf
(
"Unexpected error: expected %
v, got %
v"
,
e
,
a
)
t
.
Errorf
(
"Unexpected error: expected %
#v, got %#
v"
,
e
,
a
)
}
}
}
}
...
@@ -332,14 +341,19 @@ func TestWatchFromZeroIndex(t *testing.T) {
...
@@ -332,14 +341,19 @@ func TestWatchFromZeroIndex(t *testing.T) {
h
:=
newEtcdHelper
(
server
.
Client
,
codec
,
etcdtest
.
PathPrefix
())
h
:=
newEtcdHelper
(
server
.
Client
,
codec
,
etcdtest
.
PathPrefix
())
// set before the watch and verify events
// set before the watch and verify events
err
:=
h
.
Set
(
context
.
TODO
(),
key
,
pod
,
pod
,
0
)
err
:=
h
.
Create
(
context
.
TODO
(),
key
,
pod
,
pod
,
0
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
pod
.
ResourceVersion
=
""
// check for concatenation on watch event with CAS
// check for concatenation on watch event with CAS
pod
.
Name
=
"bar"
updateFn
:=
func
(
input
runtime
.
Object
,
res
storage
.
ResponseMeta
)
(
runtime
.
Object
,
*
uint64
,
error
)
{
err
=
h
.
Set
(
context
.
TODO
(),
key
,
pod
,
pod
,
0
)
pod
:=
input
.
(
*
api
.
Pod
)
pod
.
Name
=
"bar"
return
pod
,
nil
,
nil
}
err
=
h
.
GuaranteedUpdate
(
context
.
TODO
(),
key
,
&
api
.
Pod
{},
false
,
nil
,
updateFn
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
...
@@ -356,7 +370,13 @@ func TestWatchFromZeroIndex(t *testing.T) {
...
@@ -356,7 +370,13 @@ func TestWatchFromZeroIndex(t *testing.T) {
t
.
Errorf
(
"Unexpected event %#v"
,
event
)
t
.
Errorf
(
"Unexpected event %#v"
,
event
)
}
}
err
=
h
.
Set
(
context
.
TODO
(),
key
,
pod
,
pod
,
0
)
pod
.
Name
=
"baz"
updateFn
=
func
(
input
runtime
.
Object
,
res
storage
.
ResponseMeta
)
(
runtime
.
Object
,
*
uint64
,
error
)
{
pod
:=
input
.
(
*
api
.
Pod
)
pod
.
Name
=
"baz"
return
pod
,
nil
,
nil
}
err
=
h
.
GuaranteedUpdate
(
context
.
TODO
(),
key
,
&
api
.
Pod
{},
false
,
nil
,
updateFn
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
...
@@ -367,7 +387,7 @@ func TestWatchFromZeroIndex(t *testing.T) {
...
@@ -367,7 +387,7 @@ func TestWatchFromZeroIndex(t *testing.T) {
}
}
if
e
,
a
:=
pod
,
event
.
Object
;
!
api
.
Semantic
.
DeepDerivative
(
e
,
a
)
{
if
e
,
a
:=
pod
,
event
.
Object
;
!
api
.
Semantic
.
DeepDerivative
(
e
,
a
)
{
t
.
Errorf
(
"Unexpected error: expected %
v, got %
v"
,
e
,
a
)
t
.
Errorf
(
"Unexpected error: expected %
#v, got %#
v"
,
e
,
a
)
}
}
}
}
...
...
pkg/storage/interfaces.go
View file @
53f433f0
...
@@ -98,11 +98,6 @@ type Interface interface {
...
@@ -98,11 +98,6 @@ type Interface interface {
// set to the read value from database.
// set to the read value from database.
Create
(
ctx
context
.
Context
,
key
string
,
obj
,
out
runtime
.
Object
,
ttl
uint64
)
error
Create
(
ctx
context
.
Context
,
key
string
,
obj
,
out
runtime
.
Object
,
ttl
uint64
)
error
// Set marshals obj via json and stores in database under key. Will do an atomic update
// if obj's ResourceVersion field is set. 'ttl' is time-to-live in seconds (0 means forever).
// If no error is returned and out is not nil, out will be set to the read value from database.
Set
(
ctx
context
.
Context
,
key
string
,
obj
,
out
runtime
.
Object
,
ttl
uint64
)
error
// Delete removes the specified key and returns the value that existed at that spot.
// Delete removes the specified key and returns the value that existed at that spot.
// If key didn't exist, it will return NotFound storage error.
// If key didn't exist, it will return NotFound storage error.
Delete
(
ctx
context
.
Context
,
key
string
,
out
runtime
.
Object
,
preconditions
*
Preconditions
)
error
Delete
(
ctx
context
.
Context
,
key
string
,
out
runtime
.
Object
,
preconditions
*
Preconditions
)
error
...
...
pkg/storage/testing/utils.go
View file @
53f433f0
...
@@ -27,7 +27,7 @@ import (
...
@@ -27,7 +27,7 @@ import (
// CreateObj will create a single object using the storage interface
// CreateObj will create a single object using the storage interface
func
CreateObj
(
helper
storage
.
Interface
,
name
string
,
obj
,
out
runtime
.
Object
,
ttl
uint64
)
error
{
func
CreateObj
(
helper
storage
.
Interface
,
name
string
,
obj
,
out
runtime
.
Object
,
ttl
uint64
)
error
{
return
helper
.
Set
(
context
.
TODO
(),
name
,
obj
,
out
,
ttl
)
return
helper
.
Create
(
context
.
TODO
(),
name
,
obj
,
out
,
ttl
)
}
}
//CreateObjList will create a list from the array of objects
//CreateObjList will create a list from the array of objects
...
...
test/integration/etcd_tools_test.go
View file @
53f433f0
...
@@ -35,14 +35,14 @@ import (
...
@@ -35,14 +35,14 @@ import (
"golang.org/x/net/context"
"golang.org/x/net/context"
)
)
func
Test
Set
(
t
*
testing
.
T
)
{
func
Test
Create
(
t
*
testing
.
T
)
{
client
:=
framework
.
NewEtcdClient
()
client
:=
framework
.
NewEtcdClient
()
keysAPI
:=
etcd
.
NewKeysAPI
(
client
)
keysAPI
:=
etcd
.
NewKeysAPI
(
client
)
etcdStorage
:=
etcdstorage
.
NewEtcdStorage
(
client
,
testapi
.
Default
.
Codec
(),
""
,
false
)
etcdStorage
:=
etcdstorage
.
NewEtcdStorage
(
client
,
testapi
.
Default
.
Codec
(),
""
,
false
)
ctx
:=
context
.
TODO
()
ctx
:=
context
.
TODO
()
framework
.
WithEtcdKey
(
func
(
key
string
)
{
framework
.
WithEtcdKey
(
func
(
key
string
)
{
testObject
:=
api
.
ServiceAccount
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
testObject
:=
api
.
ServiceAccount
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
if
err
:=
etcdStorage
.
Set
(
ctx
,
key
,
&
testObject
,
nil
,
0
);
err
!=
nil
{
if
err
:=
etcdStorage
.
Create
(
ctx
,
key
,
&
testObject
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
resp
,
err
:=
keysAPI
.
Get
(
ctx
,
key
,
nil
)
resp
,
err
:=
keysAPI
.
Get
(
ctx
,
key
,
nil
)
...
@@ -94,7 +94,7 @@ func TestWriteTTL(t *testing.T) {
...
@@ -94,7 +94,7 @@ func TestWriteTTL(t *testing.T) {
ctx
:=
context
.
TODO
()
ctx
:=
context
.
TODO
()
framework
.
WithEtcdKey
(
func
(
key
string
)
{
framework
.
WithEtcdKey
(
func
(
key
string
)
{
testObject
:=
api
.
ServiceAccount
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
testObject
:=
api
.
ServiceAccount
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
if
err
:=
etcdStorage
.
Set
(
ctx
,
key
,
&
testObject
,
nil
,
0
);
err
!=
nil
{
if
err
:=
etcdStorage
.
Create
(
ctx
,
key
,
&
testObject
,
nil
,
0
);
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
result
:=
&
api
.
ServiceAccount
{}
result
:=
&
api
.
ServiceAccount
{}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment