From 6f9ac7dbb866df0ccf473a17fe26cd3ef0c7e436 Mon Sep 17 00:00:00 2001 From: Denis Makogon Date: Wed, 2 Aug 2017 23:45:04 +0300 Subject: [PATCH] Logs API support for CLI --- cli/logs.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ cli/main.go | 2 ++ 2 files changed, 55 insertions(+) create mode 100644 cli/logs.go diff --git a/cli/logs.go b/cli/logs.go new file mode 100644 index 000000000..676f50aa0 --- /dev/null +++ b/cli/logs.go @@ -0,0 +1,53 @@ +package main + +import ( + "context" + "fmt" + + client "github.com/fnproject/fn/cli/client" + fnclient "github.com/funcy/functions_go/client" + apicall "github.com/funcy/functions_go/client/operations" + "github.com/urfave/cli" +) + +type logsCmd struct { + client *fnclient.Functions +} + +func logs() cli.Command { + c := logsCmd{client: client.APIClient()} + + return cli.Command{ + Name: "logs", + Usage: "manage function calls for apps", + Subcommands: []cli.Command{ + { + Name: "get", + Aliases: []string{"g"}, + Usage: "get function call log info per app", + ArgsUsage: " ", + Action: c.get, + }, + }, + } +} + +func (log *logsCmd) get(ctx *cli.Context) error { + app, callID := ctx.Args().Get(0), ctx.Args().Get(1) + params := apicall.GetAppsAppCallsCallLogParams{ + Call: callID, + App: app, + Context: context.Background(), + } + resp, err := log.client.Operations.GetAppsAppCallsCallLog(¶ms) + if err != nil { + switch err.(type) { + case *apicall.GetAppsAppCallsCallLogNotFound: + return fmt.Errorf("error: %v", err.(*apicall.GetAppsAppCallsCallLogNotFound).Payload.Error.Message) + } + return fmt.Errorf("unexpected error: %v", err) + + } + fmt.Print(resp.Payload.Log.Log) + return nil +} diff --git a/cli/main.go b/cli/main.go index 3d97eadfd..96e6e56b0 100644 --- a/cli/main.go +++ b/cli/main.go @@ -19,6 +19,7 @@ var aliases = map[string]cli.Command{ "run": run(), "call": call(), "calls": calls(), + "logs": logs(), } func aliasesFn() []cli.Command { @@ -79,6 +80,7 @@ GLOBAL OPTIONS: lambda(), version(), calls(), + logs(), testfn(), } app.Commands = append(app.Commands, aliasesFn()...)