Skip to content

Commit

Permalink
skip digest for component constructors
Browse files Browse the repository at this point in the history
  • Loading branch information
mandelsoft committed Nov 11, 2024
1 parent d115a37 commit 5eeb18c
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 18 deletions.
11 changes: 6 additions & 5 deletions cmds/ocm/commands/ocmcmds/common/addhdlrs/comp/elements.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/addhdlrs/rscs"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/addhdlrs/srcs"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/inputs"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/options/schemaoption"
"ocm.software/ocm/cmds/ocm/common/options"
"ocm.software/ocm/cmds/ocm/common/utils"
)
Expand All @@ -34,28 +35,28 @@ type ResourceSpecHandler struct {
srchandler *srcs.ResourceSpecHandler
refhandler *refs.ResourceSpecHandler
version string
schema string
schema *schemaoption.Option
}

var (
_ common.ResourceSpecHandler = (*ResourceSpecHandler)(nil)
_ options.Options = (*ResourceSpecHandler)(nil)
)

func New(v string, schema string, opts ...ocm.ModificationOption) *ResourceSpecHandler {
func New(opts ...ocm.ModificationOption) *ResourceSpecHandler {
return &ResourceSpecHandler{
rschandler: rscs.New(opts...),
srchandler: srcs.New(),
refhandler: refs.New(),
version: v,
schema: schema,
schema: schemaoption.New(compdesc.DefaultSchemeVersion),
}
}

func (h *ResourceSpecHandler) AddFlags(fs *pflag.FlagSet) {
h.rschandler.AddFlags(fs)
h.srchandler.AddFlags(fs)
h.refhandler.AddFlags(fs)
fs.StringVarP(&h.version, "version", "v", "", "default version for components")
}

func (h *ResourceSpecHandler) WithCLIOptions(opts ...options.Options) *ResourceSpecHandler {
Expand Down Expand Up @@ -118,7 +119,7 @@ func (h *ResourceSpecHandler) Add(ctx clictx.Context, ictx inputs.Context, elem
cd.References = nil
}

schema := h.schema
schema := h.schema.Schema
if r.Meta.ConfiguredVersion != "" {
schema = r.Meta.ConfiguredVersion
}
Expand Down
3 changes: 1 addition & 2 deletions cmds/ocm/commands/ocmcmds/common/addhdlrs/options.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package addhdlrs

import (
"github.com/mandelsoft/goutils/generics"
"github.com/spf13/pflag"

"ocm.software/ocm/api/ocm"
Expand All @@ -16,7 +15,7 @@ var _ ocm.ModificationOption = (*Options)(nil)
func (o *Options) AddFlags(fs *pflag.FlagSet) {
f := fs.Lookup("replace")
if f != nil {
if bp := generics.Cast[*bool](f.Value); bp != nil {
if f.Value.Type() == "bool" {
return
}
}
Expand Down
8 changes: 8 additions & 0 deletions cmds/ocm/commands/ocmcmds/common/addhdlrs/rscs/elements.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ func (h ResourceSpecHandler) Set(v ocm.ComponentVersionAccess, r addhdlrs.Elemen
SourceRefs: compdescv2.ConvertSourcerefsTo(spec.SourceRefs),
}
opts := h.getModOpts()
if spec.SkipDigestGeneration {
opts = append(opts, ocm.SkipDigest()) //nolint:staticcheck // skip digest still used for tests)
}
if ocm.IsIntermediate(v.Repository().GetSpecification()) {
opts = append(opts, ocm.ModifyResource())
}
Expand All @@ -126,6 +129,11 @@ type ResourceSpec struct {
SourceRefs []compdescv2.SourceRef `json:"srcRefs"`

addhdlrs.ResourceInput `json:",inline"`

// additional process related options

// SkipDigestGeneration omits the digest generation.
SkipDigestGeneration bool `json:"skipDigestGeneration,omitempty"`
}

var _ addhdlrs.ElementSpec = (*ResourceSpec)(nil)
Expand Down
16 changes: 5 additions & 11 deletions cmds/ocm/commands/ocmcmds/components/add/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (

clictx "ocm.software/ocm/api/cli"
"ocm.software/ocm/api/ocm"
"ocm.software/ocm/api/ocm/compdesc"
"ocm.software/ocm/api/ocm/extensions/repositories/ctf"
"ocm.software/ocm/api/ocm/tools/transfer/transferhandler/standard"
"ocm.software/ocm/api/utils/accessio"
Expand All @@ -25,7 +24,6 @@ import (
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/options/fileoption"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/options/lookupoption"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/options/rscbyvalueoption"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/options/schemaoption"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/options/templateroption"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/common/options/uploaderoption"
"ocm.software/ocm/cmds/ocm/commands/ocmcmds/names"
Expand All @@ -48,23 +46,21 @@ type Command struct {
FormatHandler ctf.FormatHandler
Format string

Version string
Handler *comp.ResourceSpecHandler

Envs []string

Archive string

Options addhdlrs.Options

Elements []addhdlrs.ElementSource
}

func NewCommand(ctx clictx.Context, names ...string) *cobra.Command {
return utils.SetupCommand(&Command{
Handler: comp.New().WithCLIOptions(&addhdlrs.Options{}),
BaseCommand: utils.NewBaseCommand(ctx,
formatoption.New(ctf.GetFormats()...),
fileoption.New("transport-archive"),
schemaoption.New(compdesc.DefaultSchemeVersion),
templateroption.New(""),
dryrunoption.New("evaluate and print component specifications", true),
lookupoption.New(),
Expand Down Expand Up @@ -155,12 +151,11 @@ Various elements support to add arbitrary information by using labels

func (o *Command) AddFlags(fs *pflag.FlagSet) {
o.BaseCommand.AddFlags(fs)
o.Options.AddFlags(fs)
o.Handler.AddFlags(fs)
fs.BoolVarP(&o.Force, "force", "f", false, "remove existing content")
fs.BoolVarP(&o.Create, "create", "c", false, "(re)create archive")
fs.BoolVarP(&o.Closure, "complete", "C", false, "include all referenced component version")
fs.StringArrayVarP(&o.Envs, "settings", "s", nil, "settings file with variable settings (yaml)")
fs.StringVarP(&o.Version, "version", "v", "", "default version for components")
}

func (o *Command) Complete(args []string) error {
Expand Down Expand Up @@ -209,8 +204,7 @@ func (o *Command) Run() error {

printer := common2.NewPrinter(o.Context.StdOut())
fs := o.Context.FileSystem()
h := comp.New(o.Version, schemaoption.From(o).Schema).WithCLIOptions(&o.Options)
elems, ictx, err := addhdlrs.ProcessDescriptions(o.Context, printer, templateroption.From(o).Options, h, o.Elements)
elems, ictx, err := addhdlrs.ProcessDescriptions(o.Context, printer, templateroption.From(o).Options, o.Handler, o.Elements)
if err != nil {
return err
}
Expand Down Expand Up @@ -250,7 +244,7 @@ func (o *Command) Run() error {
}

if err == nil {
err = comp.ProcessComponents(o.Context, ictx, repo, general.Conditional(o.Closure, lookupoption.From(o).Resolver, nil), thdlr, h, elems)
err = comp.ProcessComponents(o.Context, ictx, repo, general.Conditional(o.Closure, lookupoption.From(o).Resolver, nil), thdlr, o.Handler, elems)
cerr := repo.Close()
if err == nil {
err = cerr
Expand Down

0 comments on commit 5eeb18c

Please sign in to comment.