mirror of
https://github.com/rancher/norman.git
synced 2025-09-17 07:40:10 +00:00
Allow circular types to be imported
This commit is contained in:
@@ -83,6 +83,9 @@ func (s *Schemas) newSchemaFromType(version *APIVersion, t reflect.Type, typeNam
|
||||
CollectionActions: map[string]Action{},
|
||||
}
|
||||
|
||||
s.processingTypes[t] = schema
|
||||
defer delete(s.processingTypes, t)
|
||||
|
||||
if err := s.readFields(schema, t); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -148,6 +151,11 @@ func (s *Schemas) importType(version *APIVersion, t reflect.Type, overrides ...r
|
||||
return existing, nil
|
||||
}
|
||||
|
||||
if s, ok := s.processingTypes[t]; ok {
|
||||
logrus.Debugf("Returning half built schema %s for %v", typeName, t)
|
||||
return s, nil
|
||||
}
|
||||
|
||||
logrus.Debugf("Inspecting schema %s for %v", typeName, t)
|
||||
|
||||
schema, err := s.newSchemaFromType(version, t, typeName)
|
||||
|
Reference in New Issue
Block a user