diff --git a/pkg/controller/garbagecollector/dump.go b/pkg/controller/garbagecollector/dump.go index 5abe0f84c5e..7f52262c175 100644 --- a/pkg/controller/garbagecollector/dump.go +++ b/pkg/controller/garbagecollector/dump.go @@ -122,6 +122,7 @@ namespace=%v } } +// NewGonumVertex creates a new gonumVertex. func NewGonumVertex(node *node, nodeID int64) *gonumVertex { gv, err := schema.ParseGroupVersion(node.identity.APIVersion) if err != nil { @@ -140,6 +141,7 @@ func NewGonumVertex(node *node, nodeID int64) *gonumVertex { } } +// NewMissingGonumVertex creates a new gonumVertex. func NewMissingGonumVertex(ownerRef metav1.OwnerReference, nodeID int64) *gonumVertex { gv, err := schema.ParseGroupVersion(ownerRef.APIVersion) if err != nil { @@ -242,6 +244,7 @@ func toGonumGraphForObj(uidToNode map[types.UID]*node, uids ...types.UID) graph. return toGonumGraph(interestingNodes) } +// NewDebugHandler creates a new debugHTTPHandler. func NewDebugHandler(controller *GarbageCollector) http.Handler { return &debugHTTPHandler{controller: controller} } diff --git a/pkg/controller/garbagecollector/garbagecollector.go b/pkg/controller/garbagecollector/garbagecollector.go index 33c9201716e..3d42201cc99 100644 --- a/pkg/controller/garbagecollector/garbagecollector.go +++ b/pkg/controller/garbagecollector/garbagecollector.go @@ -43,6 +43,7 @@ import ( _ "k8s.io/client-go/kubernetes" ) +// ResourceResyncTime defines the resync period of the garbage collector's informers. const ResourceResyncTime time.Duration = 0 // GarbageCollector runs reflectors to watch for changes of managed API @@ -70,6 +71,7 @@ type GarbageCollector struct { workerLock sync.RWMutex } +// NewGarbageCollector creates a new GarbageCollector. func NewGarbageCollector( metadataClient metadata.Interface, mapper resettableRESTMapper, @@ -120,6 +122,7 @@ func (gc *GarbageCollector) resyncMonitors(deletableResources map[schema.GroupVe return nil } +// Run starts garbage collector workers. func (gc *GarbageCollector) Run(workers int, stopCh <-chan struct{}) { defer utilruntime.HandleCrash() defer gc.attemptToDelete.ShutDown() @@ -272,6 +275,7 @@ func waitForStopOrTimeout(stopCh <-chan struct{}, timeout time.Duration) <-chan return stopChWithTimeout } +// IsSynced returns true if dependencyGraphBuilder is synced. func (gc *GarbageCollector) IsSynced() bool { return gc.dependencyGraphBuilder.IsSynced() } diff --git a/pkg/controller/garbagecollector/garbagecollector_test.go b/pkg/controller/garbagecollector/garbagecollector_test.go index fdcf11ececa..9c792300e51 100644 --- a/pkg/controller/garbagecollector/garbagecollector_test.go +++ b/pkg/controller/garbagecollector/garbagecollector_test.go @@ -55,7 +55,7 @@ type testRESTMapper struct { meta.RESTMapper } -func (_ *testRESTMapper) Reset() {} +func (*testRESTMapper) Reset() {} func TestGarbageCollectorConstruction(t *testing.T) { config := &restclient.Config{} @@ -928,16 +928,16 @@ type fakeServerResources struct { InterfaceUsedCount int } -func (_ *fakeServerResources) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { +func (*fakeServerResources) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { return nil, nil } // Deprecated: use ServerGroupsAndResources instead. -func (_ *fakeServerResources) ServerResources() ([]*metav1.APIResourceList, error) { +func (*fakeServerResources) ServerResources() ([]*metav1.APIResourceList, error) { return nil, nil } -func (_ *fakeServerResources) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) { +func (*fakeServerResources) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) { return nil, nil, nil } @@ -966,6 +966,6 @@ func (f *fakeServerResources) getInterfaceUsedCount() int { return f.InterfaceUsedCount } -func (_ *fakeServerResources) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { +func (*fakeServerResources) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { return nil, nil } diff --git a/pkg/controller/garbagecollector/graph.go b/pkg/controller/garbagecollector/graph.go index 4b4349794f7..2d19a150dd6 100644 --- a/pkg/controller/garbagecollector/graph.go +++ b/pkg/controller/garbagecollector/graph.go @@ -98,32 +98,32 @@ func (n *node) isDeletingDependents() bool { return n.deletingDependents } -func (ownerNode *node) addDependent(dependent *node) { - ownerNode.dependentsLock.Lock() - defer ownerNode.dependentsLock.Unlock() - ownerNode.dependents[dependent] = struct{}{} +func (n *node) addDependent(dependent *node) { + n.dependentsLock.Lock() + defer n.dependentsLock.Unlock() + n.dependents[dependent] = struct{}{} } -func (ownerNode *node) deleteDependent(dependent *node) { - ownerNode.dependentsLock.Lock() - defer ownerNode.dependentsLock.Unlock() - delete(ownerNode.dependents, dependent) +func (n *node) deleteDependent(dependent *node) { + n.dependentsLock.Lock() + defer n.dependentsLock.Unlock() + delete(n.dependents, dependent) } -func (ownerNode *node) dependentsLength() int { - ownerNode.dependentsLock.RLock() - defer ownerNode.dependentsLock.RUnlock() - return len(ownerNode.dependents) +func (n *node) dependentsLength() int { + n.dependentsLock.RLock() + defer n.dependentsLock.RUnlock() + return len(n.dependents) } // Note that this function does not provide any synchronization guarantees; // items could be added to or removed from ownerNode.dependents the moment this // function returns. -func (ownerNode *node) getDependents() []*node { - ownerNode.dependentsLock.RLock() - defer ownerNode.dependentsLock.RUnlock() +func (n *node) getDependents() []*node { + n.dependentsLock.RLock() + defer n.dependentsLock.RUnlock() var ret []*node - for dep := range ownerNode.dependents { + for dep := range n.dependents { ret = append(ret, dep) } return ret diff --git a/pkg/controller/garbagecollector/graph_builder.go b/pkg/controller/garbagecollector/graph_builder.go index b43ed70d3c8..fcf09d6609a 100644 --- a/pkg/controller/garbagecollector/graph_builder.go +++ b/pkg/controller/garbagecollector/graph_builder.go @@ -67,8 +67,8 @@ type event struct { gvk schema.GroupVersionKind } -// GraphBuilder: based on the events supplied by the informers, GraphBuilder updates -// uidToNode, a graph that caches the dependencies as we know, and enqueues +// GraphBuilder processes events supplied by the informers, updates uidToNode, +// a graph that caches the dependencies as we know, and enqueues // items to the attemptToDelete and attemptToOrphan. type GraphBuilder struct { restMapper meta.RESTMapper diff --git a/pkg/controller/garbagecollector/patch.go b/pkg/controller/garbagecollector/patch.go index 528d75fb59c..bedd817d72f 100644 --- a/pkg/controller/garbagecollector/patch.go +++ b/pkg/controller/garbagecollector/patch.go @@ -92,6 +92,7 @@ type objectForFinalizersPatch struct { ObjectMetaForFinalizersPatch `json:"metadata"` } +// ObjectMetaForFinalizersPatch defines object meta struct for finalizers patch operation. type ObjectMetaForFinalizersPatch struct { ResourceVersion string `json:"resourceVersion"` Finalizers []string `json:"finalizers"` @@ -101,6 +102,7 @@ type objectForPatch struct { ObjectMetaForPatch `json:"metadata"` } +// ObjectMetaForPatch defines object meta struct for patch operation. type ObjectMetaForPatch struct { ResourceVersion string `json:"resourceVersion"` OwnerReferences []metav1.OwnerReference `json:"ownerReferences"`