(cmd *cobra.Command, args []string, update bool)
| 397 | } |
| 398 | |
| 399 | func parseAction(cmd *cobra.Command, args []string, update bool) (*whisk.Action, error) { |
| 400 | var err error |
| 401 | var existingAction *whisk.Action |
| 402 | var paramArgs []string |
| 403 | var annotArgs []string |
| 404 | var parameters interface{} |
| 405 | var annotations interface{} |
| 406 | |
| 407 | var qualifiedName = new(QualifiedName) |
| 408 | |
| 409 | if qualifiedName, err = NewQualifiedName(args[0]); err != nil { |
| 410 | return nil, NewQualifiedNameError(args[0], err) |
| 411 | } |
| 412 | |
| 413 | Client.Namespace = qualifiedName.GetNamespace() |
| 414 | action := new(whisk.Action) |
| 415 | action.Name = qualifiedName.GetEntityName() |
| 416 | action.Namespace = qualifiedName.GetNamespace() |
| 417 | action.Limits = getLimits( |
| 418 | cmd.LocalFlags().Changed(MEMORY_FLAG), |
| 419 | cmd.LocalFlags().Changed(LOG_SIZE_FLAG), |
| 420 | cmd.LocalFlags().Changed(TIMEOUT_FLAG), |
| 421 | cmd.LocalFlags().Changed(CONCURRENCY_FLAG), |
| 422 | Flags.action.memory, |
| 423 | Flags.action.logsize, |
| 424 | Flags.action.timeout, |
| 425 | Flags.action.concurrency) |
| 426 | |
| 427 | paramArgs = Flags.common.param |
| 428 | annotArgs = Flags.common.annotation |
| 429 | |
| 430 | if len(paramArgs) > 0 { |
| 431 | if parameters, err = getJSONFromStrings(paramArgs, true); err != nil { |
| 432 | return nil, getJSONFromStringsParamError(paramArgs, true, err) |
| 433 | } |
| 434 | |
| 435 | action.Parameters = parameters.(whisk.KeyValueArr) |
| 436 | } |
| 437 | |
| 438 | if len(annotArgs) > 0 { |
| 439 | if annotations, err = getJSONFromStrings(annotArgs, true); err != nil { |
| 440 | return nil, getJSONFromStringsAnnotError(annotArgs, true, err) |
| 441 | } |
| 442 | |
| 443 | action.Annotations = annotations.(whisk.KeyValueArr) |
| 444 | } |
| 445 | |
| 446 | if len(Flags.action.kind) > 0 && len(Flags.action.docker) > 0 { |
| 447 | errStr := wski18n.T("Cannot specify both --kind and --docker at the same time.") |
| 448 | return nil, whisk.MakeWskError(errors.New(errStr), whisk.NOT_ALLOWED, whisk.DISPLAY_MSG, whisk.NO_DISPLAY_USAGE) |
| 449 | } |
| 450 | |
| 451 | if Flags.action.copy { |
| 452 | var copiedQualifiedName = new(QualifiedName) |
| 453 | |
| 454 | if copiedQualifiedName, err = NewQualifiedName(args[1]); err != nil { |
| 455 | return nil, NewQualifiedNameError(args[1], err) |
| 456 | } |
no test coverage detected