mirror of
https://github.com/niusmallnan/steve.git
synced 2025-08-28 01:31:37 +00:00
Update vendor
This commit is contained in:
parent
4c13c6bd95
commit
7395e5b8c4
4
go.mod
4
go.mod
@ -12,8 +12,8 @@ require (
|
||||
github.com/json-iterator/go v1.1.9 // indirect
|
||||
github.com/pkg/errors v0.8.1
|
||||
github.com/rancher/dynamiclistener v0.2.1-0.20200213165308-111c5b43e932
|
||||
github.com/rancher/wrangler v0.5.1-0.20200312201919-371ff2551072
|
||||
github.com/rancher/wrangler-api v0.4.1
|
||||
github.com/rancher/wrangler v0.5.1
|
||||
github.com/rancher/wrangler-api v0.5.0
|
||||
github.com/sirupsen/logrus v1.4.2
|
||||
github.com/stretchr/testify v1.4.0
|
||||
github.com/urfave/cli v1.22.2
|
||||
|
11
go.sum
11
go.sum
@ -402,13 +402,12 @@ github.com/rancher/dynamiclistener v0.2.1-0.20200213165308-111c5b43e932 h1:W+guy
|
||||
github.com/rancher/dynamiclistener v0.2.1-0.20200213165308-111c5b43e932/go.mod h1:9WusTANoiRr8cDWCTtf5txieulezHbpv4vhLADPp0zU=
|
||||
github.com/rancher/wrangler v0.1.4 h1:bdzBw4H9JKQhXPBPNp4eHbmrkA24+VII865VLiVWcw8=
|
||||
github.com/rancher/wrangler v0.1.4/go.mod h1:EYP7cqpg42YqElaCm+U9ieSrGQKAXxUH5xsr+XGpWyE=
|
||||
github.com/rancher/wrangler v0.4.0 h1:iLvuJcZkd38E3RGG74dFMMNEju0PeTzfT1PQiv5okVU=
|
||||
github.com/rancher/wrangler v0.4.0/go.mod h1:1cR91WLhZgkZ+U4fV9nVuXqKurWbgXcIReU4wnQvTN8=
|
||||
github.com/rancher/wrangler v0.5.1-0.20200312201919-371ff2551072 h1:QkoQGlzVB9LasBERP+RQ/BC+3ANtjn9Qlc2+PpwFrYc=
|
||||
github.com/rancher/wrangler v0.5.1-0.20200312201919-371ff2551072/go.mod h1:txHSBkPtVgNH/0pUCvdP0Ak0HptAOc9ffBmFxQnL4z4=
|
||||
github.com/rancher/wrangler v0.5.0/go.mod h1:txHSBkPtVgNH/0pUCvdP0Ak0HptAOc9ffBmFxQnL4z4=
|
||||
github.com/rancher/wrangler v0.5.1 h1:1H3jnVjpXzOxzuYPcn7PJ60KXGkaC0iWMhVqHliwfcQ=
|
||||
github.com/rancher/wrangler v0.5.1/go.mod h1:txHSBkPtVgNH/0pUCvdP0Ak0HptAOc9ffBmFxQnL4z4=
|
||||
github.com/rancher/wrangler-api v0.2.0/go.mod h1:zTPdNLZO07KvRaVOx6XQbKBSV55Fnn4s7nqmrMPJqd8=
|
||||
github.com/rancher/wrangler-api v0.4.1 h1:bwy6BbdCEq+zQrWmy9L8XXcGEQ/mbeuQ2q1kfk8fo3M=
|
||||
github.com/rancher/wrangler-api v0.4.1/go.mod h1:X+dwYUrZe9q7u9manPJf2ZF8OvP0L7AQ0CuFaqtZO0s=
|
||||
github.com/rancher/wrangler-api v0.5.0 h1:ScVozf5SjRLW0UzOka9xzdlTJ99vLR/Gbk4/kIY49GY=
|
||||
github.com/rancher/wrangler-api v0.5.0/go.mod h1:Ne7fjNRBDdUYPqltLUCW8eiaQwuKXIyAJH6wsuGK80w=
|
||||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
|
@ -233,6 +233,7 @@ func (c *customResourceDefinitionCache) GetByIndex(indexName, key string) (resul
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1beta1.CustomResourceDefinition, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1beta1.CustomResourceDefinition))
|
||||
}
|
||||
|
@ -233,6 +233,7 @@ func (c *aPIServiceCache) GetByIndex(indexName, key string) (result []*v1.APISer
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.APIService, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.APIService))
|
||||
}
|
||||
|
@ -226,6 +226,7 @@ func (c *configMapCache) GetByIndex(indexName, key string) (result []*v1.ConfigM
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.ConfigMap, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.ConfigMap))
|
||||
}
|
||||
|
@ -226,6 +226,7 @@ func (c *endpointsCache) GetByIndex(indexName, key string) (result []*v1.Endpoin
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Endpoints, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Endpoints))
|
||||
}
|
||||
|
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/event.go
generated
vendored
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/event.go
generated
vendored
@ -226,6 +226,7 @@ func (c *eventCache) GetByIndex(indexName, key string) (result []*v1.Event, err
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Event, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Event))
|
||||
}
|
||||
|
@ -233,6 +233,7 @@ func (c *namespaceCache) GetByIndex(indexName, key string) (result []*v1.Namespa
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Namespace, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Namespace))
|
||||
}
|
||||
|
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/node.go
generated
vendored
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/node.go
generated
vendored
@ -233,6 +233,7 @@ func (c *nodeCache) GetByIndex(indexName, key string) (result []*v1.Node, err er
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Node, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Node))
|
||||
}
|
||||
|
@ -233,6 +233,7 @@ func (c *persistentVolumeClaimCache) GetByIndex(indexName, key string) (result [
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.PersistentVolumeClaim, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.PersistentVolumeClaim))
|
||||
}
|
||||
|
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/pod.go
generated
vendored
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/pod.go
generated
vendored
@ -233,6 +233,7 @@ func (c *podCache) GetByIndex(indexName, key string) (result []*v1.Pod, err erro
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Pod, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Pod))
|
||||
}
|
||||
|
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/secret.go
generated
vendored
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/secret.go
generated
vendored
@ -226,6 +226,7 @@ func (c *secretCache) GetByIndex(indexName, key string) (result []*v1.Secret, er
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Secret, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Secret))
|
||||
}
|
||||
|
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/service.go
generated
vendored
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/core/v1/service.go
generated
vendored
@ -233,6 +233,7 @@ func (c *serviceCache) GetByIndex(indexName, key string) (result []*v1.Service,
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Service, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Service))
|
||||
}
|
||||
|
@ -226,6 +226,7 @@ func (c *serviceAccountCache) GetByIndex(indexName, key string) (result []*v1.Se
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.ServiceAccount, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.ServiceAccount))
|
||||
}
|
||||
|
@ -226,6 +226,7 @@ func (c *clusterRoleCache) GetByIndex(indexName, key string) (result []*v1.Clust
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.ClusterRole, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.ClusterRole))
|
||||
}
|
||||
|
@ -226,6 +226,7 @@ func (c *clusterRoleBindingCache) GetByIndex(indexName, key string) (result []*v
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.ClusterRoleBinding, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.ClusterRoleBinding))
|
||||
}
|
||||
|
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/rbac/v1/role.go
generated
vendored
1
vendor/github.com/rancher/wrangler-api/pkg/generated/controllers/rbac/v1/role.go
generated
vendored
@ -226,6 +226,7 @@ func (c *roleCache) GetByIndex(indexName, key string) (result []*v1.Role, err er
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.Role, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.Role))
|
||||
}
|
||||
|
@ -226,6 +226,7 @@ func (c *roleBindingCache) GetByIndex(indexName, key string) (result []*v1.RoleB
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result = make([]*v1.RoleBinding, 0, len(objs))
|
||||
for _, obj := range objs {
|
||||
result = append(result, obj.(*v1.RoleBinding))
|
||||
}
|
||||
|
22
vendor/github.com/rancher/wrangler/pkg/summary/client/interface.go
generated
vendored
Normal file
22
vendor/github.com/rancher/wrangler/pkg/summary/client/interface.go
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"github.com/rancher/wrangler/pkg/summary"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
)
|
||||
|
||||
type Interface interface {
|
||||
Resource(resource schema.GroupVersionResource) NamespaceableResourceInterface
|
||||
}
|
||||
|
||||
type ResourceInterface interface {
|
||||
List(opts metav1.ListOptions) (*summary.SummarizedObjectList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
type NamespaceableResourceInterface interface {
|
||||
Namespace(string) ResourceInterface
|
||||
ResourceInterface
|
||||
}
|
109
vendor/github.com/rancher/wrangler/pkg/summary/client/simple.go
generated
vendored
Normal file
109
vendor/github.com/rancher/wrangler/pkg/summary/client/simple.go
generated
vendored
Normal file
@ -0,0 +1,109 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"github.com/rancher/wrangler/pkg/summary"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/dynamic"
|
||||
)
|
||||
|
||||
type summaryClient struct {
|
||||
client dynamic.Interface
|
||||
}
|
||||
|
||||
var _ Interface = &summaryClient{}
|
||||
|
||||
func NewForDynamicClient(client dynamic.Interface) Interface {
|
||||
return &summaryClient{client: client}
|
||||
}
|
||||
|
||||
type summaryResourceClient struct {
|
||||
client dynamic.Interface
|
||||
namespace string
|
||||
resource schema.GroupVersionResource
|
||||
}
|
||||
|
||||
func (c *summaryClient) Resource(resource schema.GroupVersionResource) NamespaceableResourceInterface {
|
||||
return &summaryResourceClient{client: c.client, resource: resource}
|
||||
}
|
||||
|
||||
func (c *summaryResourceClient) Namespace(ns string) ResourceInterface {
|
||||
ret := *c
|
||||
ret.namespace = ns
|
||||
return &ret
|
||||
}
|
||||
|
||||
func (c *summaryResourceClient) List(opts metav1.ListOptions) (*summary.SummarizedObjectList, error) {
|
||||
var (
|
||||
u *unstructured.UnstructuredList
|
||||
err error
|
||||
)
|
||||
|
||||
if c.namespace == "" {
|
||||
u, err = c.client.Resource(c.resource).List(opts)
|
||||
} else {
|
||||
u, err = c.client.Resource(c.resource).Namespace(c.namespace).List(opts)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
list := &summary.SummarizedObjectList{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: u.GetKind(),
|
||||
APIVersion: u.GetAPIVersion(),
|
||||
},
|
||||
ListMeta: metav1.ListMeta{
|
||||
ResourceVersion: u.GetResourceVersion(),
|
||||
Continue: u.GetContinue(),
|
||||
RemainingItemCount: u.GetRemainingItemCount(),
|
||||
},
|
||||
}
|
||||
|
||||
for _, obj := range u.Items {
|
||||
list.Items = append(list.Items, *summary.Summarized(&obj))
|
||||
}
|
||||
|
||||
return list, nil
|
||||
}
|
||||
|
||||
func (c *summaryResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
var (
|
||||
resp watch.Interface
|
||||
err error
|
||||
)
|
||||
|
||||
eventChan := make(chan watch.Event)
|
||||
|
||||
if c.namespace == "" {
|
||||
resp, err = c.client.Resource(c.resource).Watch(opts)
|
||||
} else {
|
||||
resp, err = c.client.Resource(c.resource).Namespace(c.namespace).Watch(opts)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
go func() {
|
||||
for event := range resp.ResultChan() {
|
||||
event.Object = summary.Summarized(event.Object)
|
||||
eventChan <- event
|
||||
}
|
||||
}()
|
||||
|
||||
return &watcher{
|
||||
Interface: resp,
|
||||
eventChan: eventChan,
|
||||
}, nil
|
||||
}
|
||||
|
||||
type watcher struct {
|
||||
watch.Interface
|
||||
eventChan chan watch.Event
|
||||
}
|
||||
|
||||
func (w watcher) ResultChan() <-chan watch.Event {
|
||||
return w.eventChan
|
||||
}
|
@ -14,32 +14,32 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package dynamicinformer
|
||||
package informer
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/rancher/wrangler/pkg/summary"
|
||||
"github.com/rancher/wrangler/pkg/summary/client"
|
||||
"github.com/rancher/wrangler/pkg/summary/lister"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/dynamic"
|
||||
"k8s.io/client-go/dynamic/dynamiclister"
|
||||
"k8s.io/client-go/informers"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// NewDynamicSharedInformerFactory constructs a new instance of dynamicSharedInformerFactory for all namespaces.
|
||||
func NewDynamicSharedInformerFactory(client dynamic.Interface, defaultResync time.Duration) DynamicSharedInformerFactory {
|
||||
return NewFilteredDynamicSharedInformerFactory(client, defaultResync, metav1.NamespaceAll, nil)
|
||||
// NewSummarySharedInformerFactory constructs a new instance of summarySharedInformerFactory for all namespaces.
|
||||
func NewSummarySharedInformerFactory(client client.Interface, defaultResync time.Duration) SummarySharedInformerFactory {
|
||||
return NewFilteredSummarySharedInformerFactory(client, defaultResync, metav1.NamespaceAll, nil)
|
||||
}
|
||||
|
||||
// NewFilteredDynamicSharedInformerFactory constructs a new instance of dynamicSharedInformerFactory.
|
||||
// NewFilteredSummarySharedInformerFactory constructs a new instance of summarySharedInformerFactory.
|
||||
// Listers obtained via this factory will be subject to the same filters as specified here.
|
||||
func NewFilteredDynamicSharedInformerFactory(client dynamic.Interface, defaultResync time.Duration, namespace string, tweakListOptions TweakListOptionsFunc) DynamicSharedInformerFactory {
|
||||
return &dynamicSharedInformerFactory{
|
||||
func NewFilteredSummarySharedInformerFactory(client client.Interface, defaultResync time.Duration, namespace string, tweakListOptions TweakListOptionsFunc) SummarySharedInformerFactory {
|
||||
return &summarySharedInformerFactory{
|
||||
client: client,
|
||||
defaultResync: defaultResync,
|
||||
namespace: namespace,
|
||||
@ -49,8 +49,8 @@ func NewFilteredDynamicSharedInformerFactory(client dynamic.Interface, defaultRe
|
||||
}
|
||||
}
|
||||
|
||||
type dynamicSharedInformerFactory struct {
|
||||
client dynamic.Interface
|
||||
type summarySharedInformerFactory struct {
|
||||
client client.Interface
|
||||
defaultResync time.Duration
|
||||
namespace string
|
||||
|
||||
@ -62,9 +62,9 @@ type dynamicSharedInformerFactory struct {
|
||||
tweakListOptions TweakListOptionsFunc
|
||||
}
|
||||
|
||||
var _ DynamicSharedInformerFactory = &dynamicSharedInformerFactory{}
|
||||
var _ SummarySharedInformerFactory = &summarySharedInformerFactory{}
|
||||
|
||||
func (f *dynamicSharedInformerFactory) ForResource(gvr schema.GroupVersionResource) informers.GenericInformer {
|
||||
func (f *summarySharedInformerFactory) ForResource(gvr schema.GroupVersionResource) informers.GenericInformer {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
@ -74,14 +74,14 @@ func (f *dynamicSharedInformerFactory) ForResource(gvr schema.GroupVersionResour
|
||||
return informer
|
||||
}
|
||||
|
||||
informer = NewFilteredDynamicInformer(f.client, gvr, f.namespace, f.defaultResync, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
informer = NewFilteredSummaryInformer(f.client, gvr, f.namespace, f.defaultResync, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
f.informers[key] = informer
|
||||
|
||||
return informer
|
||||
}
|
||||
|
||||
// Start initializes all requested informers.
|
||||
func (f *dynamicSharedInformerFactory) Start(stopCh <-chan struct{}) {
|
||||
func (f *summarySharedInformerFactory) Start(stopCh <-chan struct{}) {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
@ -94,7 +94,7 @@ func (f *dynamicSharedInformerFactory) Start(stopCh <-chan struct{}) {
|
||||
}
|
||||
|
||||
// WaitForCacheSync waits for all started informers' cache were synced.
|
||||
func (f *dynamicSharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool {
|
||||
func (f *summarySharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool {
|
||||
informers := func() map[schema.GroupVersionResource]cache.SharedIndexInformer {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
@ -115,9 +115,9 @@ func (f *dynamicSharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{})
|
||||
return res
|
||||
}
|
||||
|
||||
// NewFilteredDynamicInformer constructs a new informer for a dynamic type.
|
||||
func NewFilteredDynamicInformer(client dynamic.Interface, gvr schema.GroupVersionResource, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions TweakListOptionsFunc) informers.GenericInformer {
|
||||
return &dynamicInformer{
|
||||
// NewFilteredSummaryInformer constructs a new informer for a summary type.
|
||||
func NewFilteredSummaryInformer(client client.Interface, gvr schema.GroupVersionResource, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions TweakListOptionsFunc) informers.GenericInformer {
|
||||
return &summaryInformer{
|
||||
gvr: gvr,
|
||||
informer: cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
@ -134,24 +134,24 @@ func NewFilteredDynamicInformer(client dynamic.Interface, gvr schema.GroupVersio
|
||||
return client.Resource(gvr).Namespace(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&unstructured.Unstructured{},
|
||||
&summary.SummarizedObject{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
type dynamicInformer struct {
|
||||
type summaryInformer struct {
|
||||
informer cache.SharedIndexInformer
|
||||
gvr schema.GroupVersionResource
|
||||
}
|
||||
|
||||
var _ informers.GenericInformer = &dynamicInformer{}
|
||||
var _ informers.GenericInformer = &summaryInformer{}
|
||||
|
||||
func (d *dynamicInformer) Informer() cache.SharedIndexInformer {
|
||||
func (d *summaryInformer) Informer() cache.SharedIndexInformer {
|
||||
return d.informer
|
||||
}
|
||||
|
||||
func (d *dynamicInformer) Lister() cache.GenericLister {
|
||||
return dynamiclister.NewRuntimeObjectShim(dynamiclister.New(d.informer.GetIndexer(), d.gvr))
|
||||
func (d *summaryInformer) Lister() cache.GenericLister {
|
||||
return lister.NewRuntimeObjectShim(lister.New(d.informer.GetIndexer(), d.gvr))
|
||||
}
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package dynamicinformer
|
||||
package informer
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@ -22,8 +22,8 @@ import (
|
||||
"k8s.io/client-go/informers"
|
||||
)
|
||||
|
||||
// DynamicSharedInformerFactory provides access to a shared informer and lister for dynamic client
|
||||
type DynamicSharedInformerFactory interface {
|
||||
// SummarySharedInformerFactory provides access to a shared informer and lister for dynamic client
|
||||
type SummarySharedInformerFactory interface {
|
||||
Start(stopCh <-chan struct{})
|
||||
ForResource(gvr schema.GroupVersionResource) informers.GenericInformer
|
||||
WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool
|
@ -14,19 +14,19 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package dynamiclister
|
||||
package lister
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"github.com/rancher/wrangler/pkg/summary"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
)
|
||||
|
||||
// Lister helps list resources.
|
||||
type Lister interface {
|
||||
// List lists all resources in the indexer.
|
||||
List(selector labels.Selector) (ret []*unstructured.Unstructured, err error)
|
||||
List(selector labels.Selector) (ret []*summary.SummarizedObject, err error)
|
||||
// Get retrieves a resource from the indexer with the given name
|
||||
Get(name string) (*unstructured.Unstructured, error)
|
||||
Get(name string) (*summary.SummarizedObject, error)
|
||||
// Namespace returns an object that can list and get resources in a given namespace.
|
||||
Namespace(namespace string) NamespaceLister
|
||||
}
|
||||
@ -34,7 +34,7 @@ type Lister interface {
|
||||
// NamespaceLister helps list and get resources.
|
||||
type NamespaceLister interface {
|
||||
// List lists all resources in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*unstructured.Unstructured, err error)
|
||||
List(selector labels.Selector) (ret []*summary.SummarizedObject, err error)
|
||||
// Get retrieves a resource from the indexer for a given namespace and name.
|
||||
Get(name string) (*unstructured.Unstructured, error)
|
||||
Get(name string) (*summary.SummarizedObject, error)
|
||||
}
|
@ -14,40 +14,40 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package dynamiclister
|
||||
package lister
|
||||
|
||||
import (
|
||||
"github.com/rancher/wrangler/pkg/summary"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
var _ Lister = &dynamicLister{}
|
||||
var _ NamespaceLister = &dynamicNamespaceLister{}
|
||||
var _ Lister = &summaryLister{}
|
||||
var _ NamespaceLister = &summaryNamespaceLister{}
|
||||
|
||||
// dynamicLister implements the Lister interface.
|
||||
type dynamicLister struct {
|
||||
// summaryLister implements the Lister interface.
|
||||
type summaryLister struct {
|
||||
indexer cache.Indexer
|
||||
gvr schema.GroupVersionResource
|
||||
}
|
||||
|
||||
// New returns a new Lister.
|
||||
func New(indexer cache.Indexer, gvr schema.GroupVersionResource) Lister {
|
||||
return &dynamicLister{indexer: indexer, gvr: gvr}
|
||||
return &summaryLister{indexer: indexer, gvr: gvr}
|
||||
}
|
||||
|
||||
// List lists all resources in the indexer.
|
||||
func (l *dynamicLister) List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) {
|
||||
func (l *summaryLister) List(selector labels.Selector) (ret []*summary.SummarizedObject, err error) {
|
||||
err = cache.ListAll(l.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*unstructured.Unstructured))
|
||||
ret = append(ret, m.(*summary.SummarizedObject))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves a resource from the indexer with the given name
|
||||
func (l *dynamicLister) Get(name string) (*unstructured.Unstructured, error) {
|
||||
func (l *summaryLister) Get(name string) (*summary.SummarizedObject, error) {
|
||||
obj, exists, err := l.indexer.GetByKey(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -55,31 +55,31 @@ func (l *dynamicLister) Get(name string) (*unstructured.Unstructured, error) {
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(l.gvr.GroupResource(), name)
|
||||
}
|
||||
return obj.(*unstructured.Unstructured), nil
|
||||
return obj.(*summary.SummarizedObject), nil
|
||||
}
|
||||
|
||||
// Namespace returns an object that can list and get resources from a given namespace.
|
||||
func (l *dynamicLister) Namespace(namespace string) NamespaceLister {
|
||||
return &dynamicNamespaceLister{indexer: l.indexer, namespace: namespace, gvr: l.gvr}
|
||||
func (l *summaryLister) Namespace(namespace string) NamespaceLister {
|
||||
return &summaryNamespaceLister{indexer: l.indexer, namespace: namespace, gvr: l.gvr}
|
||||
}
|
||||
|
||||
// dynamicNamespaceLister implements the NamespaceLister interface.
|
||||
type dynamicNamespaceLister struct {
|
||||
// summaryNamespaceLister implements the NamespaceLister interface.
|
||||
type summaryNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
gvr schema.GroupVersionResource
|
||||
}
|
||||
|
||||
// List lists all resources in the indexer for a given namespace.
|
||||
func (l *dynamicNamespaceLister) List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) {
|
||||
func (l *summaryNamespaceLister) List(selector labels.Selector) (ret []*summary.SummarizedObject, err error) {
|
||||
err = cache.ListAllByNamespace(l.indexer, l.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*unstructured.Unstructured))
|
||||
ret = append(ret, m.(*summary.SummarizedObject))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves a resource from the indexer for a given namespace and name.
|
||||
func (l *dynamicNamespaceLister) Get(name string) (*unstructured.Unstructured, error) {
|
||||
func (l *summaryNamespaceLister) Get(name string) (*summary.SummarizedObject, error) {
|
||||
obj, exists, err := l.indexer.GetByKey(l.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -87,5 +87,5 @@ func (l *dynamicNamespaceLister) Get(name string) (*unstructured.Unstructured, e
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(l.gvr.GroupResource(), name)
|
||||
}
|
||||
return obj.(*unstructured.Unstructured), nil
|
||||
return obj.(*summary.SummarizedObject), nil
|
||||
}
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package dynamiclister
|
||||
package lister
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
@ -22,22 +22,22 @@ import (
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
var _ cache.GenericLister = &dynamicListerShim{}
|
||||
var _ cache.GenericNamespaceLister = &dynamicNamespaceListerShim{}
|
||||
var _ cache.GenericLister = &summaryListerShim{}
|
||||
var _ cache.GenericNamespaceLister = &summaryNamespaceListerShim{}
|
||||
|
||||
// dynamicListerShim implements the cache.GenericLister interface.
|
||||
type dynamicListerShim struct {
|
||||
// summaryListerShim implements the cache.GenericLister interface.
|
||||
type summaryListerShim struct {
|
||||
lister Lister
|
||||
}
|
||||
|
||||
// NewRuntimeObjectShim returns a new shim for Lister.
|
||||
// It wraps Lister so that it implements cache.GenericLister interface
|
||||
func NewRuntimeObjectShim(lister Lister) cache.GenericLister {
|
||||
return &dynamicListerShim{lister: lister}
|
||||
return &summaryListerShim{lister: lister}
|
||||
}
|
||||
|
||||
// List will return all objects across namespaces
|
||||
func (s *dynamicListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) {
|
||||
func (s *summaryListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) {
|
||||
objs, err := s.lister.List(selector)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -51,24 +51,24 @@ func (s *dynamicListerShim) List(selector labels.Selector) (ret []runtime.Object
|
||||
}
|
||||
|
||||
// Get will attempt to retrieve assuming that name==key
|
||||
func (s *dynamicListerShim) Get(name string) (runtime.Object, error) {
|
||||
func (s *summaryListerShim) Get(name string) (runtime.Object, error) {
|
||||
return s.lister.Get(name)
|
||||
}
|
||||
|
||||
func (s *dynamicListerShim) ByNamespace(namespace string) cache.GenericNamespaceLister {
|
||||
return &dynamicNamespaceListerShim{
|
||||
func (s *summaryListerShim) ByNamespace(namespace string) cache.GenericNamespaceLister {
|
||||
return &summaryNamespaceListerShim{
|
||||
namespaceLister: s.lister.Namespace(namespace),
|
||||
}
|
||||
}
|
||||
|
||||
// dynamicNamespaceListerShim implements the NamespaceLister interface.
|
||||
// summaryNamespaceListerShim implements the NamespaceLister interface.
|
||||
// It wraps NamespaceLister so that it implements cache.GenericNamespaceLister interface
|
||||
type dynamicNamespaceListerShim struct {
|
||||
type summaryNamespaceListerShim struct {
|
||||
namespaceLister NamespaceLister
|
||||
}
|
||||
|
||||
// List will return all objects in this namespace
|
||||
func (ns *dynamicNamespaceListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) {
|
||||
func (ns *summaryNamespaceListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) {
|
||||
objs, err := ns.namespaceLister.List(selector)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -82,6 +82,6 @@ func (ns *dynamicNamespaceListerShim) List(selector labels.Selector) (ret []runt
|
||||
}
|
||||
|
||||
// Get will attempt to retrieve by namespace and name
|
||||
func (ns *dynamicNamespaceListerShim) Get(name string) (runtime.Object, error) {
|
||||
func (ns *summaryNamespaceListerShim) Get(name string) (runtime.Object, error) {
|
||||
return ns.namespaceLister.Get(name)
|
||||
}
|
98
vendor/github.com/rancher/wrangler/pkg/summary/summarized.go
generated
vendored
Normal file
98
vendor/github.com/rancher/wrangler/pkg/summary/summarized.go
generated
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
package summary
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/api/meta"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
type SummarizedObject struct {
|
||||
metav1.PartialObjectMetadata
|
||||
Summary
|
||||
}
|
||||
|
||||
type SummarizedObjectList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
|
||||
Items []SummarizedObject `json:"items" protobuf:"bytes,2,rep,name=items"`
|
||||
}
|
||||
|
||||
func Summarized(u runtime.Object) *SummarizedObject {
|
||||
if s, ok := u.(*SummarizedObject); ok {
|
||||
return s
|
||||
}
|
||||
|
||||
s := &SummarizedObject{
|
||||
Summary: Summarize(u),
|
||||
}
|
||||
s.APIVersion, s.Kind = u.GetObjectKind().GroupVersionKind().ToAPIVersionAndKind()
|
||||
|
||||
meta, err := meta.Accessor(u)
|
||||
if err == nil {
|
||||
s.Name = meta.GetName()
|
||||
s.Namespace = meta.GetNamespace()
|
||||
s.Generation = meta.GetGeneration()
|
||||
s.UID = meta.GetUID()
|
||||
s.ResourceVersion = meta.GetResourceVersion()
|
||||
s.CreationTimestamp = meta.GetCreationTimestamp()
|
||||
s.DeletionTimestamp = meta.GetDeletionTimestamp()
|
||||
s.Labels = meta.GetLabels()
|
||||
s.Annotations = meta.GetAnnotations()
|
||||
}
|
||||
|
||||
return s
|
||||
}
|
||||
|
||||
func (in *SummarizedObjectList) DeepCopyInto(out *SummarizedObjectList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]SummarizedObject, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (in *SummarizedObjectList) DeepCopy() *SummarizedObjectList {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(SummarizedObjectList)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
func (in *SummarizedObjectList) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (in *SummarizedObject) DeepCopyInto(out *SummarizedObject) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.ObjectMeta = *in.ObjectMeta.DeepCopy()
|
||||
out.Summary = *in.Summary.DeepCopy()
|
||||
return
|
||||
}
|
||||
|
||||
func (in *SummarizedObject) DeepCopy() *SummarizedObject {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(SummarizedObject)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
func (in *SummarizedObject) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
}
|
49
vendor/github.com/rancher/wrangler/pkg/summary/summary.go
generated
vendored
49
vendor/github.com/rancher/wrangler/pkg/summary/summary.go
generated
vendored
@ -3,6 +3,8 @@ package summary
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
|
||||
"github.com/rancher/wrangler/pkg/data"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
)
|
||||
@ -14,6 +16,42 @@ type Summary struct {
|
||||
Message []string
|
||||
}
|
||||
|
||||
func (s Summary) String() string {
|
||||
if !s.Transitioning && !s.Error {
|
||||
return s.State
|
||||
}
|
||||
var msg string
|
||||
if s.Transitioning {
|
||||
msg = "[progressing"
|
||||
}
|
||||
if s.Error {
|
||||
if len(msg) > 0 {
|
||||
msg += ",error]"
|
||||
} else {
|
||||
msg = "error]"
|
||||
}
|
||||
} else {
|
||||
msg += "]"
|
||||
}
|
||||
if len(s.Message) > 0 {
|
||||
msg = msg + " " + s.Message[0]
|
||||
}
|
||||
return msg
|
||||
}
|
||||
|
||||
func (s Summary) IsReady() bool {
|
||||
return !s.Error && !s.Transitioning
|
||||
}
|
||||
|
||||
func (s *Summary) DeepCopy() *Summary {
|
||||
v := *s
|
||||
return &v
|
||||
}
|
||||
|
||||
func (s *Summary) DeepCopyInto(v *Summary) {
|
||||
*v = *s
|
||||
}
|
||||
|
||||
func dedupMessage(messages []string) []string {
|
||||
if len(messages) <= 1 {
|
||||
return messages
|
||||
@ -33,12 +71,21 @@ func dedupMessage(messages []string) []string {
|
||||
return result
|
||||
}
|
||||
|
||||
func Summarize(unstr *unstructured.Unstructured) Summary {
|
||||
func Summarize(runtimeObj runtime.Object) Summary {
|
||||
var (
|
||||
obj data.Object
|
||||
summary Summary
|
||||
)
|
||||
|
||||
if s, ok := runtimeObj.(*SummarizedObject); ok {
|
||||
return s.Summary
|
||||
}
|
||||
|
||||
unstr, ok := runtimeObj.(*unstructured.Unstructured)
|
||||
if !ok {
|
||||
return summary
|
||||
}
|
||||
|
||||
if unstr != nil {
|
||||
obj = unstr.Object
|
||||
}
|
||||
|
9
vendor/modules.txt
vendored
9
vendor/modules.txt
vendored
@ -60,7 +60,7 @@ github.com/rancher/dynamiclistener/server
|
||||
github.com/rancher/dynamiclistener/storage/file
|
||||
github.com/rancher/dynamiclistener/storage/kubernetes
|
||||
github.com/rancher/dynamiclistener/storage/memory
|
||||
# github.com/rancher/wrangler v0.5.1-0.20200312201919-371ff2551072
|
||||
# github.com/rancher/wrangler v0.5.1
|
||||
github.com/rancher/wrangler/pkg/apply
|
||||
github.com/rancher/wrangler/pkg/apply/injectors
|
||||
github.com/rancher/wrangler/pkg/broadcast
|
||||
@ -85,7 +85,10 @@ github.com/rancher/wrangler/pkg/signals
|
||||
github.com/rancher/wrangler/pkg/slice
|
||||
github.com/rancher/wrangler/pkg/start
|
||||
github.com/rancher/wrangler/pkg/summary
|
||||
# github.com/rancher/wrangler-api v0.4.1
|
||||
github.com/rancher/wrangler/pkg/summary/client
|
||||
github.com/rancher/wrangler/pkg/summary/informer
|
||||
github.com/rancher/wrangler/pkg/summary/lister
|
||||
# github.com/rancher/wrangler-api v0.5.0
|
||||
github.com/rancher/wrangler-api/pkg/generated/controllers/apiextensions.k8s.io
|
||||
github.com/rancher/wrangler-api/pkg/generated/controllers/apiextensions.k8s.io/v1beta1
|
||||
github.com/rancher/wrangler-api/pkg/generated/controllers/apiregistration.k8s.io
|
||||
@ -266,8 +269,6 @@ k8s.io/apiserver/plugin/pkg/authenticator/token/webhook
|
||||
# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => k8s.io/client-go v0.17.2
|
||||
k8s.io/client-go/discovery
|
||||
k8s.io/client-go/dynamic
|
||||
k8s.io/client-go/dynamic/dynamicinformer
|
||||
k8s.io/client-go/dynamic/dynamiclister
|
||||
k8s.io/client-go/informers
|
||||
k8s.io/client-go/informers/admissionregistration
|
||||
k8s.io/client-go/informers/admissionregistration/v1
|
||||
|
Loading…
Reference in New Issue
Block a user