in deployers/servicedeployer.go [1369:1414]
func (deployer *ServiceDeployer) deleteFeedAction(trigger *whisk.Trigger, feedName string) error {
displayPreprocessingInfo(parsers.YAML_KEY_FEED, trigger.Name, false)
params := make(whisk.KeyValueArr, 0)
// TODO() define keys and operations as const
params = append(params, whisk.KeyValue{Key: "authKey", Value: deployer.ClientConfig.AuthToken})
params = append(params, whisk.KeyValue{Key: "lifecycleEvent", Value: "DELETE"})
params = append(params, whisk.KeyValue{Key: "triggerName", Value: "/" + deployer.Client.Namespace + "/" + trigger.Name})
parameters := make(map[string]interface{})
for _, keyVal := range params {
parameters[keyVal.Key] = keyVal.Value
}
qName, err := utils.ParseQualifiedName(feedName, deployer.ClientConfig.Namespace)
if err != nil {
return err
}
if _, _, ok := deployer.Client.Triggers.Get(trigger.Name); ok != nil {
displayPostprocessingInfo(parsers.YAML_KEY_FEED, trigger.Name, false)
return nil
}
namespace := deployer.Client.Namespace
deployer.Client.Namespace = qName.Namespace
var response *http.Response
err = retry(DEFAULT_ATTEMPTS, DEFAULT_INTERVAL, func() error {
_, response, err = deployer.Client.Actions.Invoke(qName.EntityName, parameters, true, false)
return err
})
deployer.Client.Namespace = namespace
if err != nil {
wskErr := err.(*whisk.WskError)
errString := wski18n.T(wski18n.ID_ERR_FEED_INVOKE_X_err_X_code_X,
map[string]interface{}{wski18n.KEY_ERR: wskErr.Error(), wski18n.KEY_CODE: strconv.Itoa(wskErr.ExitCode)})
whisk.Debug(whisk.DbgError, errString)
return wskderrors.NewWhiskClientError(wskErr.Error(), wskErr.ExitCode, response)
}
displayPostprocessingInfo(parsers.YAML_KEY_FEED, trigger.Name, false)
return nil
}