Skip to content

Commit

Permalink
restructuring and adding comments to exported functions
Browse files Browse the repository at this point in the history
Signed-off-by: ashpect <ashishndiitr@gmail.com>
  • Loading branch information
ashpect committed May 22, 2024
1 parent 5df051f commit 0d912bb
Show file tree
Hide file tree
Showing 7 changed files with 140 additions and 85 deletions.
8 changes: 7 additions & 1 deletion pkg/imgpkg/cmd/copy_repo_src.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,18 @@ func (c CopyRepoSrc) CopyToRepo(repo string) (*ctlimgset.ProcessedImages, error)
}
err = image.ExtractOciTarGz(c.OciFlags.OcitoReg, tempDir)
if err != nil {
return nil, err
return nil, fmt.Errorf("Extracting OCI tar: %s", err)
}
processedImages, err = c.tarImageSet.Import(tempDir, importRepo, c.registry, true)
if err != nil {
return nil, fmt.Errorf("Importing OCI tar: %s", err)
}

} else {
processedImages, err = c.tarImageSet.Import(c.TarFlags.TarSrc, importRepo, c.registry, false)
if err != nil {
return nil, fmt.Errorf("Importing tar: %s", err)
}
}

if err != nil {
Expand Down
5 changes: 4 additions & 1 deletion pkg/imgpkg/cmd/oci_flags.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 VMware, Inc.
// Copyright 2023 VMware, Inc.

Check failure on line 1 in pkg/imgpkg/cmd/oci_flags.go

View workflow job for this annotation

GitHub Actions / lint

Actual: VMware, Inc.
// SPDX-License-Identifier: Apache-2.0

package cmd
Expand All @@ -7,14 +7,17 @@ import (
"github.com/spf13/cobra"
)

// OciFlags is a struct that holds the flags for the OCI tar file.
type OciFlags struct {
OcitoReg string
OciTar string
}

// Set sets the flags for the OCI tar file.
func (o *OciFlags) Set(cmd *cobra.Command) {
cmd.Flags().StringVar(&o.OciTar, "to-oci-tar", "", "Set OciTarPath to be saved to disk (example: /path/file.tar)")
cmd.Flags().StringVar(&o.OcitoReg, "oci-tar", "", "Give path to OCI tar file (example: /path/file.tar)")
}

// IsOci returns true if the OCI tar file is set.
func (o OciFlags) IsOci() bool { return o.OcitoReg != "" }
2 changes: 2 additions & 0 deletions pkg/imgpkg/image/tar_image.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ func (i *TarImage) isExcluded(relPath string) bool {
return false
}

// CreateOciTarFileAndDeleteFolder creates a oci tar file from the source folder and deletes the source folder. Used while pushing the oci-tar
func CreateOciTarFileAndDeleteFolder(source, target string) error {

tarFile, err := os.Create(target)
Expand Down Expand Up @@ -242,6 +243,7 @@ func CreateOciTarFileAndDeleteFolder(source, target string) error {
return nil
}

// ExtractOciTarGz extracts the oci tar file to the extractDir
func ExtractOciTarGz(inputDir, extractDir string) error {

if !strings.HasSuffix(inputDir, ".tar.gz") {
Expand Down
32 changes: 29 additions & 3 deletions pkg/imgpkg/imagedesc/image_intermediate.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2020 VMware, Inc.
// Copyright 2023 VMware, Inc.

Check failure on line 1 in pkg/imgpkg/imagedesc/image_intermediate.go

View workflow job for this annotation

GitHub Actions / lint

Actual: VMware, Inc.
// SPDX-License-Identifier: Apache-2.0

package imagedesc
Expand All @@ -8,119 +8,145 @@ import (
"github.com/google/go-containerregistry/pkg/v1/types"
)

// intermediate struct for Image and ImageIndex to convert to imagwithref type for oci image
// ImageIndexIntermediate struct for ImageIndex to help in convertion to ImagIndexWithRef struct for oci image workflow..
type ImageIndexIntermediate struct {
Index regv1.ImageIndex
ref string
tag string
}

// ImageIntermediate struct for Image to help in convertion to ImageWithRef struct for oci image workflow.
type ImageIntermediate struct {
Image regv1.Image
ref string
tag string
}

// Ref returns the reference in the imageintermediate struct.
func (mi ImageIntermediate) Ref() string {
return mi.ref
}

// SetRef sets the reference in the imageintermediate struct.
func (mi *ImageIntermediate) SetRef(ref string) {
mi.ref = ref
}

// Tag returns the tag value set in the imageintermediate struct.
func (mi ImageIntermediate) Tag() string {
return mi.tag
}

// SetTag sets the tag value in the imageintermediate struct.
func (mi *ImageIntermediate) SetTag(tag string) {
mi.tag = tag
}

// Layers returns the ordered collection of filesystem layers that comprise this image.
func (mi ImageIntermediate) Layers() ([]regv1.Layer, error) {
return mi.Image.Layers()
}

// MediaType of the image's manifest.
func (mi ImageIntermediate) MediaType() (types.MediaType, error) {
return mi.Image.MediaType()
}

// Size returns the size of the image.
func (mi ImageIntermediate) Size() (int64, error) {
return mi.Image.Size()
}

// ConfigName returns the name of the image's configuration.
func (mi ImageIntermediate) ConfigName() (regv1.Hash, error) {
return mi.Image.ConfigName()
}

// ConfigFile returns the image's config file.
func (mi ImageIntermediate) ConfigFile() (*regv1.ConfigFile, error) {
return mi.Image.ConfigFile()
}

// RawConfigFile returns the serialized bytes of ConfigFile().
func (mi ImageIntermediate) RawConfigFile() ([]byte, error) {
return mi.Image.RawConfigFile()
}

// Digest returns the sha256 of this image's manifest.
func (mi ImageIntermediate) Digest() (regv1.Hash, error) {
return mi.Image.Digest()
}

// Manifest returns this image's Manifest object.
func (mi ImageIntermediate) Manifest() (*regv1.Manifest, error) {
return mi.Image.Manifest()
}

// RawManifest returns the serialized bytes of Manifest()
func (mi ImageIntermediate) RawManifest() ([]byte, error) {
return mi.Image.RawManifest()
}

// LayerByDigest returns a Layer for interacting with a particular layer of the image, looking it up by "digest" (the compressed hash).
func (mi ImageIntermediate) LayerByDigest(h regv1.Hash) (regv1.Layer, error) {
return mi.Image.LayerByDigest(h)
}

// LayerByDiffID is an analog to LayerByDigest, looking up by "diff id" (the uncompressed hash).
func (mi ImageIntermediate) LayerByDiffID(h regv1.Hash) (regv1.Layer, error) {
return mi.Image.LayerByDiffID(h)
}

// Ref returns the reference in the imageindexintermediate struct.
func (mi ImageIndexIntermediate) Ref() string {
return mi.ref
}

// SetRef sets the reference in the imageindexintermediate struct.
func (mi *ImageIndexIntermediate) SetRef(ref string) {
mi.ref = ref
}

// Tag returns the tag value set in the imageindexintermediate struct.
func (mi ImageIndexIntermediate) Tag() string {
return mi.tag
}

// SetTag sets the tag value in the imageindexintermediate struct.
func (mi *ImageIndexIntermediate) SetTag(tag string) {
mi.tag = tag
}

// MediaType of the imageindex's manifest.
func (mi ImageIndexIntermediate) MediaType() (types.MediaType, error) {
return mi.Index.MediaType()
}

// Digest returns the sha256 of this imageindex's manifest.
func (mi ImageIndexIntermediate) Digest() (regv1.Hash, error) {
return mi.Index.Digest()
}

// Size returns the size of the imageindex.
func (mi ImageIndexIntermediate) Size() (int64, error) {
return mi.Index.Size()
}

// IndexManifest returns this image index's manifest object.
func (mi ImageIndexIntermediate) IndexManifest() (*regv1.IndexManifest, error) {
return mi.Index.IndexManifest()
}

// RawManifest returns the serialized bytes of IndexManifest().
func (mi ImageIndexIntermediate) RawManifest() ([]byte, error) {
return mi.Index.RawManifest()
}

// Image returns a v1.Image that this ImageIndex references.
func (mi ImageIndexIntermediate) Image(h regv1.Hash) (regv1.Image, error) {
return mi.Index.Image(h)
}

// ImageIndex returns a v1.ImageIndex that this ImageIndex references.
func (mi ImageIndexIntermediate) ImageIndex(h regv1.Hash) (regv1.ImageIndex, error) {
return mi.Index.ImageIndex(h)
}
Expand Down
1 change: 0 additions & 1 deletion pkg/imgpkg/imageset/image_set.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ func (i ImageSet) Export(foundImages *UnprocessedImageRefs,
return ids, nil
}

// this pushes probably to a registry
func (i *ImageSet) Import(imgOrIndexes []imagedesc.ImageOrIndex,
importRepo regname.Repository, registry registry.ImagesReaderWriter) (*ProcessedImages, error) {

Expand Down
6 changes: 6 additions & 0 deletions pkg/imgpkg/imageset/tar_image_set.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,14 @@ func (i *TarImageSet) Import(path string, importRepo regname.Repository, registr

if tarisoci {
imgOrIndexes, err = imagetar.NewTarReader(path).ReadOci(importRepo)
if err != nil {
return nil, err
}
} else {
imgOrIndexes, err = imagetar.NewTarReader(path).Read()
if err != nil {
return nil, err
}
}

processedImages, err := i.imageSet.Import(imgOrIndexes, importRepo, registry)
Expand Down
Loading

0 comments on commit 0d912bb

Please sign in to comment.