...

Source file src/edge-infra.dev/pkg/edge/api/types/artifact_types.go

Documentation: edge-infra.dev/pkg/edge/api/types

     1  package types
     2  
     3  import (
     4  	"strings"
     5  
     6  	whv1 "edge-infra.dev/pkg/f8n/warehouse/k8s/apis/v1alpha1"
     7  )
     8  
     9  const (
    10  	DefaultVersionTag = "latest"
    11  )
    12  
    13  // ArtifactVersion is a reference to an OCI artifact. E.g., store:latest. Name is provided without
    14  // a registry context. Version may either be a tag or a digest
    15  type ArtifactVersion struct {
    16  	Name    string `json:"name"`
    17  	Version string `json:"version"`
    18  }
    19  
    20  func FromBaseArtifact(a whv1.BaseArtifact) ArtifactVersion {
    21  	av := ArtifactVersion{
    22  		Name:    a.Name,
    23  		Version: a.Digest,
    24  	}
    25  	// Digest is preferred, default to Tag if it is empty
    26  	if av.Version == "" {
    27  		av.Version = a.Tag
    28  	}
    29  
    30  	return av
    31  }
    32  
    33  func (a ArtifactVersion) ToBaseArtifact() whv1.BaseArtifact {
    34  	ba := whv1.BaseArtifact{
    35  		Name: a.Name,
    36  	}
    37  	if strings.Contains(a.Version, ":") {
    38  		// is a digest
    39  		ba.Digest = a.Version
    40  	} else {
    41  		// must be a tag
    42  		ba.Tag = a.Version
    43  	}
    44  	return ba
    45  }
    46  

View as plain text