dwdparse

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildArgsMap

func BuildArgsMap(dwd string) (map[string]string, error)

BuildArgsMap builds a map of the DWDirective's arguments in the form: args["key"] = value

func Validate

func Validate(rules []DWDirectiveRuleSpec, directives []string, onValidDirectiveFunc func(index int, rule DWDirectiveRuleSpec)) error

Validate a list of directives against the supplied rules. When a directive is valid for a particular rule, the `onValidDirectiveFunc` function is called.

func ValidateArgs

func ValidateArgs(spec DWDirectiveRuleSpec, args map[string]string, uniqueMap map[string]bool) error

ValidateArgs validates a map of arguments against the rule specification

Types

type DWDirectiveRuleDef

type DWDirectiveRuleDef struct {
	Key             string `json:"key"`
	Type            string `json:"type"`
	Pattern         string `json:"pattern,omitempty"`
	Min             int    `json:"min,omitempty"`
	Max             int    `json:"max,omitempty"`
	IsRequired      bool   `json:"isRequired,omitempty"`
	IsValueRequired bool   `json:"isValueRequired,omitempty"`
	UniqueWithin    string `json:"uniqueWithin,omitempty"`
}

DWDirectiveRuleDef defines the DWDirective parser rules +kubebuilder:object:generate=true

func (*DWDirectiveRuleDef) DeepCopy

func (in *DWDirectiveRuleDef) DeepCopy() *DWDirectiveRuleDef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DWDirectiveRuleDef.

func (*DWDirectiveRuleDef) DeepCopyInto

func (in *DWDirectiveRuleDef) DeepCopyInto(out *DWDirectiveRuleDef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DWDirectiveRuleSpec

type DWDirectiveRuleSpec struct {
	// Name of the #DW command. jobdw, stage_in, etc.
	Command string `json:"command"`

	// Override for the Driver ID. If left empty this defaults to the
	// name of the DWDirectiveRule
	DriverLabel string `json:"driverLabel,omitempty"`

	// Comma separated list of states that this rule wants to register for.
	// These watch states will result in an entry in the driver status array
	// in the Workflow resource
	WatchStates string `json:"watchStates,omitempty"`

	// List of key/value pairs this #DW command is expected to have
	RuleDefs []DWDirectiveRuleDef `json:"ruleDefs"`
}

DWDirectiveRuleSpec defines the desired state of DWDirective +kubebuilder:object:generate=true

func (*DWDirectiveRuleSpec) DeepCopy

func (in *DWDirectiveRuleSpec) DeepCopy() *DWDirectiveRuleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DWDirectiveRuleSpec.

func (*DWDirectiveRuleSpec) DeepCopyInto

func (in *DWDirectiveRuleSpec) DeepCopyInto(out *DWDirectiveRuleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL