mirror of https://github.com/docker/compose.git
Merge pull request #298 from docker/fix-aci-tail
Send the `tail` parameter to ACI if present
This commit is contained in:
commit
5d29124498
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue