From f24f475bfe6cb4fcc9894797622bebd92cf9898a Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Mon, 26 Oct 2015 14:04:21 -0500 Subject: [PATCH] Move podStoreAdapter into podstoreadapter.go --- contrib/mesos/pkg/scheduler/plugin.go | 39 ------------ .../mesos/pkg/scheduler/podstoreadapter.go | 62 +++++++++++++++++++ 2 files changed, 62 insertions(+), 39 deletions(-) create mode 100644 contrib/mesos/pkg/scheduler/podstoreadapter.go diff --git a/contrib/mesos/pkg/scheduler/plugin.go b/contrib/mesos/pkg/scheduler/plugin.go index 5b8edb68a10..6289068b68e 100644 --- a/contrib/mesos/pkg/scheduler/plugin.go +++ b/contrib/mesos/pkg/scheduler/plugin.go @@ -360,42 +360,3 @@ func createAllPodsLW(cl *client.Client) *cache.ListWatch { return cache.NewListWatchFromClient(cl, "pods", api.NamespaceAll, parseSelectorOrDie("")) } -// Consumes *api.Pod, produces *Pod; the k8s reflector wants to push *api.Pod -// objects at us, but we want to store more flexible (Pod) type defined in -// this package. The adapter implementation facilitates this. It's a little -// hackish since the object type going in is different than the object type -// coming out -- you've been warned. -type podStoreAdapter struct { - queue.FIFO -} - -func (psa *podStoreAdapter) Add(obj interface{}) error { - pod := obj.(*api.Pod) - return psa.FIFO.Add(&queuer.Pod{Pod: pod}) -} - -func (psa *podStoreAdapter) Update(obj interface{}) error { - pod := obj.(*api.Pod) - return psa.FIFO.Update(&queuer.Pod{Pod: pod}) -} - -func (psa *podStoreAdapter) Delete(obj interface{}) error { - pod := obj.(*api.Pod) - return psa.FIFO.Delete(&queuer.Pod{Pod: pod}) -} - -func (psa *podStoreAdapter) Get(obj interface{}) (interface{}, bool, error) { - pod := obj.(*api.Pod) - return psa.FIFO.Get(&queuer.Pod{Pod: pod}) -} - -// Replace will delete the contents of the store, using instead the -// given map. This store implementation does NOT take ownership of the map. -func (psa *podStoreAdapter) Replace(objs []interface{}, resourceVersion string) error { - newobjs := make([]interface{}, len(objs)) - for i, v := range objs { - pod := v.(*api.Pod) - newobjs[i] = &queuer.Pod{Pod: pod} - } - return psa.FIFO.Replace(newobjs, resourceVersion) -} diff --git a/contrib/mesos/pkg/scheduler/podstoreadapter.go b/contrib/mesos/pkg/scheduler/podstoreadapter.go new file mode 100644 index 00000000000..45555b56bb9 --- /dev/null +++ b/contrib/mesos/pkg/scheduler/podstoreadapter.go @@ -0,0 +1,62 @@ +/* +Copyright 2015 The Kubernetes Authors All rights reserved. + +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 scheduler + +import ( + "k8s.io/kubernetes/contrib/mesos/pkg/queue" + "k8s.io/kubernetes/contrib/mesos/pkg/scheduler/queuer" + "k8s.io/kubernetes/pkg/api" +) + +// Consumes *api.Pod, produces *Pod; the k8s reflector wants to push *api.Pod +// objects at us, but we want to store more flexible (Pod) type defined in +// this package. The adapter implementation facilitates this. It's a little +// hackish since the object type going in is different than the object type +// coming out -- you've been warned. +type podStoreAdapter struct { + queue.FIFO +} + +func (psa *podStoreAdapter) Add(obj interface{}) error { + pod := obj.(*api.Pod) + return psa.FIFO.Add(&queuer.Pod{Pod: pod}) +} + +func (psa *podStoreAdapter) Update(obj interface{}) error { + pod := obj.(*api.Pod) + return psa.FIFO.Update(&queuer.Pod{Pod: pod}) +} + +func (psa *podStoreAdapter) Delete(obj interface{}) error { + pod := obj.(*api.Pod) + return psa.FIFO.Delete(&queuer.Pod{Pod: pod}) +} + +func (psa *podStoreAdapter) Get(obj interface{}) (interface{}, bool, error) { + pod := obj.(*api.Pod) + return psa.FIFO.Get(&queuer.Pod{Pod: pod}) +} + +// Replace will delete the contents of the store, using instead the +// given map. This store implementation does NOT take ownership of the map. +func (psa *podStoreAdapter) Replace(objs []interface{}, resourceVersion string) error { + newobjs := make([]interface{}, len(objs)) + for i, v := range objs { + pod := v.(*api.Pod) + newobjs[i] = &queuer.Pod{Pod: pod} + } + return psa.FIFO.Replace(newobjs, resourceVersion) +} \ No newline at end of file