in parsers/manifest_parser.go [479:537]
func (dm *YAMLParser) ComposeSequences(namespace string, sequences map[string]Sequence, packageName string, manifestFilePath string, managedAnnotations whisk.KeyValue, packageInputs PackageInputs) ([]utils.ActionRecord, error) {
var listOfSequences []utils.ActionRecord = make([]utils.ActionRecord, 0)
var errorParser error
for key, sequence := range sequences {
wskaction := new(whisk.Action)
wskaction.Exec = new(whisk.Exec)
wskaction.Exec.Kind = YAML_KEY_SEQUENCE
actionList := strings.Split(sequence.Actions, ",")
var components []string
for _, a := range actionList {
act := strings.TrimSpace(a)
if !strings.ContainsRune(act, []rune(PATH_SEPARATOR)[0]) && !strings.HasPrefix(act, packageName+PATH_SEPARATOR) &&
strings.ToLower(packageName) != DEFAULT_PACKAGE {
act = path.Join(packageName, act)
}
components = append(components, path.Join(PATH_SEPARATOR+namespace, act))
}
wskaction.Exec.Components = components
if i, ok := packageInputs.Inputs[wskenv.GetEnvVarName(key)]; ok {
wskaction.Name = i.Value.(string)
} else {
wskaction.Name = wskenv.ConvertSingleName(key)
}
pub := false
wskaction.Publish = &pub
wskaction.Namespace = namespace
annotations := dm.composeAnnotations(sequence.Annotations)
if len(annotations) > 0 {
wskaction.Annotations = annotations
}
// appending managed annotations if its a managed deployment
if utils.Flags.Managed || utils.Flags.Sync {
wskaction.Annotations = append(wskaction.Annotations, managedAnnotations)
}
// Web Export
// Treat sequence as a web action, a raw HTTP web action, or as a standard action based on web-export;
// when web-export is set to yes | true, treat sequence as a web action,
// when web-export is set to raw, treat sequence as a raw HTTP web action,
// when web-export is set to no | false, treat sequence as a standard action
if len(sequence.Web) != 0 {
wskaction.Annotations, errorParser = webaction.SetWebActionAnnotations(manifestFilePath, wskaction.Name, sequence.Web, wskaction.Annotations, false)
if errorParser != nil {
return nil, errorParser
}
}
// TODO Add web-secure support for sequences?
record := utils.ActionRecord{Action: wskaction, Packagename: packageName, Filepath: key}
listOfSequences = append(listOfSequences, record)
}
return listOfSequences, nil
}