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
27c12d51
Commit
27c12d51
authored
Apr 07, 2015
by
Derek Carr
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6473 from markturansky/yoko_pv_client
Added PVClaim status subresource
parents
530fe897
4e528a84
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
102 additions
and
56 deletions
+102
-56
master.go
pkg/master/master.go
+12
-11
etcd.go
pkg/registry/persistentvolumeclaim/etcd/etcd.go
+19
-2
etcd_test.go
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
+54
-43
rest.go
pkg/registry/persistentvolumeclaim/rest.go
+17
-0
No files found.
pkg/master/master.go
View file @
27c12d51
...
@@ -366,7 +366,7 @@ func (m *Master) init(c *Config) {
...
@@ -366,7 +366,7 @@ func (m *Master) init(c *Config) {
resourceQuotaStorage
,
resourceQuotaStatusStorage
:=
resourcequotaetcd
.
NewStorage
(
c
.
EtcdHelper
)
resourceQuotaStorage
,
resourceQuotaStatusStorage
:=
resourcequotaetcd
.
NewStorage
(
c
.
EtcdHelper
)
secretRegistry
:=
secret
.
NewEtcdRegistry
(
c
.
EtcdHelper
)
secretRegistry
:=
secret
.
NewEtcdRegistry
(
c
.
EtcdHelper
)
persistentVolumeStorage
,
persistentVolumeStatusStorage
:=
pvetcd
.
NewStorage
(
c
.
EtcdHelper
)
persistentVolumeStorage
,
persistentVolumeStatusStorage
:=
pvetcd
.
NewStorage
(
c
.
EtcdHelper
)
persistentVolumeClaimStorage
:=
pvcetcd
.
NewStorage
(
c
.
EtcdHelper
)
persistentVolumeClaimStorage
,
persistentVolumeClaimStatusStorage
:=
pvcetcd
.
NewStorage
(
c
.
EtcdHelper
)
namespaceStorage
,
namespaceStatusStorage
,
namespaceFinalizeStorage
:=
namespaceetcd
.
NewStorage
(
c
.
EtcdHelper
)
namespaceStorage
,
namespaceStatusStorage
,
namespaceFinalizeStorage
:=
namespaceetcd
.
NewStorage
(
c
.
EtcdHelper
)
m
.
namespaceRegistry
=
namespace
.
NewRegistry
(
namespaceStorage
)
m
.
namespaceRegistry
=
namespace
.
NewRegistry
(
namespaceStorage
)
...
@@ -398,16 +398,17 @@ func (m *Master) init(c *Config) {
...
@@ -398,16 +398,17 @@ func (m *Master) init(c *Config) {
"nodes"
:
nodeStorage
,
"nodes"
:
nodeStorage
,
"events"
:
event
.
NewStorage
(
eventRegistry
),
"events"
:
event
.
NewStorage
(
eventRegistry
),
"limitRanges"
:
limitrange
.
NewStorage
(
limitRangeRegistry
),
"limitRanges"
:
limitrange
.
NewStorage
(
limitRangeRegistry
),
"resourceQuotas"
:
resourceQuotaStorage
,
"resourceQuotas"
:
resourceQuotaStorage
,
"resourceQuotas/status"
:
resourceQuotaStatusStorage
,
"resourceQuotas/status"
:
resourceQuotaStatusStorage
,
"namespaces"
:
namespaceStorage
,
"namespaces"
:
namespaceStorage
,
"namespaces/status"
:
namespaceStatusStorage
,
"namespaces/status"
:
namespaceStatusStorage
,
"namespaces/finalize"
:
namespaceFinalizeStorage
,
"namespaces/finalize"
:
namespaceFinalizeStorage
,
"secrets"
:
secret
.
NewStorage
(
secretRegistry
),
"secrets"
:
secret
.
NewStorage
(
secretRegistry
),
"persistentVolumes"
:
persistentVolumeStorage
,
"persistentVolumes"
:
persistentVolumeStorage
,
"persistentVolumes/status"
:
persistentVolumeStatusStorage
,
"persistentVolumes/status"
:
persistentVolumeStatusStorage
,
"persistentVolumeClaims"
:
persistentVolumeClaimStorage
,
"persistentVolumeClaims"
:
persistentVolumeClaimStorage
,
"persistentVolumeClaims/status"
:
persistentVolumeClaimStatusStorage
,
}
}
apiVersions
:=
[]
string
{
"v1beta1"
,
"v1beta2"
}
apiVersions
:=
[]
string
{
"v1beta1"
,
"v1beta2"
}
...
...
pkg/registry/persistentvolumeclaim/etcd/etcd.go
View file @
27c12d51
...
@@ -33,7 +33,7 @@ type REST struct {
...
@@ -33,7 +33,7 @@ type REST struct {
}
}
// NewREST returns a RESTStorage object that will work against PersistentVolumeClaim objects.
// NewREST returns a RESTStorage object that will work against PersistentVolumeClaim objects.
func
NewStorage
(
h
tools
.
EtcdHelper
)
*
REST
{
func
NewStorage
(
h
tools
.
EtcdHelper
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/registry/persistentvolumeclaims"
prefix
:=
"/registry/persistentvolumeclaims"
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeClaim
{}
},
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeClaim
{}
},
...
@@ -59,5 +59,22 @@ func NewStorage(h tools.EtcdHelper) *REST {
...
@@ -59,5 +59,22 @@ func NewStorage(h tools.EtcdHelper) *REST {
store
.
UpdateStrategy
=
persistentvolumeclaim
.
Strategy
store
.
UpdateStrategy
=
persistentvolumeclaim
.
Strategy
store
.
ReturnDeletedObject
=
true
store
.
ReturnDeletedObject
=
true
return
&
REST
{
store
}
statusStore
:=
*
store
statusStore
.
UpdateStrategy
=
persistentvolumeclaim
.
StatusStrategy
return
&
REST
{
store
},
&
StatusREST
{
store
:
&
statusStore
}
}
// StatusREST implements the REST endpoint for changing the status of a persistentvolumeclaim.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeClaim
{}
}
// Update alters the status subset of an object.
func
(
r
*
StatusREST
)
Update
(
ctx
api
.
Context
,
obj
runtime
.
Object
)
(
runtime
.
Object
,
bool
,
error
)
{
return
r
.
store
.
Update
(
ctx
,
obj
)
}
}
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
View file @
27c12d51
...
@@ -37,12 +37,12 @@ type testRegistry struct {
...
@@ -37,12 +37,12 @@ type testRegistry struct {
*
registrytest
.
GenericRegistry
*
registrytest
.
GenericRegistry
}
}
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
,
tools
.
EtcdHelper
)
{
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
,
tools
.
EtcdHelper
)
{
fakeEtcdClient
:=
tools
.
NewFakeEtcdClient
(
t
)
fakeEtcdClient
:=
tools
.
NewFakeEtcdClient
(
t
)
fakeEtcdClient
.
TestIndex
=
true
fakeEtcdClient
.
TestIndex
=
true
helper
:=
tools
.
NewEtcdHelper
(
fakeEtcdClient
,
latest
.
Codec
)
helper
:=
tools
.
NewEtcdHelper
(
fakeEtcdClient
,
latest
.
Codec
)
storage
:=
NewStorage
(
helper
)
storage
,
statusStorage
:=
NewStorage
(
helper
)
return
storage
,
fakeEtcdClient
,
helper
return
storage
,
statusStorage
,
fakeEtcdClient
,
helper
}
}
func
validNewPersistentVolumeClaim
(
name
,
ns
string
)
*
api
.
PersistentVolumeClaim
{
func
validNewPersistentVolumeClaim
(
name
,
ns
string
)
*
api
.
PersistentVolumeClaim
{
...
@@ -71,7 +71,7 @@ func validChangedPersistentVolumeClaim() *api.PersistentVolumeClaim {
...
@@ -71,7 +71,7 @@ func validChangedPersistentVolumeClaim() *api.PersistentVolumeClaim {
func
TestCreate
(
t
*
testing
.
T
)
{
func
TestCreate
(
t
*
testing
.
T
)
{
registry
,
fakeEtcdClient
,
_
:=
newStorage
(
t
)
registry
,
_
,
fakeEtcdClient
,
_
:=
newStorage
(
t
)
test
:=
resttest
.
New
(
t
,
registry
,
fakeEtcdClient
.
SetError
)
test
:=
resttest
.
New
(
t
,
registry
,
fakeEtcdClient
.
SetError
)
pv
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
pv
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
pv
.
ObjectMeta
=
api
.
ObjectMeta
{}
pv
.
ObjectMeta
=
api
.
ObjectMeta
{}
...
@@ -85,9 +85,9 @@ func TestCreate(t *testing.T) {
...
@@ -85,9 +85,9 @@ func TestCreate(t *testing.T) {
)
)
}
}
func
TestDelete
2
(
t
*
testing
.
T
)
{
func
TestDelete
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
ctx
:=
api
.
NewDefaultContext
()
storage
,
fakeEtcdClient
,
_
:=
newStorage
(
t
)
storage
,
_
,
fakeEtcdClient
,
_
:=
newStorage
(
t
)
test
:=
resttest
.
New
(
t
,
storage
,
fakeEtcdClient
.
SetError
)
test
:=
resttest
.
New
(
t
,
storage
,
fakeEtcdClient
.
SetError
)
pv
:=
validChangedPersistentVolumeClaim
()
pv
:=
validChangedPersistentVolumeClaim
()
...
@@ -112,36 +112,9 @@ func TestDelete2(t *testing.T) {
...
@@ -112,36 +112,9 @@ func TestDelete2(t *testing.T) {
test
.
TestDeleteNoGraceful
(
createFn
,
gracefulSetFn
)
test
.
TestDeleteNoGraceful
(
createFn
,
gracefulSetFn
)
}
}
func
TestDelete
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
registry
,
fakeEtcdClient
,
_
:=
newStorage
(
t
)
test
:=
resttest
.
New
(
t
,
registry
,
fakeEtcdClient
.
SetError
)
pvc
:=
validChangedPersistentVolumeClaim
()
key
,
_
:=
registry
.
KeyFunc
(
ctx
,
pvc
.
Name
)
createFn
:=
func
()
runtime
.
Object
{
fakeEtcdClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
R
:
&
etcd
.
Response
{
Node
:
&
etcd
.
Node
{
Value
:
runtime
.
EncodeOrDie
(
latest
.
Codec
,
pvc
),
ModifiedIndex
:
1
,
},
},
}
return
pvc
}
gracefulSetFn
:=
func
()
bool
{
if
fakeEtcdClient
.
Data
[
key
]
.
R
.
Node
==
nil
{
return
false
}
return
fakeEtcdClient
.
Data
[
key
]
.
R
.
Node
.
TTL
==
30
}
test
.
TestDeleteNoGraceful
(
createFn
,
gracefulSetFn
)
}
func
TestEtcdListPersistentVolumeClaims
(
t
*
testing
.
T
)
{
func
TestEtcdListPersistentVolumeClaims
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
ctx
:=
api
.
NewDefaultContext
()
registry
,
fakeClient
,
_
:=
newStorage
(
t
)
registry
,
_
,
fakeClient
,
_
:=
newStorage
(
t
)
key
:=
registry
.
KeyRootFunc
(
ctx
)
key
:=
registry
.
KeyRootFunc
(
ctx
)
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
R
:
&
etcd
.
Response
{
R
:
&
etcd
.
Response
{
...
@@ -172,7 +145,7 @@ func TestEtcdListPersistentVolumeClaims(t *testing.T) {
...
@@ -172,7 +145,7 @@ func TestEtcdListPersistentVolumeClaims(t *testing.T) {
func
TestEtcdGetPersistentVolumeClaims
(
t
*
testing
.
T
)
{
func
TestEtcdGetPersistentVolumeClaims
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
ctx
:=
api
.
NewDefaultContext
()
registry
,
fakeClient
,
_
:=
newStorage
(
t
)
registry
,
_
,
fakeClient
,
_
:=
newStorage
(
t
)
persistentVolume
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
persistentVolume
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
name
:=
persistentVolume
.
Name
name
:=
persistentVolume
.
Name
key
,
_
:=
registry
.
KeyFunc
(
ctx
,
name
)
key
,
_
:=
registry
.
KeyFunc
(
ctx
,
name
)
...
@@ -202,7 +175,7 @@ func TestEtcdGetPersistentVolumeClaims(t *testing.T) {
...
@@ -202,7 +175,7 @@ func TestEtcdGetPersistentVolumeClaims(t *testing.T) {
func
TestListEmptyPersistentVolumeClaimsList
(
t
*
testing
.
T
)
{
func
TestListEmptyPersistentVolumeClaimsList
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
ctx
:=
api
.
NewDefaultContext
()
registry
,
fakeClient
,
_
:=
newStorage
(
t
)
registry
,
_
,
fakeClient
,
_
:=
newStorage
(
t
)
fakeClient
.
ChangeIndex
=
1
fakeClient
.
ChangeIndex
=
1
key
:=
registry
.
KeyRootFunc
(
ctx
)
key
:=
registry
.
KeyRootFunc
(
ctx
)
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
...
@@ -225,7 +198,7 @@ func TestListEmptyPersistentVolumeClaimsList(t *testing.T) {
...
@@ -225,7 +198,7 @@ func TestListEmptyPersistentVolumeClaimsList(t *testing.T) {
func
TestListPersistentVolumeClaimsList
(
t
*
testing
.
T
)
{
func
TestListPersistentVolumeClaimsList
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
ctx
:=
api
.
NewDefaultContext
()
registry
,
fakeClient
,
_
:=
newStorage
(
t
)
registry
,
_
,
fakeClient
,
_
:=
newStorage
(
t
)
fakeClient
.
ChangeIndex
=
1
fakeClient
.
ChangeIndex
=
1
key
:=
registry
.
KeyRootFunc
(
ctx
)
key
:=
registry
.
KeyRootFunc
(
ctx
)
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
...
@@ -265,7 +238,7 @@ func TestListPersistentVolumeClaimsList(t *testing.T) {
...
@@ -265,7 +238,7 @@ func TestListPersistentVolumeClaimsList(t *testing.T) {
}
}
func
TestPersistentVolumeClaimsDecode
(
t
*
testing
.
T
)
{
func
TestPersistentVolumeClaimsDecode
(
t
*
testing
.
T
)
{
registry
,
_
,
_
:=
newStorage
(
t
)
registry
,
_
,
_
,
_
:=
newStorage
(
t
)
expected
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
expected
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
body
,
err
:=
latest
.
Codec
.
Encode
(
expected
)
body
,
err
:=
latest
.
Codec
.
Encode
(
expected
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -284,7 +257,7 @@ func TestPersistentVolumeClaimsDecode(t *testing.T) {
...
@@ -284,7 +257,7 @@ func TestPersistentVolumeClaimsDecode(t *testing.T) {
func
TestEtcdUpdatePersistentVolumeClaims
(
t
*
testing
.
T
)
{
func
TestEtcdUpdatePersistentVolumeClaims
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
ctx
:=
api
.
NewDefaultContext
()
registry
,
fakeClient
,
_
:=
newStorage
(
t
)
registry
,
_
,
fakeClient
,
_
:=
newStorage
(
t
)
persistentVolume
:=
validChangedPersistentVolumeClaim
()
persistentVolume
:=
validChangedPersistentVolumeClaim
()
key
,
_
:=
registry
.
KeyFunc
(
ctx
,
"foo"
)
key
,
_
:=
registry
.
KeyFunc
(
ctx
,
"foo"
)
...
@@ -313,15 +286,15 @@ func TestEtcdUpdatePersistentVolumeClaims(t *testing.T) {
...
@@ -313,15 +286,15 @@ func TestEtcdUpdatePersistentVolumeClaims(t *testing.T) {
func
TestDeletePersistentVolumeClaims
(
t
*
testing
.
T
)
{
func
TestDeletePersistentVolumeClaims
(
t
*
testing
.
T
)
{
ctx
:=
api
.
NewDefaultContext
()
ctx
:=
api
.
NewDefaultContext
()
registry
,
fakeClient
,
_
:=
newStorage
(
t
)
registry
,
_
,
fakeClient
,
_
:=
newStorage
(
t
)
p
ersistentVolume
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
p
vClaim
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
name
:=
p
ersistentVolume
.
Name
name
:=
p
vClaim
.
Name
key
,
_
:=
registry
.
KeyFunc
(
ctx
,
name
)
key
,
_
:=
registry
.
KeyFunc
(
ctx
,
name
)
fakeClient
.
ChangeIndex
=
1
fakeClient
.
ChangeIndex
=
1
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
fakeClient
.
Data
[
key
]
=
tools
.
EtcdResponseWithError
{
R
:
&
etcd
.
Response
{
R
:
&
etcd
.
Response
{
Node
:
&
etcd
.
Node
{
Node
:
&
etcd
.
Node
{
Value
:
runtime
.
EncodeOrDie
(
latest
.
Codec
,
p
ersistentVolume
),
Value
:
runtime
.
EncodeOrDie
(
latest
.
Codec
,
p
vClaim
),
ModifiedIndex
:
1
,
ModifiedIndex
:
1
,
CreatedIndex
:
1
,
CreatedIndex
:
1
,
},
},
...
@@ -332,3 +305,41 @@ func TestDeletePersistentVolumeClaims(t *testing.T) {
...
@@ -332,3 +305,41 @@ func TestDeletePersistentVolumeClaims(t *testing.T) {
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
}
}
}
func
TestEtcdUpdateStatus
(
t
*
testing
.
T
)
{
storage
,
statusStorage
,
fakeClient
,
helper
:=
newStorage
(
t
)
ctx
:=
api
.
NewDefaultContext
()
fakeClient
.
TestIndex
=
true
key
,
_
:=
storage
.
KeyFunc
(
ctx
,
"foo"
)
pvcStart
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
fakeClient
.
Set
(
key
,
runtime
.
EncodeOrDie
(
latest
.
Codec
,
pvcStart
),
1
)
pvIn
:=
&
api
.
PersistentVolumeClaim
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
,
Namespace
:
api
.
NamespaceDefault
,
ResourceVersion
:
"1"
,
},
Status
:
api
.
PersistentVolumeClaimStatus
{
Phase
:
api
.
ClaimBound
,
},
}
expected
:=
*
pvcStart
expected
.
ResourceVersion
=
"2"
expected
.
Labels
=
pvIn
.
Labels
expected
.
Status
=
pvIn
.
Status
_
,
_
,
err
:=
statusStorage
.
Update
(
ctx
,
pvIn
)
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
var
pvcOut
api
.
PersistentVolumeClaim
if
err
:=
helper
.
ExtractObj
(
key
,
&
pvcOut
,
false
);
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
if
!
api
.
Semantic
.
DeepEqual
(
expected
,
pvcOut
)
{
t
.
Errorf
(
"unexpected object: %s"
,
util
.
ObjectDiff
(
expected
,
pvcOut
))
}
}
pkg/registry/persistentvolumeclaim/rest.go
View file @
27c12d51
...
@@ -68,6 +68,23 @@ func (persistentvolumeclaimStrategy) ValidateUpdate(ctx api.Context, obj, old ru
...
@@ -68,6 +68,23 @@ func (persistentvolumeclaimStrategy) ValidateUpdate(ctx api.Context, obj, old ru
return
validation
.
ValidatePersistentVolumeClaimUpdate
(
obj
.
(
*
api
.
PersistentVolumeClaim
),
old
.
(
*
api
.
PersistentVolumeClaim
))
return
validation
.
ValidatePersistentVolumeClaimUpdate
(
obj
.
(
*
api
.
PersistentVolumeClaim
),
old
.
(
*
api
.
PersistentVolumeClaim
))
}
}
type
persistentvolumeclaimStatusStrategy
struct
{
persistentvolumeclaimStrategy
}
var
StatusStrategy
=
persistentvolumeclaimStatusStrategy
{
Strategy
}
// PrepareForUpdate sets the Spec field which is not allowed to be changed when updating a PV's Status
func
(
persistentvolumeclaimStatusStrategy
)
PrepareForUpdate
(
obj
,
old
runtime
.
Object
)
{
newPv
:=
obj
.
(
*
api
.
PersistentVolumeClaim
)
oldPv
:=
obj
.
(
*
api
.
PersistentVolumeClaim
)
newPv
.
Spec
=
oldPv
.
Spec
}
func
(
persistentvolumeclaimStatusStrategy
)
ValidateUpdate
(
ctx
api
.
Context
,
obj
,
old
runtime
.
Object
)
fielderrors
.
ValidationErrorList
{
return
validation
.
ValidatePersistentVolumeClaimStatusUpdate
(
obj
.
(
*
api
.
PersistentVolumeClaim
),
old
.
(
*
api
.
PersistentVolumeClaim
))
}
// MatchPersistentVolumeClaim returns a generic matcher for a given label and field selector.
// MatchPersistentVolumeClaim returns a generic matcher for a given label and field selector.
func
MatchPersistentVolumeClaim
(
label
labels
.
Selector
,
field
fields
.
Selector
)
generic
.
Matcher
{
func
MatchPersistentVolumeClaim
(
label
labels
.
Selector
,
field
fields
.
Selector
)
generic
.
Matcher
{
return
generic
.
MatcherFunc
(
func
(
obj
runtime
.
Object
)
(
bool
,
error
)
{
return
generic
.
MatcherFunc
(
func
(
obj
runtime
.
Object
)
(
bool
,
error
)
{
...
...
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