1
0
mirror of https://github.com/rancher/types.git synced 2025-09-01 05:09:10 +00:00

Update vendor

This commit is contained in:
Darren Shepherd
2017-12-29 15:24:10 -07:00
parent c9565e2f53
commit 1522596786
16 changed files with 80 additions and 24 deletions

View File

@@ -42,22 +42,16 @@ func (c Cond) Reason(obj runtime.Object, reason string) {
func (c Cond) Message(obj runtime.Object, message string) {
cond := findOrCreateCond(obj, string(c))
v := getFieldValue(cond, "Message")
if v.IsValid() {
v.SetString(message)
}
getFieldValue(cond, "Message").SetString(message)
}
func (c Cond) ReasonError(obj runtime.Object, err error) {
func (c Cond) ReasonAndMessageFromError(obj runtime.Object, err error) {
cond := findOrCreateCond(obj, string(c))
getFieldValue(cond, "Message").SetString(err.Error())
if ce, ok := err.(*conditionError); ok {
getFieldValue(cond, "Reason").SetString(ce.reason)
v := getFieldValue(cond, "Message")
if v.IsValid() {
v.SetString(ce.Error())
}
} else {
getFieldValue(cond, "Reason").SetString(err.Error())
getFieldValue(cond, "Reason").SetString("Error")
}
touchTS(cond)
}
@@ -86,7 +80,7 @@ func (c Cond) Once(obj runtime.Object, f func() (runtime.Object, error)) (runtim
if err != nil {
c.False(obj)
c.ReasonError(obj, err)
c.ReasonAndMessageFromError(obj, err)
return obj, err
}
c.True(obj)
@@ -102,7 +96,7 @@ func (c Cond) Do(obj runtime.Object, f func() (runtime.Object, error)) (runtime.
if err != nil {
c.False(obj)
c.ReasonError(obj, err)
c.ReasonAndMessageFromError(obj, err)
return obj, err
}
c.True(obj)

View File

@@ -167,7 +167,7 @@ func (g *genericController) processNextWorkItem() bool {
return true
}
utilruntime.HandleError(fmt.Errorf("%v failed with : %v", key, err))
utilruntime.HandleError(fmt.Errorf("%v %v failed with : %v", g.name, key, err))
g.queue.AddRateLimited(key)
return true

View File

@@ -60,9 +60,11 @@ type {{.schema.CodeName}}Controller interface {
type {{.schema.CodeName}}Interface interface {
ObjectClient() *clientbase.ObjectClient
Create(*{{.prefix}}{{.schema.CodeName}}) (*{{.prefix}}{{.schema.CodeName}}, error)
GetNamespace(name, namespace string, opts metav1.GetOptions) (*{{.prefix}}{{.schema.CodeName}}, error)
Get(name string, opts metav1.GetOptions) (*{{.prefix}}{{.schema.CodeName}}, error)
Update(*{{.prefix}}{{.schema.CodeName}}) (*{{.prefix}}{{.schema.CodeName}}, error)
Delete(name string, options *metav1.DeleteOptions) error
DeleteNamespace(name, namespace string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (*{{.schema.CodeName}}List, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error
@@ -180,6 +182,11 @@ func (s *{{.schema.ID}}Client) Get(name string, opts metav1.GetOptions) (*{{.pre
return obj.(*{{.prefix}}{{.schema.CodeName}}), err
}
func (s *{{.schema.ID}}Client) GetNamespace(name, namespace string, opts metav1.GetOptions) (*{{.prefix}}{{.schema.CodeName}}, error) {
obj, err := s.objectClient.GetNamespace(name, namespace, opts)
return obj.(*{{.prefix}}{{.schema.CodeName}}), err
}
func (s *{{.schema.ID}}Client) Update(o *{{.prefix}}{{.schema.CodeName}}) (*{{.prefix}}{{.schema.CodeName}}, error) {
obj, err := s.objectClient.Update(o.Name, o)
return obj.(*{{.prefix}}{{.schema.CodeName}}), err
@@ -189,6 +196,10 @@ func (s *{{.schema.ID}}Client) Delete(name string, options *metav1.DeleteOptions
return s.objectClient.Delete(name, options)
}
func (s *{{.schema.ID}}Client) DeleteNamespace(name, namespace string, options *metav1.DeleteOptions) error {
return s.objectClient.DeleteNamespace(name, namespace, options)
}
func (s *{{.schema.ID}}Client) List(opts metav1.ListOptions) (*{{.schema.CodeName}}List, error) {
obj, err := s.objectClient.List(opts)
return obj.(*{{.schema.CodeName}}List), err

View File

@@ -74,6 +74,10 @@ func getTypeString(nullable bool, typeName string, schema *types.Schema, schemas
return "string"
case "enum":
return "string"
case "intOrString":
return "intstr.IntOrString"
case "dnsLabel":
return "string"
default:
if schema != nil && schemas != nil {
otherSchema := schemas.Schema(&schema.Version, typeName)

View File

@@ -5,6 +5,7 @@ var typeTemplate = `package client
{{- if .schema | hasGet }}
import (
"github.com/rancher/norman/types"
"k8s.io/apimachinery/pkg/util/intstr"
)
{{- end}}

View File

@@ -141,7 +141,9 @@ func (o *objectLifecycleAdapter) create(metadata metav1.Object, obj runtime.Obje
metadata.SetAnnotations(map[string]string{})
}
metadata.SetFinalizers(append(metadata.GetFinalizers(), o.name))
if o.objectClient.GroupVersionKind().Kind != "Namespace" {
metadata.SetFinalizers(append(metadata.GetFinalizers(), o.name))
}
metadata.GetAnnotations()[initialized] = "true"
_, err = o.objectClient.Update(metadata.GetName(), obj)

View File

@@ -3,6 +3,7 @@ package types
import (
"fmt"
"github.com/rancher/norman/types/convert"
"github.com/rancher/norman/types/definition"
)
@@ -92,9 +93,9 @@ func (t *typeMapper) ToInternal(data map[string]interface{}) {
if schema.Mapper == nil {
continue
}
datas, _ := data[fieldName].([]map[string]interface{})
datas, _ := data[fieldName].([]interface{})
for _, fieldData := range datas {
schema.Mapper.ToInternal(fieldData)
schema.Mapper.ToInternal(convert.ToMapInterface(fieldData))
}
}

View File

@@ -11,6 +11,7 @@ import (
type AnnotationField struct {
Field string
Object bool
List bool
IgnoreDefinition bool
}
@@ -24,6 +25,12 @@ func (e AnnotationField) FromInternal(data map[string]interface{}) {
v = data
}
}
if e.List {
var data []interface{}
if err := json.Unmarshal([]byte(convert.ToString(v)), &data); err == nil {
v = data
}
}
data[e.Field] = v
}
@@ -32,13 +39,14 @@ func (e AnnotationField) FromInternal(data map[string]interface{}) {
func (e AnnotationField) ToInternal(data map[string]interface{}) {
v, ok := data[e.Field]
if ok {
if e.Object {
if e.Object || e.List {
if bytes, err := json.Marshal(v); err == nil {
v = string(bytes)
}
}
values.PutValue(data, v, "annotations", "field.cattle.io/"+e.Field)
values.PutValue(data, convert.ToString(v), "annotations", "field.cattle.io/"+e.Field)
}
values.RemoveValue(data, e.Field)
}
func (e AnnotationField) ModifySchema(schema *types.Schema, schemas *types.Schemas) error {

View File

@@ -0,0 +1,27 @@
package mapper
import (
"github.com/rancher/norman/types"
)
type ChangeType struct {
Field string
Type string
}
func (c ChangeType) FromInternal(data map[string]interface{}) {
}
func (c ChangeType) ToInternal(data map[string]interface{}) {
}
func (c ChangeType) ModifySchema(schema *types.Schema, schemas *types.Schemas) error {
if err := ValidateField(c.Field, schema); err != nil {
return err
}
f := schema.ResourceFields[c.Field]
f.Type = c.Type
schema.ResourceFields[c.Field] = f
return nil
}

View File

@@ -8,7 +8,8 @@ var displayNameMappers = types.Mappers{
&Move{From: "name", To: "id"},
&Move{From: "displayName", To: "name"},
Access{Fields: map[string]string{
"id": "",
"id": "",
"name": "cru",
}},
}

View File

@@ -6,6 +6,7 @@ import (
func NewMetadataMapper() types.Mapper {
return types.Mappers{
ChangeType{Field: "name", Type: "dnsLabel"},
Drop{"generateName"},
//Move{From: "selfLink", To: "resourcePath"},
Drop{"selfLink"},

View File

@@ -31,7 +31,7 @@ func (s SliceToMap) FromInternal(data map[string]interface{}) {
func (s SliceToMap) ToInternal(data map[string]interface{}) {
datas, _ := data[s.Field].(map[string]interface{})
var result []map[string]interface{}
var result []interface{}
for name, item := range datas {
mapItem, _ := item.(map[string]interface{})
@@ -43,6 +43,8 @@ func (s SliceToMap) ToInternal(data map[string]interface{}) {
if len(result) > 0 {
data[s.Field] = result
} else if datas != nil {
data[s.Field] = result
}
}

View File

@@ -423,7 +423,7 @@ func (s *Schemas) determineSchemaType(version *APIVersion, t reflect.Type) (stri
return "date", nil
}
if t.Name() == "IntOrString" {
return "string", nil
return "intOrString", nil
}
if t.Name() == "Quantity" {
return "string", nil

View File

@@ -117,10 +117,10 @@ type Field struct {
Type string `json:"type,omitempty"`
Default interface{} `json:"default,omitempty"`
Nullable bool `json:"nullable,omitempty"`
Create bool `json:"create,omitempty"`
Create bool `json:"create"`
WriteOnly bool `json:"writeOnly,omitempty"`
Required bool `json:"required,omitempty"`
Update bool `json:"update,omitempty"`
Update bool `json:"update"`
MinLength *int64 `json:"minLength,omitempty"`
MaxLength *int64 `json:"maxLength,omitempty"`
Min *int64 `json:"min,omitempty"`

View File

@@ -84,6 +84,10 @@ func GetValue(data map[string]interface{}, keys ...string) (interface{}, bool) {
}
func PutValue(data map[string]interface{}, val interface{}, keys ...string) {
if data == nil {
return
}
// This is so ugly
for i, key := range keys {
if i == len(keys)-1 {