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
b7bc39f5
Commit
b7bc39f5
authored
May 15, 2017
by
Maru Newby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fed: Update sync controller to use runtime.HandleError
parent
23b2cee8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
11 deletions
+19
-11
BUILD
federation/pkg/federation-controller/sync/BUILD
+1
-0
controller.go
federation/pkg/federation-controller/sync/controller.go
+18
-11
No files found.
federation/pkg/federation-controller/sync/BUILD
View file @
b7bc39f5
...
@@ -27,6 +27,7 @@ go_library(
...
@@ -27,6 +27,7 @@ go_library(
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/v1:go_default_library",
...
...
federation/pkg/federation-controller/sync/controller.go
View file @
b7bc39f5
...
@@ -24,6 +24,7 @@ import (
...
@@ -24,6 +24,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
pkgruntime
"k8s.io/apimachinery/pkg/runtime"
pkgruntime
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/apimachinery/pkg/watch"
clientv1
"k8s.io/client-go/pkg/api/v1"
clientv1
"k8s.io/client-go/pkg/api/v1"
...
@@ -298,7 +299,7 @@ func (s *FederationSyncController) isSynced() bool {
...
@@ -298,7 +299,7 @@ func (s *FederationSyncController) isSynced() bool {
}
}
clusters
,
err
:=
s
.
informer
.
GetReadyClusters
()
clusters
,
err
:=
s
.
informer
.
GetReadyClusters
()
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Errorf
(
"Failed to get ready clusters: %v"
,
err
)
runtime
.
HandleError
(
fmt
.
Errorf
(
"Failed to get ready clusters: %v"
,
err
)
)
return
false
return
false
}
}
if
!
s
.
informer
.
GetTargetStore
()
.
ClustersSynced
(
clusters
)
{
if
!
s
.
informer
.
GetTargetStore
()
.
ClustersSynced
(
clusters
)
{
...
@@ -328,7 +329,6 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
...
@@ -328,7 +329,6 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
obj
,
err
:=
s
.
objFromCache
(
kind
,
key
)
obj
,
err
:=
s
.
objFromCache
(
kind
,
key
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Error
(
err
)
return
statusError
return
statusError
}
}
if
obj
==
nil
{
if
obj
==
nil
{
...
@@ -341,7 +341,7 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
...
@@ -341,7 +341,7 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
if
err
!=
nil
{
if
err
!=
nil
{
msg
:=
"Failed to delete %s %q: %v"
msg
:=
"Failed to delete %s %q: %v"
args
:=
[]
interface
{}{
kind
,
namespacedName
,
err
}
args
:=
[]
interface
{}{
kind
,
namespacedName
,
err
}
glog
.
Errorf
(
msg
,
args
...
)
runtime
.
HandleError
(
fmt
.
Errorf
(
msg
,
args
...
)
)
s
.
eventRecorder
.
Eventf
(
obj
,
api
.
EventTypeWarning
,
"DeleteFailed"
,
msg
,
args
...
)
s
.
eventRecorder
.
Eventf
(
obj
,
api
.
EventTypeWarning
,
"DeleteFailed"
,
msg
,
args
...
)
return
statusError
return
statusError
}
}
...
@@ -351,7 +351,7 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
...
@@ -351,7 +351,7 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
glog
.
V
(
3
)
.
Infof
(
"Ensuring finalizers exist on %s %q"
,
kind
,
key
)
glog
.
V
(
3
)
.
Infof
(
"Ensuring finalizers exist on %s %q"
,
kind
,
key
)
obj
,
err
=
s
.
deletionHelper
.
EnsureFinalizers
(
obj
)
obj
,
err
=
s
.
deletionHelper
.
EnsureFinalizers
(
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Errorf
(
"Failed to ensure finalizers for %s %q: %v"
,
kind
,
key
,
err
)
runtime
.
HandleError
(
fmt
.
Errorf
(
"Failed to ensure finalizers for %s %q: %v"
,
kind
,
key
,
err
)
)
return
statusError
return
statusError
}
}
...
@@ -372,7 +372,9 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
...
@@ -372,7 +372,9 @@ func (s *FederationSyncController) reconcile(namespacedName types.NamespacedName
func
(
s
*
FederationSyncController
)
objFromCache
(
kind
,
key
string
)
(
pkgruntime
.
Object
,
error
)
{
func
(
s
*
FederationSyncController
)
objFromCache
(
kind
,
key
string
)
(
pkgruntime
.
Object
,
error
)
{
cachedObj
,
exist
,
err
:=
s
.
store
.
GetByKey
(
key
)
cachedObj
,
exist
,
err
:=
s
.
store
.
GetByKey
(
key
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"Failed to query %s store for %q: %v"
,
kind
,
key
,
err
)
wrappedErr
:=
fmt
.
Errorf
(
"Failed to query %s store for %q: %v"
,
kind
,
key
,
err
)
runtime
.
HandleError
(
wrappedErr
)
return
nil
,
err
}
}
if
!
exist
{
if
!
exist
{
return
nil
,
nil
return
nil
,
nil
...
@@ -381,10 +383,14 @@ func (s *FederationSyncController) objFromCache(kind, key string) (pkgruntime.Ob
...
@@ -381,10 +383,14 @@ func (s *FederationSyncController) objFromCache(kind, key string) (pkgruntime.Ob
// Create a copy before modifying the resource to prevent racing with other readers.
// Create a copy before modifying the resource to prevent racing with other readers.
copiedObj
,
err
:=
api
.
Scheme
.
DeepCopy
(
cachedObj
)
copiedObj
,
err
:=
api
.
Scheme
.
DeepCopy
(
cachedObj
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"Error in retrieving %s %q from store: %v"
,
kind
,
key
,
err
)
wrappedErr
:=
fmt
.
Errorf
(
"Error in retrieving %s %q from store: %v"
,
kind
,
key
,
err
)
runtime
.
HandleError
(
wrappedErr
)
return
nil
,
err
}
}
if
!
s
.
adapter
.
IsExpectedType
(
copiedObj
)
{
if
!
s
.
adapter
.
IsExpectedType
(
copiedObj
)
{
return
nil
,
fmt
.
Errorf
(
"Object is not the expected type: %v"
,
copiedObj
)
err
=
fmt
.
Errorf
(
"Object is not the expected type: %v"
,
copiedObj
)
runtime
.
HandleError
(
err
)
return
nil
,
err
}
}
return
copiedObj
.
(
pkgruntime
.
Object
),
nil
return
copiedObj
.
(
pkgruntime
.
Object
),
nil
}
}
...
@@ -422,13 +428,12 @@ func syncToClusters(clustersAccessor clustersAccessorFunc, operationsAccessor op
...
@@ -422,13 +428,12 @@ func syncToClusters(clustersAccessor clustersAccessorFunc, operationsAccessor op
clusters
,
err
:=
clustersAccessor
()
clusters
,
err
:=
clustersAccessor
()
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Errorf
(
"Failed to get cluster list: %v"
,
err
)
runtime
.
HandleError
(
fmt
.
Errorf
(
"Failed to get cluster list: %v"
,
err
)
)
return
statusNotSynced
return
statusNotSynced
}
}
operations
,
err
:=
operationsAccessor
(
adapter
,
clusters
,
obj
)
operations
,
err
:=
operationsAccessor
(
adapter
,
clusters
,
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Error
(
err
)
return
statusError
return
statusError
}
}
if
len
(
operations
)
==
0
{
if
len
(
operations
)
==
0
{
...
@@ -437,7 +442,7 @@ func syncToClusters(clustersAccessor clustersAccessorFunc, operationsAccessor op
...
@@ -437,7 +442,7 @@ func syncToClusters(clustersAccessor clustersAccessorFunc, operationsAccessor op
err
=
execute
(
operations
)
err
=
execute
(
operations
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Errorf
(
"Failed to execute updates for %s %q: %v"
,
kind
,
key
,
err
)
runtime
.
HandleError
(
fmt
.
Errorf
(
"Failed to execute updates for %s %q: %v"
,
kind
,
key
,
err
)
)
return
statusError
return
statusError
}
}
...
@@ -454,7 +459,9 @@ func clusterOperations(adapter federatedtypes.FederatedTypeAdapter, clusters []*
...
@@ -454,7 +459,9 @@ func clusterOperations(adapter federatedtypes.FederatedTypeAdapter, clusters []*
for
_
,
cluster
:=
range
clusters
{
for
_
,
cluster
:=
range
clusters
{
clusterObj
,
found
,
err
:=
accessor
(
cluster
.
Name
)
clusterObj
,
found
,
err
:=
accessor
(
cluster
.
Name
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"Failed to get %s %q from cluster %q: %v"
,
adapter
.
Kind
(),
key
,
cluster
.
Name
,
err
)
wrappedErr
:=
fmt
.
Errorf
(
"Failed to get %s %q from cluster %q: %v"
,
adapter
.
Kind
(),
key
,
cluster
.
Name
,
err
)
runtime
.
HandleError
(
wrappedErr
)
return
nil
,
wrappedErr
}
}
// The data should not be modified.
// The data should not be modified.
desiredObj
:=
adapter
.
Copy
(
obj
)
desiredObj
:=
adapter
.
Copy
(
obj
)
...
...
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