in parsers/manifest_parser.go [1091:1133]
func (dm *YAMLParser) ComposeRules(pkg Package, packageName string, managedAnnotations whisk.KeyValue, packageInputs PackageInputs) ([]*whisk.Rule, error) {
var rules []*whisk.Rule = make([]*whisk.Rule, 0)
for _, rule := range pkg.GetRuleList() {
wskrule := new(whisk.Rule)
if i, ok := packageInputs.Inputs[wskenv.GetEnvVarName(rule.Name)]; ok {
wskrule.Name = i.Value.(string)
} else {
wskrule.Name = wskenv.ConvertSingleName(rule.Name)
}
//wskrule.Namespace = rule.Namespace
pub := false
wskrule.Publish = &pub
if i, ok := packageInputs.Inputs[wskenv.GetEnvVarName(rule.Trigger)]; ok {
wskrule.Trigger = i.Value.(string)
} else {
wskrule.Trigger = wskenv.ConvertSingleName(rule.Trigger)
}
if i, ok := packageInputs.Inputs[wskenv.GetEnvVarName(rule.Action)]; ok {
wskrule.Action = i.Value.(string)
} else {
wskrule.Action = wskenv.ConvertSingleName(rule.Action)
}
act := strings.TrimSpace(wskrule.Action.(string))
if !strings.ContainsRune(act, []rune(PATH_SEPARATOR)[0]) && !strings.HasPrefix(act, packageName+PATH_SEPARATOR) &&
strings.ToLower(packageName) != DEFAULT_PACKAGE {
act = path.Join(packageName, act)
}
wskrule.Action = act
listOfAnnotations := dm.composeAnnotations(rule.Annotations)
if len(listOfAnnotations) > 0 {
wskrule.Annotations = append(wskrule.Annotations, listOfAnnotations...)
}
// add managed annotations if its a managed deployment
if utils.Flags.Managed || utils.Flags.Sync {
wskrule.Annotations = append(wskrule.Annotations, managedAnnotations)
}
rules = append(rules, wskrule)
}
return rules, nil
}