delete unused functions in pkg/controller directory
This commit is contained in:
		| @@ -1,92 +0,0 @@ | ||||
| /* | ||||
| Copyright 2016 The Kubernetes Authors. | ||||
|  | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
|  | ||||
| package controller | ||||
|  | ||||
| import ( | ||||
| 	"hash/fnv" | ||||
| 	"sync" | ||||
|  | ||||
| 	"github.com/golang/groupcache/lru" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	hashutil "k8s.io/kubernetes/pkg/util/hash" | ||||
| ) | ||||
|  | ||||
| type objectWithMeta interface { | ||||
| 	metav1.Object | ||||
| } | ||||
|  | ||||
| // keyFunc returns the key of an object, which is used to look up in the cache for it's matching object. | ||||
| // Since we match objects by namespace and Labels/Selector, so if two objects have the same namespace and labels, | ||||
| // they will have the same key. | ||||
| func keyFunc(obj objectWithMeta) uint64 { | ||||
| 	hash := fnv.New32a() | ||||
| 	hashutil.DeepHashObject(hash, &equivalenceLabelObj{ | ||||
| 		namespace: obj.GetNamespace(), | ||||
| 		labels:    obj.GetLabels(), | ||||
| 	}) | ||||
| 	return uint64(hash.Sum32()) | ||||
| } | ||||
|  | ||||
| type equivalenceLabelObj struct { | ||||
| 	namespace string | ||||
| 	labels    map[string]string | ||||
| } | ||||
|  | ||||
| // MatchingCache save label and selector matching relationship | ||||
| type MatchingCache struct { | ||||
| 	mutex sync.RWMutex | ||||
| 	cache *lru.Cache | ||||
| } | ||||
|  | ||||
| // NewMatchingCache return a NewMatchingCache, which save label and selector matching relationship. | ||||
| func NewMatchingCache(maxCacheEntries int) *MatchingCache { | ||||
| 	return &MatchingCache{ | ||||
| 		cache: lru.New(maxCacheEntries), | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Add will add matching information to the cache. | ||||
| func (c *MatchingCache) Add(labelObj objectWithMeta, selectorObj objectWithMeta) { | ||||
| 	key := keyFunc(labelObj) | ||||
| 	c.mutex.Lock() | ||||
| 	defer c.mutex.Unlock() | ||||
| 	c.cache.Add(key, selectorObj) | ||||
| } | ||||
|  | ||||
| // GetMatchingObject lookup the matching object for a given object. | ||||
| // Note: the cache information may be invalid since the controller may be deleted or updated, | ||||
| // we need check in the external request to ensure the cache data is not dirty. | ||||
| func (c *MatchingCache) GetMatchingObject(labelObj objectWithMeta) (controller interface{}, exists bool) { | ||||
| 	key := keyFunc(labelObj) | ||||
| 	// NOTE: we use Lock() instead of RLock() here because lru's Get() method also modifies state( | ||||
| 	// it need update the least recently usage information). So we can not call it concurrently. | ||||
| 	c.mutex.Lock() | ||||
| 	defer c.mutex.Unlock() | ||||
| 	return c.cache.Get(key) | ||||
| } | ||||
|  | ||||
| // Update update the cached matching information. | ||||
| func (c *MatchingCache) Update(labelObj objectWithMeta, selectorObj objectWithMeta) { | ||||
| 	c.Add(labelObj, selectorObj) | ||||
| } | ||||
|  | ||||
| // InvalidateAll invalidate the whole cache. | ||||
| func (c *MatchingCache) InvalidateAll() { | ||||
| 	c.mutex.Lock() | ||||
| 	defer c.mutex.Unlock() | ||||
| 	c.cache = lru.New(c.cache.MaxEntries) | ||||
| } | ||||
| @@ -20,20 +20,8 @@ package replication | ||||
|  | ||||
| import ( | ||||
| 	"k8s.io/api/core/v1" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| ) | ||||
|  | ||||
| // NewReplicationControllerCondition creates a new replication controller condition. | ||||
| func NewReplicationControllerCondition(condType v1.ReplicationControllerConditionType, status v1.ConditionStatus, reason, msg string) v1.ReplicationControllerCondition { | ||||
| 	return v1.ReplicationControllerCondition{ | ||||
| 		Type:               condType, | ||||
| 		Status:             status, | ||||
| 		LastTransitionTime: metav1.Now(), | ||||
| 		Reason:             reason, | ||||
| 		Message:            msg, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // GetCondition returns a replication controller condition with the provided type if it exists. | ||||
| func GetCondition(status v1.ReplicationControllerStatus, condType v1.ReplicationControllerConditionType) *v1.ReplicationControllerCondition { | ||||
| 	for i := range status.Conditions { | ||||
|   | ||||
| @@ -103,19 +103,6 @@ type QuotaMonitor struct { | ||||
| 	updateFilter UpdateFilter | ||||
| } | ||||
|  | ||||
| // NewMonitor creates a new instance of a QuotaMonitor | ||||
| func NewMonitor(informersStarted <-chan struct{}, informerFactory informerfactory.InformerFactory, ignoredResources map[schema.GroupResource]struct{}, resyncPeriod controller.ResyncPeriodFunc, replenishmentFunc ReplenishmentFunc, registry quota.Registry) *QuotaMonitor { | ||||
| 	return &QuotaMonitor{ | ||||
| 		informersStarted:  informersStarted, | ||||
| 		informerFactory:   informerFactory, | ||||
| 		ignoredResources:  ignoredResources, | ||||
| 		resourceChanges:   workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resource_quota_controller_resource_changes"), | ||||
| 		resyncPeriod:      resyncPeriod, | ||||
| 		replenishmentFunc: replenishmentFunc, | ||||
| 		registry:          registry, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // monitor runs a Controller with a local stop channel. | ||||
| type monitor struct { | ||||
| 	controller cache.Controller | ||||
|   | ||||
| @@ -17,7 +17,6 @@ limitations under the License. | ||||
| package statefulset | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"regexp" | ||||
| @@ -481,18 +480,6 @@ func newVersionedStatefulSetPod(currentSet, updateSet *apps.StatefulSet, current | ||||
| 	return pod | ||||
| } | ||||
|  | ||||
| // Match check if the given StatefulSet's template matches the template stored in the given history. | ||||
| func Match(ss *apps.StatefulSet, history *apps.ControllerRevision) (bool, error) { | ||||
| 	// Encoding the set for the patch may update its GVK metadata, which causes data races if this | ||||
| 	// set is in an informer cache. | ||||
| 	clone := ss.DeepCopy() | ||||
| 	patch, err := getPatch(clone) | ||||
| 	if err != nil { | ||||
| 		return false, err | ||||
| 	} | ||||
| 	return bytes.Equal(patch, history.Data.Raw), nil | ||||
| } | ||||
|  | ||||
| // getPatch returns a strategic merge patch that can be applied to restore a StatefulSet to a | ||||
| // previous version. If the returned error is nil the patch is valid. The current state that we save is just the | ||||
| // PodSpecTemplate. We can modify this later to encompass more state (or less) and remain compatible with previously | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 HirazawaUi
					HirazawaUi