aboutsummaryrefslogtreecommitdiff
path: root/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime_cache.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-03-23 09:00:42 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-03-27 21:55:33 +0000
commit9aba605ddecc84e070a55019bb34109c5d5fd9b6 (patch)
tree5e7f39a3c293602e13871ce5ebfd4e2c4f146ca1 /vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime_cache.go
parentaf64e10400f8533a0c48ecdf5ab9b7fbf329e14e (diff)
downloadpodman-9aba605ddecc84e070a55019bb34109c5d5fd9b6.tar.gz
podman-9aba605ddecc84e070a55019bb34109c5d5fd9b6.tar.bz2
podman-9aba605ddecc84e070a55019bb34109c5d5fd9b6.zip
Remove dependency on kubernetes
podman parse and attach were using a very small portion of the kubernetes code but using it caused a signficant increase in binary size. Signed-off-by: baude <bbaude@redhat.com> Closes: #559 Approved by: rhatdan
Diffstat (limited to 'vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime_cache.go')
-rw-r--r--vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime_cache.go96
1 files changed, 0 insertions, 96 deletions
diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime_cache.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime_cache.go
deleted file mode 100644
index d15852f88..000000000
--- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime_cache.go
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-Copyright 2015 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 container
-
-import (
- "sync"
- "time"
-)
-
-var (
- // TODO(yifan): Maybe set the them as parameters for NewCache().
- defaultCachePeriod = time.Second * 2
-)
-
-type RuntimeCache interface {
- GetPods() ([]*Pod, error)
- ForceUpdateIfOlder(time.Time) error
-}
-
-type podsGetter interface {
- GetPods(bool) ([]*Pod, error)
-}
-
-// NewRuntimeCache creates a container runtime cache.
-func NewRuntimeCache(getter podsGetter) (RuntimeCache, error) {
- return &runtimeCache{
- getter: getter,
- }, nil
-}
-
-// runtimeCache caches a list of pods. It records a timestamp (cacheTime) right
-// before updating the pods, so the timestamp is at most as new as the pods
-// (and can be slightly older). The timestamp always moves forward. Callers are
-// expected not to modify the pods returned from GetPods.
-type runtimeCache struct {
- sync.Mutex
- // The underlying container runtime used to update the cache.
- getter podsGetter
- // Last time when cache was updated.
- cacheTime time.Time
- // The content of the cache.
- pods []*Pod
-}
-
-// GetPods returns the cached pods if they are not outdated; otherwise, it
-// retrieves the latest pods and return them.
-func (r *runtimeCache) GetPods() ([]*Pod, error) {
- r.Lock()
- defer r.Unlock()
- if time.Since(r.cacheTime) > defaultCachePeriod {
- if err := r.updateCache(); err != nil {
- return nil, err
- }
- }
- return r.pods, nil
-}
-
-func (r *runtimeCache) ForceUpdateIfOlder(minExpectedCacheTime time.Time) error {
- r.Lock()
- defer r.Unlock()
- if r.cacheTime.Before(minExpectedCacheTime) {
- return r.updateCache()
- }
- return nil
-}
-
-func (r *runtimeCache) updateCache() error {
- pods, timestamp, err := r.getPodsWithTimestamp()
- if err != nil {
- return err
- }
- r.pods, r.cacheTime = pods, timestamp
- return nil
-}
-
-// getPodsWithTimestamp records a timestamp and retrieves pods from the getter.
-func (r *runtimeCache) getPodsWithTimestamp() ([]*Pod, time.Time, error) {
- // Always record the timestamp before getting the pods to avoid stale pods.
- timestamp := time.Now()
- pods, err := r.getter.GetPods(false)
- return pods, timestamp, err
-}