From 6a5973597d6b05254ec50bed0280e5ae462bb2c7 Mon Sep 17 00:00:00 2001 From: Djordje Lukic Date: Mon, 29 Jun 2020 15:40:58 +0200 Subject: [PATCH] Send the `tail` parameter to ACI if present --- azure/aci.go | 4 ++-- azure/backend.go | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/azure/aci.go b/azure/aci.go index e8fefcd7f..6b13283f3 100644 --- a/azure/aci.go +++ b/azure/aci.go @@ -221,13 +221,13 @@ func exec(ctx context.Context, address string, password string, reader io.Reader } } -func getACIContainerLogs(ctx context.Context, aciContext store.AciContext, containerGroupName, containerName string) (string, error) { +func getACIContainerLogs(ctx context.Context, aciContext store.AciContext, containerGroupName, containerName string, tail *int32) (string, error) { containerClient, err := getContainerClient(aciContext.SubscriptionID) if err != nil { return "", errors.Wrapf(err, "cannot get container client") } - logs, err := containerClient.ListLogs(ctx, aciContext.ResourceGroup, containerGroupName, containerName, nil) + logs, err := containerClient.ListLogs(ctx, aciContext.ResourceGroup, containerGroupName, containerName, tail) if err != nil { return "", fmt.Errorf("cannot get container logs: %v", err) } diff --git a/azure/backend.go b/azure/backend.go index d6f80f810..623bfddf7 100644 --- a/azure/backend.go +++ b/azure/backend.go @@ -236,21 +236,20 @@ func (cs *aciContainerService) Exec(ctx context.Context, name string, command st func (cs *aciContainerService) Logs(ctx context.Context, containerName string, req containers.LogsRequest) error { groupName, containerAciName := getGroupAndContainerName(containerName) - logs, err := getACIContainerLogs(ctx, cs.ctx, groupName, containerAciName) - if err != nil { - return err - } + var tail *int32 + if req.Tail != "all" { - tail, err := strconv.Atoi(req.Tail) + reqTail, err := strconv.Atoi(req.Tail) if err != nil { return err } - lines := strings.Split(logs, "\n") + i32 := int32(reqTail) + tail = &i32 + } - // If asked for less lines than exist, take only those lines - if tail <= len(lines) { - logs = strings.Join(lines[len(lines)-tail:], "\n") - } + logs, err := getACIContainerLogs(ctx, cs.ctx, groupName, containerAciName, tail) + if err != nil { + return err } _, err = fmt.Fprint(req.Writer, logs)