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-13 17:30:53 -07:00
parent d76110dec7
commit 0409513f2e
5 changed files with 72 additions and 17 deletions

View File

@@ -9,25 +9,37 @@ import (
)
type {{.schema.CodeName}}Lifecycle interface {
Create(obj *{{.prefix}}{{.schema.CodeName}}) error
Remove(obj *{{.prefix}}{{.schema.CodeName}}) error
Updated(obj *{{.prefix}}{{.schema.CodeName}}) error
Create(obj *{{.prefix}}{{.schema.CodeName}}) (*{{.prefix}}{{.schema.CodeName}}, error)
Remove(obj *{{.prefix}}{{.schema.CodeName}}) (*{{.prefix}}{{.schema.CodeName}}, error)
Updated(obj *{{.prefix}}{{.schema.CodeName}}) (*{{.prefix}}{{.schema.CodeName}}, error)
}
type {{.schema.ID}}LifecycleAdapter struct {
lifecycle {{.schema.CodeName}}Lifecycle
}
func (w *{{.schema.ID}}LifecycleAdapter) Create(obj runtime.Object) error {
return w.lifecycle.Create(obj.(*{{.prefix}}{{.schema.CodeName}}))
func (w *{{.schema.ID}}LifecycleAdapter) Create(obj runtime.Object) (runtime.Object, error) {
o, err := w.lifecycle.Create(obj.(*{{.prefix}}{{.schema.CodeName}}))
if o == nil {
return nil, err
}
return o, err
}
func (w *{{.schema.ID}}LifecycleAdapter) Finalize(obj runtime.Object) error {
return w.lifecycle.Remove(obj.(*{{.prefix}}{{.schema.CodeName}}))
func (w *{{.schema.ID}}LifecycleAdapter) Finalize(obj runtime.Object) (runtime.Object, error) {
o, err := w.lifecycle.Remove(obj.(*{{.prefix}}{{.schema.CodeName}}))
if o == nil {
return nil, err
}
return o, err
}
func (w *{{.schema.ID}}LifecycleAdapter) Updated(obj runtime.Object) error {
return w.lifecycle.Updated(obj.(*{{.prefix}}{{.schema.CodeName}}))
func (w *{{.schema.ID}}LifecycleAdapter) Updated(obj runtime.Object) (runtime.Object, error) {
o, err := w.lifecycle.Updated(obj.(*{{.prefix}}{{.schema.CodeName}}))
if o == nil {
return nil, err
}
return o, err
}
func New{{.schema.CodeName}}LifecycleAdapter(name string, client {{.schema.CodeName}}Interface, l {{.schema.CodeName}}Lifecycle) {{.schema.CodeName}}HandlerFunc {

View File

@@ -13,9 +13,9 @@ var (
)
type ObjectLifecycle interface {
Create(obj runtime.Object) error
Finalize(obj runtime.Object) error
Updated(obj runtime.Object) error
Create(obj runtime.Object) (runtime.Object, error)
Finalize(obj runtime.Object) (runtime.Object, error)
Updated(obj runtime.Object) (runtime.Object, error)
}
type objectLifecycleAdapter struct {
@@ -51,7 +51,14 @@ func (o *objectLifecycleAdapter) sync(key string, obj runtime.Object) error {
return err
}
return o.lifecycle.Updated(obj.DeepCopyObject())
if newObj, err := o.lifecycle.Updated(obj); err != nil {
return err
} else if newObj != nil {
_, err = o.objectClient.Update(metadata.GetName(), newObj)
return err
}
return nil
}
func (o *objectLifecycleAdapter) finalize(metadata metav1.Object, obj runtime.Object) (bool, error) {
@@ -79,11 +86,14 @@ func (o *objectLifecycleAdapter) finalize(metadata metav1.Object, obj runtime.Ob
}
metadata.SetFinalizers(finalizers)
if err := o.lifecycle.Finalize(obj); err != nil {
if newObj, err := o.lifecycle.Finalize(obj); err != nil {
return false, err
} else if newObj != nil {
_, err = o.objectClient.Update(metadata.GetName(), newObj)
} else {
_, err = o.objectClient.Update(metadata.GetName(), obj)
}
_, err = o.objectClient.Update(metadata.GetName(), obj)
return false, err
}
@@ -110,7 +120,10 @@ func (o *objectLifecycleAdapter) create(metadata metav1.Object, obj runtime.Obje
metadata.SetFinalizers(append(metadata.GetFinalizers(), o.name))
metadata.GetLabels()[initialized] = "true"
if err := o.lifecycle.Create(obj); err != nil {
if newObj, err := o.lifecycle.Create(obj); err != nil {
return false, err
} else if newObj != nil {
_, err = o.objectClient.Update(metadata.GetName(), newObj)
return false, err
}

View File

@@ -7,6 +7,7 @@ import (
"github.com/rancher/norman/name"
"github.com/rancher/norman/types/convert"
"github.com/rancher/norman/types/definition"
)
type SchemaCollection struct {
@@ -17,10 +18,16 @@ type SchemaInitFunc func(*Schemas) *Schemas
type MappersFactory func() []Mapper
type BackReference struct {
FieldName string
Schema *Schema
}
type Schemas struct {
schemasByPath map[string]map[string]*Schema
schemasBySubContext map[string]*Schema
mappers map[string]map[string][]Mapper
references map[string][]BackReference
DefaultMappers MappersFactory
DefaultPostMappers MappersFactory
versions []APIVersion
@@ -33,6 +40,7 @@ func NewSchemas() *Schemas {
schemasByPath: map[string]map[string]*Schema{},
schemasBySubContext: map[string]*Schema{},
mappers: map[string]map[string][]Mapper{},
references: map[string][]BackReference{},
}
}
@@ -92,6 +100,22 @@ func (s *Schemas) AddSchema(schema Schema) *Schemas {
if _, ok := schemas[schema.ID]; !ok {
schemas[schema.ID] = &schema
s.schemas = append(s.schemas, &schema)
for name, field := range schema.ResourceFields {
if !definition.IsReferenceType(field.Type) {
continue
}
refType := definition.SubType(field.Type)
if !strings.HasPrefix(refType, "/") {
refType = convert.ToFullReference(schema.Version.Path, refType)
}
s.references[refType] = append(s.references[refType], BackReference{
FieldName: name,
Schema: &schema,
})
}
}
if schema.SubContext != "" {
@@ -101,6 +125,11 @@ func (s *Schemas) AddSchema(schema Schema) *Schemas {
return s
}
func (s *Schemas) References(schema *Schema) []BackReference {
refType := convert.ToFullReference(schema.Version.Path, schema.ID)
return s.references[refType]
}
func (s *Schemas) AddMapper(version *APIVersion, schemaID string, mapper Mapper) *Schemas {
mappers, ok := s.mappers[version.Path]
if !ok {

View File

@@ -147,6 +147,7 @@ type URLBuilder interface {
ReverseSort(order SortOrder) string
Sort(field string) string
SetSubContext(subContext string)
FilterLink(schema *Schema, fieldName string, value string) string
}
type Store interface {