1
0
mirror of https://github.com/rancher/rke.git synced 2025-09-04 16:30:02 +00:00

vendor norman

This commit is contained in:
Sebastiaan van Steenis
2020-03-12 11:39:59 +01:00
committed by Denise
parent a29be5b63f
commit 900c273932
7 changed files with 67 additions and 19 deletions

View File

@@ -1,12 +1,58 @@
package controller
import (
"os"
"reflect"
"strings"
"github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
)
type ObjectClusterName interface {
ObjClusterName() string
}
func ObjectInCluster(cluster string, obj interface{}) bool {
// Check if the object implements the interface, this is best case and
// what objects should strive to be
if o, ok := obj.(ObjectClusterName); ok {
return o.ObjClusterName() == cluster
}
// For types outside of rancher, attempt to check the anno, then use the namespace
// This is much better than using the reflect hole below
switch v := obj.(type) {
case *corev1.Secret:
if c, ok := v.Annotations["field.cattle.io/projectId"]; ok {
if parts := strings.SplitN(c, ":", 2); len(parts) == 2 {
return cluster == parts[0]
}
}
return v.Namespace == cluster
case *corev1.Namespace:
if c, ok := v.Annotations["field.cattle.io/projectId"]; ok {
if parts := strings.SplitN(c, ":", 2); len(parts) == 2 {
return cluster == parts[0]
}
}
return v.Namespace == cluster
case *corev1.Node:
if c, ok := v.Annotations["field.cattle.io/projectId"]; ok {
if parts := strings.SplitN(c, ":", 2); len(parts) == 2 {
return cluster == parts[0]
}
}
return v.Namespace == cluster
}
// Seeing this message means something needs to be done with the type, see comments above
if dm := os.Getenv("CATTLE_DEV_MODE"); dm != "" {
logrus.Errorf("ObjectClusterName not implemented by type %T", obj)
}
var clusterName string
if c := getValue(obj, "ClusterName"); c.IsValid() {
clusterName = c.String()
}

View File

@@ -224,14 +224,14 @@ func (g *genericController) sync(ctx context.Context) (retErr error) {
DeleteFunc: g.queueObject,
})
logrus.Debugf("Syncing %s Controller", g.name)
logrus.Tracef("Syncing %s Controller", g.name)
go g.informer.Run(ctx.Done())
if !cache.WaitForCacheSync(ctx.Done(), g.informer.HasSynced) {
return fmt.Errorf("failed to sync controller %s", g.name)
}
logrus.Debugf("Syncing %s Controller Done", g.name)
logrus.Tracef("Syncing %s Controller Done", g.name)
g.synced = true
return nil
@@ -300,7 +300,7 @@ func (g *genericController) processNextWorkItem() bool {
}
if _, ok := checkErr.(*ForgetError); err == nil || ok {
if ok {
logrus.Debugf("%v %v completed with dropped err: %v", g.name, key, err)
logrus.Tracef("%v %v completed with dropped err: %v", g.name, key, err)
}
g.queue.Forget(key)
return true
@@ -381,7 +381,7 @@ func (g *genericController) syncHandler(key interface{}) (err error) {
continue
}
logrus.Debugf("%s calling handler %s %s", g.name, handler.name, s)
logrus.Tracef("%s calling handler %s %s", g.name, handler.name, s)
metrics.IncTotalHandlerExecution(g.name, handler.name)
var newObj interface{}
if newObj, err = handler.handler(s, obj); err != nil {

View File

@@ -127,7 +127,7 @@ func (p *ObjectClient) Create(o runtime.Object) (runtime.Object, error) {
}
}
result := p.Factory.Object()
logrus.Debugf("REST CREATE %s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, ns, p.resource.Name)
logrus.Tracef("REST CREATE %s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, ns, p.resource.Name)
err := p.restClient.Post().
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
NamespaceIfScoped(ns, p.resource.Namespaced).
@@ -151,7 +151,7 @@ func (p *ObjectClient) GetNamespaced(namespace, name string, opts metav1.GetOpti
Name(name).
Do().
Into(result)
logrus.Debugf("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name, name)
logrus.Tracef("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name, name)
return result, err
}
@@ -166,7 +166,7 @@ func (p *ObjectClient) Get(name string, opts metav1.GetOptions) (runtime.Object,
Name(name).
Do().
Into(result)
logrus.Debugf("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name, name)
logrus.Tracef("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name, name)
return result, err
}
@@ -179,7 +179,7 @@ func (p *ObjectClient) Update(name string, o runtime.Object) (runtime.Object, er
if len(name) == 0 {
return result, errors.New("object missing name")
}
logrus.Debugf("REST UPDATE %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, ns, p.resource.Name, name)
logrus.Tracef("REST UPDATE %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, ns, p.resource.Name, name)
err := p.restClient.Put().
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
NamespaceIfScoped(ns, p.resource.Namespaced).
@@ -197,7 +197,7 @@ func (p *ObjectClient) DeleteNamespaced(namespace, name string, opts *metav1.Del
if namespace != "" {
req = req.Namespace(namespace)
}
logrus.Debugf("REST DELETE %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name, name)
logrus.Tracef("REST DELETE %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name, name)
return req.Resource(p.resource.Name).
Name(name).
Body(opts).
@@ -206,7 +206,7 @@ func (p *ObjectClient) DeleteNamespaced(namespace, name string, opts *metav1.Del
}
func (p *ObjectClient) Delete(name string, opts *metav1.DeleteOptions) error {
logrus.Debugf("REST DELETE %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name, name)
logrus.Tracef("REST DELETE %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name, name)
return p.restClient.Delete().
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
NamespaceIfScoped(p.ns, p.resource.Namespaced).
@@ -219,7 +219,7 @@ func (p *ObjectClient) Delete(name string, opts *metav1.DeleteOptions) error {
func (p *ObjectClient) List(opts metav1.ListOptions) (runtime.Object, error) {
result := p.Factory.List()
logrus.Debugf("REST LIST %s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name)
logrus.Tracef("REST LIST %s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name)
return result, p.restClient.Get().
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
NamespaceIfScoped(p.ns, p.resource.Namespaced).
@@ -231,7 +231,7 @@ func (p *ObjectClient) List(opts metav1.ListOptions) (runtime.Object, error) {
func (p *ObjectClient) ListNamespaced(namespace string, opts metav1.ListOptions) (runtime.Object, error) {
result := p.Factory.List()
logrus.Debugf("REST LIST %s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name)
logrus.Tracef("REST LIST %s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name)
return result, p.restClient.Get().
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
NamespaceIfScoped(namespace, p.resource.Namespaced).

View File

@@ -153,11 +153,11 @@ func (s *Schemas) importType(version *APIVersion, t reflect.Type, overrides ...r
}
if s, ok := s.processingTypes[t]; ok {
logrus.Debugf("Returning half built schema %s for %v", typeName, t)
logrus.Tracef("Returning half built schema %s for %v", typeName, t)
return s, nil
}
logrus.Debugf("Inspecting schema %s for %v", typeName, t)
logrus.Tracef("Inspecting schema %s for %v", typeName, t)
schema, err := s.newSchemaFromType(version, t, typeName)
if err != nil {
@@ -274,11 +274,11 @@ func (s *Schemas) readFields(schema *Schema, t reflect.Type) error {
}
if blacklistNames[fieldName] {
logrus.Debugf("Ignoring blacklisted field %s.%s for %v", schema.ID, fieldName, field)
logrus.Tracef("Ignoring blacklisted field %s.%s for %v", schema.ID, fieldName, field)
continue
}
logrus.Debugf("Inspecting field %s.%s for %v", schema.ID, fieldName, field)
logrus.Tracef("Inspecting field %s.%s for %v", schema.ID, fieldName, field)
schemaField := Field{
Create: true,
@@ -336,7 +336,7 @@ func (s *Schemas) readFields(schema *Schema, t reflect.Type) error {
}
}
logrus.Debugf("Setting field %s.%s: %#v", schema.ID, fieldName, schemaField)
logrus.Tracef("Setting field %s.%s: %#v", schema.ID, fieldName, schemaField)
schema.ResourceFields[fieldName] = schemaField
}