Skip to content

Commit c2a8f5d

Browse files
committed
cvo: refactor LoadUpdate
Extract loading tasks from `loadUpdatePayloadMetadata` one layer up to `LoadUpdate`, which makes more sense as a logical sequence of "loading the update". This also allows simplifying `loadUpdatePayloadMetadata` signature because the inputs for loading tasks are partially disjoint from the ones needed for loading the metadata.
1 parent c410434 commit c2a8f5d

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

pkg/payload/payload.go

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,22 @@ type metadata struct {
140140

141141
func LoadUpdate(dir, releaseImage, excludeIdentifier string, requiredFeatureSet string, profile string,
142142
knownCapabilities []configv1.ClusterVersionCapability) (*Update, error) {
143+
klog.V(2).Infof("Loading updatepayload from %q", dir)
144+
if err := ValidateDirectory(dir); err != nil {
145+
return nil, err
146+
}
147+
var (
148+
cvoDir = filepath.Join(dir, CVOManifestDir)
149+
releaseDir = filepath.Join(dir, ReleaseManifestDir)
150+
)
143151

144-
payload, tasks, err := loadUpdatePayloadMetadata(dir, releaseImage, profile)
152+
payload, err := loadPayloadMetadata(releaseDir, releaseImage)
145153
if err != nil {
146154
return nil, err
147155
}
148156

157+
tasks := loadPayloadTasks(releaseDir, cvoDir, releaseImage, profile)
158+
149159
var onlyKnownCaps *configv1.ClusterVersionCapabilitiesStatus
150160

151161
if knownCapabilities != nil {
@@ -293,47 +303,36 @@ func ValidateDirectory(dir string) error {
293303
return nil
294304
}
295305

296-
type payloadTasks struct {
297-
idir string
298-
preprocess func([]byte) ([]byte, error)
299-
skipFiles sets.Set[string]
300-
}
301-
302-
func loadUpdatePayloadMetadata(dir, releaseImage, clusterProfile string) (*Update, []payloadTasks, error) {
303-
klog.V(2).Infof("Loading updatepayload from %q", dir)
304-
if err := ValidateDirectory(dir); err != nil {
305-
return nil, nil, err
306-
}
307-
var (
308-
cvoDir = filepath.Join(dir, CVOManifestDir)
309-
releaseDir = filepath.Join(dir, ReleaseManifestDir)
310-
)
311-
306+
func loadPayloadMetadata(releaseDir, releaseImage string) (*Update, error) {
312307
release, arch, err := loadReleaseFromMetadata(releaseDir)
313308
if err != nil {
314-
return nil, nil, err
309+
return nil, err
315310
}
316311
release.Image = releaseImage
317312

318313
imageRef, err := loadImageReferences(releaseDir)
319314
if err != nil {
320-
return nil, nil, err
315+
return nil, err
321316
}
322317

323318
if imageRef.Name != release.Version {
324-
return nil, nil, fmt.Errorf("Version from %s (%s) differs from %s (%s)", imageReferencesFile, imageRef.Name, cincinnatiJSONFile, release.Version)
319+
return nil, fmt.Errorf("Version from %s (%s) differs from %s (%s)", imageReferencesFile, imageRef.Name, cincinnatiJSONFile, release.Version)
325320
}
326321

327-
tasks := getPayloadTasks(releaseDir, cvoDir, releaseImage, clusterProfile)
328-
329322
return &Update{
330323
Release: release,
331324
ImageRef: imageRef,
332325
Architecture: arch,
333-
}, tasks, nil
326+
}, nil
327+
}
328+
329+
type payloadTasks struct {
330+
idir string
331+
preprocess func([]byte) ([]byte, error)
332+
skipFiles sets.Set[string]
334333
}
335334

336-
func getPayloadTasks(releaseDir, cvoDir, releaseImage, clusterProfile string) []payloadTasks {
335+
func loadPayloadTasks(releaseDir, cvoDir, releaseImage, clusterProfile string) []payloadTasks {
337336
cjf := filepath.Join(releaseDir, cincinnatiJSONFile)
338337
irf := filepath.Join(releaseDir, imageReferencesFile)
339338

0 commit comments

Comments
 (0)