mirror of
https://github.com/rancher/types.git
synced 2025-08-31 21:00:16 +00:00
Update vendor
This commit is contained in:
19
vendor/github.com/rancher/norman/clientbase/client.go
generated
vendored
19
vendor/github.com/rancher/norman/clientbase/client.go
generated
vendored
@@ -1,19 +0,0 @@
|
||||
package clientbase
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/rancher/norman/types"
|
||||
)
|
||||
|
||||
type APIBaseClient struct {
|
||||
Ops *APIOperations
|
||||
Opts *ClientOpts
|
||||
Types map[string]types.Schema
|
||||
}
|
||||
|
||||
type APIOperations struct {
|
||||
Opts *ClientOpts
|
||||
Types map[string]types.Schema
|
||||
Client *http.Client
|
||||
}
|
19
vendor/github.com/rancher/norman/clientbase/common.go
generated
vendored
19
vendor/github.com/rancher/norman/clientbase/common.go
generated
vendored
@@ -28,6 +28,25 @@ var (
|
||||
dialer = &websocket.Dialer{}
|
||||
)
|
||||
|
||||
type APIBaseClientInterface interface {
|
||||
Websocket(url string, headers map[string][]string) (*websocket.Conn, *http.Response, error)
|
||||
List(schemaType string, opts *types.ListOpts, respObject interface{}) error
|
||||
Post(url string, createObj interface{}, respObject interface{}) error
|
||||
GetLink(resource types.Resource, link string, respObject interface{}) error
|
||||
Create(schemaType string, createObj interface{}, respObject interface{}) error
|
||||
Update(schemaType string, existing *types.Resource, updates interface{}, respObject interface{}) error
|
||||
ByID(schemaType string, id string, respObject interface{}) error
|
||||
Delete(existing *types.Resource) error
|
||||
Reload(existing *types.Resource, output interface{}) error
|
||||
Action(schemaType string, action string, existing *types.Resource, inputObject, respObject interface{}) error
|
||||
}
|
||||
|
||||
type APIBaseClient struct {
|
||||
Ops *APIOperations
|
||||
Opts *ClientOpts
|
||||
Types map[string]types.Schema
|
||||
}
|
||||
|
||||
type ClientOpts struct {
|
||||
URL string
|
||||
AccessKey string
|
||||
|
6
vendor/github.com/rancher/norman/clientbase/ops.go
generated
vendored
6
vendor/github.com/rancher/norman/clientbase/ops.go
generated
vendored
@@ -12,6 +12,12 @@ import (
|
||||
"github.com/rancher/norman/types"
|
||||
)
|
||||
|
||||
type APIOperations struct {
|
||||
Opts *ClientOpts
|
||||
Types map[string]types.Schema
|
||||
Client *http.Client
|
||||
}
|
||||
|
||||
func (a *APIOperations) setupRequest(req *http.Request) {
|
||||
req.Header.Add("Authorization", a.Opts.getAuthHeader())
|
||||
}
|
||||
|
9
vendor/github.com/rancher/norman/controller/cluster_check.go
generated
vendored
9
vendor/github.com/rancher/norman/controller/cluster_check.go
generated
vendored
@@ -30,6 +30,15 @@ func ObjectInCluster(cluster string, obj interface{}) bool {
|
||||
}
|
||||
}
|
||||
}
|
||||
if clusterName == "" {
|
||||
if a := getValue(obj, "Annotations"); a.IsValid() {
|
||||
if c := a.MapIndex(reflect.ValueOf("field.cattle.io/projectId")); c.IsValid() {
|
||||
if parts := strings.SplitN(c.String(), ":", 2); len(parts) == 2 {
|
||||
clusterName = parts[0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return clusterName == cluster
|
||||
}
|
||||
|
2
vendor/github.com/rancher/norman/controller/generic_controller.go
generated
vendored
2
vendor/github.com/rancher/norman/controller/generic_controller.go
generated
vendored
@@ -64,7 +64,7 @@ func NewGenericController(name string, genericClient Backend) GenericController
|
||||
ListFunc: genericClient.List,
|
||||
WatchFunc: genericClient.Watch,
|
||||
},
|
||||
genericClient.ObjectFactory().Object(), resyncPeriod, cache.Indexers{})
|
||||
genericClient.ObjectFactory().Object(), resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
|
||||
|
||||
rl := workqueue.NewMaxOfRateLimiter(
|
||||
workqueue.NewItemExponentialFailureRateLimiter(500*time.Millisecond, 1000*time.Second),
|
||||
|
8
vendor/github.com/rancher/norman/objectclient/object_client.go
generated
vendored
8
vendor/github.com/rancher/norman/objectclient/object_client.go
generated
vendored
@@ -103,6 +103,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)
|
||||
err := p.restClient.Post().
|
||||
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
|
||||
NamespaceIfScoped(ns, p.resource.Namespaced).
|
||||
@@ -126,6 +127,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)
|
||||
return result, err
|
||||
|
||||
}
|
||||
@@ -140,6 +142,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)
|
||||
return result, err
|
||||
}
|
||||
|
||||
@@ -152,7 +155,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("UPDATE %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, ns, p.resource.Name, name)
|
||||
logrus.Debugf("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).
|
||||
@@ -170,6 +173,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)
|
||||
return req.Resource(p.resource.Name).
|
||||
Name(name).
|
||||
Body(opts).
|
||||
@@ -178,6 +182,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)
|
||||
return p.restClient.Delete().
|
||||
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
|
||||
NamespaceIfScoped(p.ns, p.resource.Namespaced).
|
||||
@@ -190,6 +195,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)
|
||||
return result, p.restClient.Get().
|
||||
Prefix(p.getAPIPrefix(), p.gvk.Group, p.gvk.Version).
|
||||
NamespaceIfScoped(p.ns, p.resource.Namespaced).
|
||||
|
23
vendor/github.com/rancher/norman/store/proxy/proxy_store.go
generated
vendored
23
vendor/github.com/rancher/norman/store/proxy/proxy_store.go
generated
vendored
@@ -6,6 +6,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/rancher/norman/httperror"
|
||||
"github.com/rancher/norman/restwatch"
|
||||
"github.com/rancher/norman/types"
|
||||
"github.com/rancher/norman/types/convert"
|
||||
@@ -117,7 +118,7 @@ func (p *Store) getUser(apiContext *types.APIContext) string {
|
||||
func (p *Store) doAuthed(apiContext *types.APIContext, request *rest.Request) rest.Result {
|
||||
start := time.Now()
|
||||
defer func() {
|
||||
logrus.Debug("GET:", time.Now().Sub(start), p.resourcePlural)
|
||||
logrus.Debug("GET: ", time.Now().Sub(start), p.resourcePlural)
|
||||
}()
|
||||
|
||||
for _, header := range authHeaders {
|
||||
@@ -131,6 +132,18 @@ func (p *Store) k8sClient(apiContext *types.APIContext) (rest.Interface, error)
|
||||
}
|
||||
|
||||
func (p *Store) ByID(apiContext *types.APIContext, schema *types.Schema, id string) (map[string]interface{}, error) {
|
||||
splitted := strings.Split(strings.TrimSpace(id), ":")
|
||||
validID := false
|
||||
namespaced := schema.Scope == types.NamespaceScope
|
||||
if namespaced {
|
||||
validID = len(splitted) == 2 && len(strings.TrimSpace(splitted[0])) > 0 && len(strings.TrimSpace(splitted[1])) > 0
|
||||
} else {
|
||||
validID = len(splitted) == 1 && len(strings.TrimSpace(splitted[0])) > 0
|
||||
}
|
||||
if !validID {
|
||||
return nil, httperror.NewAPIError(httperror.NotFound, "failed to find resource by id")
|
||||
}
|
||||
|
||||
_, result, err := p.byID(apiContext, schema, id)
|
||||
return result, err
|
||||
}
|
||||
@@ -166,7 +179,7 @@ func (p *Store) List(apiContext *types.APIContext, schema *types.Schema, opt *ty
|
||||
resultList := &unstructured.UnstructuredList{}
|
||||
start := time.Now()
|
||||
err = req.Do().Into(resultList)
|
||||
logrus.Debug("LIST:", time.Now().Sub(start), p.resourcePlural)
|
||||
logrus.Debug("LIST: ", time.Now().Sub(start), p.resourcePlural)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -266,7 +279,7 @@ func (p *Store) Create(apiContext *types.APIContext, schema *types.Schema, data
|
||||
if name == "" {
|
||||
generated, _ := values.GetValueN(data, "metadata", "generateName").(string)
|
||||
if generated == "" {
|
||||
values.PutValue(data, strings.ToLower(schema.ID+"-"), "metadata", "generateName")
|
||||
values.PutValue(data, types.GenerateName(schema.ID), "metadata", "name")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -335,14 +348,14 @@ func (p *Store) Delete(apiContext *types.APIContext, schema *types.Schema, id st
|
||||
return nil, err
|
||||
}
|
||||
|
||||
namespace, id := splitID(id)
|
||||
namespace, name := splitID(id)
|
||||
|
||||
prop := metav1.DeletePropagationForeground
|
||||
req := p.common(namespace, k8sClient.Delete()).
|
||||
Body(&metav1.DeleteOptions{
|
||||
PropagationPolicy: &prop,
|
||||
}).
|
||||
Name(id)
|
||||
Name(name)
|
||||
|
||||
err = p.doAuthed(apiContext, req).Error()
|
||||
if err != nil {
|
||||
|
19
vendor/github.com/rancher/norman/types/id.go
generated
vendored
Normal file
19
vendor/github.com/rancher/norman/types/id.go
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
utilrand "k8s.io/apimachinery/pkg/util/rand"
|
||||
)
|
||||
|
||||
var (
|
||||
lowerChars = regexp.MustCompile("[a-z]+")
|
||||
)
|
||||
|
||||
func GenerateName(typeName string) string {
|
||||
base := typeName[0:1] + lowerChars.ReplaceAllString(typeName[1:], "")
|
||||
last := utilrand.String(5)
|
||||
return fmt.Sprintf("%s-%s", strings.ToLower(base), last)
|
||||
}
|
42
vendor/github.com/rancher/norman/types/mapper/copy.go
generated
vendored
Normal file
42
vendor/github.com/rancher/norman/types/mapper/copy.go
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
package mapper
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/rancher/norman/types"
|
||||
)
|
||||
|
||||
type Copy struct {
|
||||
From, To string
|
||||
}
|
||||
|
||||
func (c Copy) FromInternal(data map[string]interface{}) {
|
||||
if data == nil {
|
||||
return
|
||||
}
|
||||
v, ok := data[c.From]
|
||||
if ok {
|
||||
data[c.To] = v
|
||||
}
|
||||
}
|
||||
|
||||
func (c Copy) ToInternal(data map[string]interface{}) {
|
||||
if data == nil {
|
||||
return
|
||||
}
|
||||
t, tok := data[c.To]
|
||||
_, fok := data[c.From]
|
||||
if tok && !fok {
|
||||
data[c.From] = t
|
||||
}
|
||||
}
|
||||
|
||||
func (c Copy) ModifySchema(s *types.Schema, schemas *types.Schemas) error {
|
||||
f, ok := s.ResourceFields[c.From]
|
||||
if !ok {
|
||||
return fmt.Errorf("field %s missing on schema %s", c.From, s.ID)
|
||||
}
|
||||
|
||||
s.ResourceFields[c.To] = f
|
||||
return nil
|
||||
}
|
4
vendor/github.com/rancher/norman/types/mapper/embed.go
generated
vendored
4
vendor/github.com/rancher/norman/types/mapper/embed.go
generated
vendored
@@ -38,7 +38,9 @@ func (e *Embed) ToInternal(data map[string]interface{}) {
|
||||
|
||||
delete(data, fieldName)
|
||||
}
|
||||
|
||||
if len(sub) == 0 {
|
||||
return
|
||||
}
|
||||
data[e.Field] = sub
|
||||
}
|
||||
|
||||
|
2
vendor/github.com/rancher/norman/types/reflection.go
generated
vendored
2
vendor/github.com/rancher/norman/types/reflection.go
generated
vendored
@@ -95,6 +95,8 @@ func (s *Schemas) setupFilters(schema *Schema) {
|
||||
switch field.Type {
|
||||
case "enum":
|
||||
mods = []ModifierType{ModifierEQ, ModifierNE, ModifierIn, ModifierNotIn}
|
||||
case "dnsLabel":
|
||||
fallthrough
|
||||
case "string":
|
||||
mods = []ModifierType{ModifierEQ, ModifierNE, ModifierIn, ModifierNotIn}
|
||||
case "int":
|
||||
|
Reference in New Issue
Block a user