bpoole16 commented on a change in pull request #2334: (Review) Added --last 
Activation Flag 
URL: 
https://github.com/apache/incubator-openwhisk/pull/2334#discussion_r126434906
 
 

 ##########
 File path: tools/cli/go-whisk-cli/commands/activation.go
 ##########
 @@ -219,6 +243,47 @@ var activationResultCmd = &cobra.Command{
     },
 }
 
+// lastFlag(args) retrieves the last activation with flag -l or --last
+// Param: Brings in []strings from args
+// Return: Returns a []string with the latest ID or the original args and any 
errors
+func lastFlag(args []string) ([]string, error) {
+    if flags.activation.last {
+        options := &whisk.ActivationListOptions {
+            Limit: 1,
+            Skip: 0,
+        }
+        activations,_, err := client.Activations.List(options)
+        if err != nil {    // Checks Activations.List for errors when 
retrieving latest activaiton
+            whisk.Debug(whisk.DbgError, "client.Activations.List(%#v) error 
during lastFlag: %s\n", options, err)
+            return args, err
+        }
+        if len(activations) == 0 {    // Checks to to see if there are 
activations available
+            whisk.Debug(whisk.DbgError, "No activations found in activation 
list\n")
+            errStr := wski18n.T("Activation list does not contain any 
activations.")
+            whiskErr := whisk.MakeWskError(errors.New(errStr), 
whisk.EXITCODE_ERR_GENERAL, whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
+            return args, whiskErr
+        }
+        if len(args) == 0 {
+            whisk.Debug(whisk.DbgInfo, "Appending most recent activation 
ID(%s) into args\n", activations[0].ActivationID)
+            args = append(args, activations[0].ActivationID)
+        } else {
+            filterExists := fieldExists(&whisk.Activation{}, args[0])
+            if filterExists == true {    // Checks to see if filter field is 
given and not ID
+                whisk.Debug(whisk.DbgInfo, "Appending most recent activation 
ID(%s) into args\n", activations[0].ActivationID)
+                args = append(args, activations[0].ActivationID)
+                whisk.Debug(whisk.DbgInfo, "Allocating appended ID to correct 
position in args\n")
+                args[0], args[1] = args[1], args[0]    // IDs should be 
located at args[0], if a filter field is given it has to be moved to args[0]
+            } else if filterExists == false {    // Checks conflict between ID 
and --last
+                whisk.Debug(whisk.DbgError,"Can not use activation ID with 
--last flag\n")
+                errStr := wski18n.T("When specifying an activation ID, do not 
use the --last flag.")
 
 Review comment:
   I'm using the filter field to check to see if it is an ID or a filter field, 
without it when you use `wsk activation get ACTIVATION_ID --last FIELD_FILTER` 
and it will use the activation_id given over the flag `--last`. If we are just 
summing that up to user error then I don't need the check otherwise it will 
need to check and see if an ID or field filter is given.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to