Skip to content

Commit de2700e

Browse files
committed
Resolve linter complaint about complexity
Signed-off-by: [email protected] <[email protected]>
1 parent 6b6a0c8 commit de2700e

File tree

1 file changed

+52
-38
lines changed

1 file changed

+52
-38
lines changed

controllers/mutation_reconcile_looper.go

Lines changed: 52 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -412,49 +412,12 @@ func (m *MutationReconcileLooper) performLocalization(
412412
refPath []ocmmetav1.Identity,
413413
compvers ocmcore.ComponentVersionAccess,
414414
) error {
415-
resourceRef := ocmmetav1.NewNestedResourceRef(ocmmetav1.NewIdentity(l.Resource.Name), refPath)
416-
417-
resource, _, err := resourcerefs.ResolveResourceReference(compvers, resourceRef, compvers.Repository())
418-
if err != nil {
419-
return fmt.Errorf("failed to fetch resource from component version: %w", err)
420-
}
421415

422-
accSpec, err := resource.Access()
416+
pRef, err := resolveReference(l, refPath, compvers, octx)
423417
if err != nil {
424418
return err
425419
}
426420

427-
var (
428-
ref string
429-
refErr error
430-
)
431-
432-
for ref == "" && refErr == nil {
433-
switch x := accSpec.(type) {
434-
case *ociartifact.AccessSpec:
435-
ref = x.ImageReference
436-
case *ociblob.AccessSpec:
437-
ref = fmt.Sprintf("%s@%s", x.Reference, x.Digest)
438-
case *localblob.AccessSpec:
439-
if x.GlobalAccess == nil {
440-
refErr = errors.New("cannot determine image digest")
441-
} else {
442-
accSpec, refErr = octx.AccessSpecForSpec(x.GlobalAccess)
443-
}
444-
default:
445-
refErr = errors.New("cannot determine access spec type")
446-
}
447-
}
448-
449-
if refErr != nil {
450-
return fmt.Errorf("failed to parse access reference: %w", refErr)
451-
}
452-
453-
pRef, err := name.ParseReference(ref)
454-
if err != nil {
455-
return fmt.Errorf("failed to parse access reference: %w", err)
456-
}
457-
458421
if l.Registry != "" {
459422
if err := localizations.Add("registry", l.File, l.Registry, pRef.Context().Registry.Name()); err != nil {
460423
return fmt.Errorf("failed to add registry: %w", err)
@@ -490,6 +453,57 @@ func (m *MutationReconcileLooper) performLocalization(
490453
return nil
491454
}
492455

456+
func resolveReference(
457+
l configdata.LocalizationRule,
458+
refPath []ocmmetav1.Identity,
459+
compvers ocmcore.ComponentVersionAccess,
460+
octx ocmcore.Context,
461+
) (name.Reference, error) {
462+
resourceRef := ocmmetav1.NewNestedResourceRef(ocmmetav1.NewIdentity(l.Resource.Name), refPath)
463+
464+
resource, _, err := resourcerefs.ResolveResourceReference(compvers, resourceRef, compvers.Repository())
465+
if err != nil {
466+
return nil, fmt.Errorf("failed to fetch resource from component version: %w", err)
467+
}
468+
469+
accSpec, err := resource.Access()
470+
if err != nil {
471+
return nil, err
472+
}
473+
474+
var (
475+
ref string
476+
refErr error
477+
)
478+
479+
for ref == "" && refErr == nil {
480+
switch x := accSpec.(type) {
481+
case *ociartifact.AccessSpec:
482+
ref = x.ImageReference
483+
case *ociblob.AccessSpec:
484+
ref = fmt.Sprintf("%s@%s", x.Reference, x.Digest)
485+
case *localblob.AccessSpec:
486+
if x.GlobalAccess == nil {
487+
refErr = errors.New("cannot determine image digest")
488+
} else {
489+
accSpec, refErr = octx.AccessSpecForSpec(x.GlobalAccess)
490+
}
491+
default:
492+
refErr = errors.New("cannot determine access spec type")
493+
}
494+
}
495+
496+
if refErr != nil {
497+
return nil, fmt.Errorf("failed to parse access reference: %w", refErr)
498+
}
499+
500+
pRef, err := name.ParseReference(ref)
501+
if err != nil {
502+
return nil, fmt.Errorf("failed to parse access reference: %w", err)
503+
}
504+
return pRef, nil
505+
}
506+
493507
func (m *MutationReconcileLooper) createSubstitutionRulesForConfigurationValues(
494508
data []byte,
495509
values *apiextensionsv1.JSON,

0 commit comments

Comments
 (0)