in parsers/manifest_parser.go [1005:1068]
func (dm *YAMLParser) ComposeTriggers(filePath string, pkg Package, managedAnnotations whisk.KeyValue, packageInputs PackageInputs) ([]*whisk.Trigger, error) {
var errorParser error
var listOfTriggers []*whisk.Trigger = make([]*whisk.Trigger, 0)
for _, trigger := range pkg.GetTriggerList() {
wsktrigger := new(whisk.Trigger)
if i, ok := packageInputs.Inputs[wskenv.GetEnvVarName(trigger.Name)]; ok {
wsktrigger.Name = i.Value.(string)
} else {
wsktrigger.Name = wskenv.ConvertSingleName(trigger.Name)
}
wsktrigger.Namespace = trigger.Namespace
pub := false
wsktrigger.Publish = &pub
// print warning information when .Source key's value is not empty
if len(trigger.Source) != 0 {
warningString := wski18n.T(
wski18n.ID_WARN_KEY_DEPRECATED_X_oldkey_X_filetype_X_newkey_X,
map[string]interface{}{
wski18n.KEY_OLD: YAML_KEY_SOURCE,
wski18n.KEY_NEW: YAML_KEY_FEED,
wski18n.KEY_FILE_TYPE: wski18n.MANIFEST_FILE})
wskprint.PrintOpenWhiskWarning(warningString)
}
if len(trigger.Feed) == 0 {
trigger.Feed = trigger.Source
}
// replacing env. variables here in the trigger feed name
// to support trigger feed with $READ_FROM_ENV_TRIGGER_FEED
trigger.Feed = wskenv.ConvertSingleName(trigger.Feed)
keyValArr := make(whisk.KeyValueArr, 0)
if len(trigger.Feed) != 0 {
var keyVal whisk.KeyValue
keyVal.Key = YAML_KEY_FEED
keyVal.Value = trigger.Feed
keyValArr = append(keyValArr, keyVal)
wsktrigger.Annotations = keyValArr
}
inputs, err := dm.composeInputs(trigger.Inputs, packageInputs, filePath)
if err != nil {
return nil, errorParser
}
if len(inputs) > 0 {
wsktrigger.Parameters = inputs
}
listOfAnnotations := dm.composeAnnotations(trigger.Annotations)
if len(listOfAnnotations) > 0 {
wsktrigger.Annotations = append(wsktrigger.Annotations, listOfAnnotations...)
}
// add managed annotations if its a managed deployment
if utils.Flags.Managed || utils.Flags.Sync {
wsktrigger.Annotations = append(wsktrigger.Annotations, managedAnnotations)
}
listOfTriggers = append(listOfTriggers, wsktrigger)
}
return listOfTriggers, nil
}