Send the `tail` parameter to ACI if present

This commit is contained in:
Djordje Lukic 2020-06-29 15:40:58 +02:00
parent 169e3a9b1f
commit 6a5973597d
2 changed files with 11 additions and 12 deletions

View File

@ -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)
}

View File

@ -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
}
if req.Tail != "all" {
tail, err := strconv.Atoi(req.Tail)
if err != nil {
return err
}
lines := strings.Split(logs, "\n")
var tail *int32
// If asked for less lines than exist, take only those lines
if tail <= len(lines) {
logs = strings.Join(lines[len(lines)-tail:], "\n")
if req.Tail != "all" {
reqTail, err := strconv.Atoi(req.Tail)
if err != nil {
return err
}
i32 := int32(reqTail)
tail = &i32
}
logs, err := getACIContainerLogs(ctx, cs.ctx, groupName, containerAciName, tail)
if err != nil {
return err
}
_, err = fmt.Fprint(req.Writer, logs)