func CreateBlueprintDisplayMetadata()

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
}