in parsers/manifest_parser.go [772:805]
func (dm *YAMLParser) composeActionExec(manifestFilePath string, manifestFileName string, action Action) (string, *whisk.Exec, error) {
var actionFilePath string
exec := new(whisk.Exec)
var err error
if len(action.Code) != 0 {
exec, err = dm.readActionCode(manifestFilePath, action)
if err != nil {
return actionFilePath, nil, err
}
}
if len(action.Function) != 0 {
actionFilePath, exec, err = dm.readActionFunction(manifestFilePath, manifestFileName, action)
if err != nil {
return actionFilePath, nil, err
}
}
// when an action has Docker image specified,
// set exec.Kind to "blackbox" and
// set exec.Image to specified image e.g. dockerhub/image
// when an action Native is set to true,
// set exec.Image to openwhisk/skeleton
if len(action.Docker) != 0 || action.Native {
exec.Kind = runtimes.BLACKBOX
if action.Native {
exec.Image = NATIVE_DOCKER_IMAGE
} else {
exec.Image = wskenv.InterpolateStringWithEnvVar(action.Docker).(string)
}
}
return actionFilePath, exec, err
}