Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions internal/ocm-cli/component_getter.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"fmt"
"strings"

"github.com/openmcp-project/bootstrapper/internal/log"
)

type ComponentGetter struct {
Expand Down Expand Up @@ -86,6 +88,9 @@ func (g *ComponentGetter) OCMConfig() string {
}

func (g *ComponentGetter) GetReferencedComponentVersion(ctx context.Context, parentCV *ComponentVersion, refName string) (*ComponentVersion, error) {
logger := log.GetLogger()
logger.Tracef("Comp_Getter: Getting component reference %s in component version %s", refName, parentCV.Component.Name)

ref, err := parentCV.GetComponentReference(refName)
if err != nil {
return nil, fmt.Errorf("error getting component reference %s: %w", refName, err)
Expand All @@ -97,10 +102,14 @@ func (g *ComponentGetter) GetReferencedComponentVersion(ctx context.Context, par
return nil, fmt.Errorf("error getting component version %s: %w", location, err)
}

logger.Tracef("Comp_Getter: Found component reference %s in component version %s", refName, parentCV.Component.Name)
return cv, nil
}

func (g *ComponentGetter) GetReferencedComponentVersionRecursive(ctx context.Context, parentCV *ComponentVersion, refName string) (*ComponentVersion, error) {
logger := log.GetLogger()
logger.Tracef("Comp_Getter: Searching for component reference %s in component version %s", refName, parentCV.Component.Name)

// First, try to get the reference directly from the parent component version
ref, err := g.GetReferencedComponentVersion(ctx, parentCV, refName)
if err == nil {
Expand All @@ -123,6 +132,9 @@ func (g *ComponentGetter) GetReferencedComponentVersionRecursive(ctx context.Con
}

func (g *ComponentGetter) GetComponentVersionForResourceRecursive(ctx context.Context, parentCV *ComponentVersion, resourceName string) (*ComponentVersion, error) {
logger := log.GetLogger()
logger.Tracef("Comp_Getter: Searching for resource %s in component version %s", resourceName, parentCV.Component.Name)

// Check if the resource exists in the current component version
_, err := parentCV.GetResource(resourceName)
if err == nil {
Expand All @@ -149,6 +161,9 @@ func (g *ComponentGetter) DownloadTemplatesResource(ctx context.Context, downloa
}

func (g *ComponentGetter) DownloadDirectoryResourceByLocation(ctx context.Context, rootCV *ComponentVersion, location string, downloadDir string) error {
logger := log.GetLogger()
logger.Tracef("Comp_Getter: Downloading directory resource from location %s", location)

var err error

location = strings.TrimSpace(location)
Expand Down
19 changes: 19 additions & 0 deletions internal/template/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"github.com/Masterminds/sprig/v3"
"sigs.k8s.io/yaml"

"github.com/openmcp-project/bootstrapper/internal/log"

ocmcli "github.com/openmcp-project/bootstrapper/internal/ocm-cli"
"github.com/openmcp-project/bootstrapper/internal/util"
)
Expand All @@ -29,6 +31,8 @@ func fromYAML(input string) (any, error) {
}

func getComponentVersionByReference(ctx context.Context, compGetter *ocmcli.ComponentGetter, args ...interface{}) *ocmcli.ComponentVersion {
logger := log.GetLogger()

if compGetter == nil {
panic("ComponentGetter must not be nil")
}
Expand All @@ -45,8 +49,13 @@ func getComponentVersionByReference(ctx context.Context, compGetter *ocmcli.Comp
parentCv = args[0].(*ocmcli.ComponentVersion)
}

logger.Tracef("Template_Func: getComponentVersionByReference called with parent component version: %s and reference name: %s", parentCv.Component.Name, referenceName)

cv, err := compGetter.GetReferencedComponentVersionRecursive(ctx, parentCv, referenceName)
if err != nil || cv == nil {
if err != nil {
logger.Errorf("Template_Func: getComponentVersionByReference error getting component version by reference %s from parent component version %s: %v", referenceName, parentCv.Component.Name, err)
}
return nil
}

Expand All @@ -73,12 +82,18 @@ func componentVersionAsMap(cv *ocmcli.ComponentVersion) map[string]interface{} {
}

func getResourceFromComponentVersion(compGetter *ocmcli.ComponentGetter, cv *ocmcli.ComponentVersion, resourceName string) map[string]interface{} {
logger := log.GetLogger()
logger.Tracef("Template_Func: getResourceFromComponentVersion called with component version: %s and resource name: %s", cv.Component.Name, resourceName)

if compGetter == nil {
panic("ComponentGetter must not be nil")
}

res, err := cv.GetResource(resourceName)
if err != nil || res == nil {
if err != nil {
logger.Errorf("Template_Func: getResourceFromComponentVersion error getting resource %s from component version %s: %v", resourceName, cv.Component.Name, err)
}
return nil
}

Expand All @@ -105,12 +120,16 @@ func getOCMRepository(compGetter *ocmcli.ComponentGetter) string {
}

func listComponentVersions(ctx context.Context, compGetter *ocmcli.ComponentGetter, cv *ocmcli.ComponentVersion) []string {
logger := log.GetLogger()
logger.Tracef("Template_Func: listComponentVersions called with component version: %s", cv.Component.Name)

if compGetter == nil {
panic("ComponentGetter must not be nil")
}

versions, err := cv.ListComponentVersions(ctx, compGetter.OCMConfig())
if err != nil {
logger.Errorf("Template_Func: listComponentVersions error listing component versions for component %s: %v", cv.Component.Name, err)
return nil
}

Expand Down