Merge pull request #298 from docker/fix-aci-tail

Send the `tail` parameter to ACI if present
This commit is contained in:
Guillaume Tardif 2020-06-30 09:45:48 +02:00 committed by GitHub
commit 5d29124498
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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
}
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)