in cli/bpmetadata/cmd.go [282:321]
func CreateBlueprintDisplayMetadata(bpPath string, bpDisp, bpCore *BlueprintMetadata) (*BlueprintMetadata, error) {
// start creating blueprint metadata
bpDisp.ApiVersion = bpCore.ApiVersion
bpDisp.Kind = bpCore.Kind
if bpDisp.Metadata == nil {
bpDisp.Metadata = &ResourceTypeMeta{
Name: bpCore.Metadata.Name + "-display",
Annotations: map[string]string{localConfigAnnotation: "true"},
}
}
if bpDisp.Spec == nil {
bpDisp.Spec = &BlueprintMetadataSpec{}
}
if bpDisp.Spec.Info == nil {
bpDisp.Spec.Info = &BlueprintInfo{}
}
if bpDisp.Spec.Ui == nil {
bpDisp.Spec.Ui = &BlueprintUI{}
bpDisp.Spec.Ui.Input = &BlueprintUIInput{}
}
bpDisp.Spec.Info.Title = bpCore.Spec.Info.Title
bpDisp.Spec.Info.Source = bpCore.Spec.Info.Source
buildUIInputFromVariables(bpCore.Spec.Interfaces.Variables, bpDisp.Spec.Ui.Input)
existingInput := func() *BlueprintUIInput {
if bpCore.Spec.Ui != nil && bpCore.Spec.Ui.Input != nil {
return proto.Clone(bpCore.Spec.Ui.Input).(*BlueprintUIInput)
}
return &BlueprintUIInput{}
}()
// Merge existing data (if any) into the newly generated UI Input
mergeExistingAltDefaults(bpDisp.Spec.Ui.Input, existingInput)
return bpDisp, nil
}