summaryrefslogtreecommitdiff
path: root/pkg/varlinkapi
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/varlinkapi')
-rw-r--r--pkg/varlinkapi/attach.go14
-rw-r--r--pkg/varlinkapi/containers.go13
-rw-r--r--pkg/varlinkapi/events.go10
-rw-r--r--pkg/varlinkapi/images.go7
4 files changed, 30 insertions, 14 deletions
diff --git a/pkg/varlinkapi/attach.go b/pkg/varlinkapi/attach.go
index 9e2a265be..6c62d3514 100644
--- a/pkg/varlinkapi/attach.go
+++ b/pkg/varlinkapi/attach.go
@@ -53,7 +53,13 @@ func (i *LibpodAPI) Attach(call iopodman.VarlinkCall, name string, detachKeys st
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
-
+ state, err := ctr.State()
+ if err != nil {
+ return call.ReplyErrorOccurred(err.Error())
+ }
+ if !start && state != libpod.ContainerStateRunning {
+ return call.ReplyErrorOccurred("container must be running to attach")
+ }
reader, writer, _, pw, streams := setupStreams(call)
go func() {
@@ -62,10 +68,10 @@ func (i *LibpodAPI) Attach(call iopodman.VarlinkCall, name string, detachKeys st
}
}()
- if start {
- finalErr = startAndAttach(ctr, streams, detachKeys, resize, errChan)
- } else {
+ if state == libpod.ContainerStateRunning {
finalErr = attach(ctr, streams, detachKeys, resize, errChan)
+ } else {
+ finalErr = startAndAttach(ctr, streams, detachKeys, resize, errChan)
}
if finalErr != libpod.ErrDetach && finalErr != nil {
diff --git a/pkg/varlinkapi/containers.go b/pkg/varlinkapi/containers.go
index 237407050..872c7bc26 100644
--- a/pkg/varlinkapi/containers.go
+++ b/pkg/varlinkapi/containers.go
@@ -733,3 +733,16 @@ func newPodmanLogLine(line *libpod.LogLine) iopodman.LogLine {
Cid: line.CID,
}
}
+
+// Top displays information about a container's running processes
+func (i *LibpodAPI) Top(call iopodman.VarlinkCall, nameOrID string, descriptors []string) error {
+ ctr, err := i.Runtime.LookupContainer(nameOrID)
+ if err != nil {
+ return call.ReplyContainerNotFound(ctr.ID(), err.Error())
+ }
+ topInfo, err := ctr.Top(descriptors)
+ if err != nil {
+ return call.ReplyErrorOccurred(err.Error())
+ }
+ return call.ReplyTop(topInfo)
+}
diff --git a/pkg/varlinkapi/events.go b/pkg/varlinkapi/events.go
index 1e5696fbe..f9a9d9321 100644
--- a/pkg/varlinkapi/events.go
+++ b/pkg/varlinkapi/events.go
@@ -6,7 +6,6 @@ import (
"fmt"
"time"
- "github.com/containers/libpod/cmd/podman/shared"
"github.com/containers/libpod/cmd/podman/varlink"
"github.com/containers/libpod/libpod/events"
)
@@ -23,19 +22,16 @@ func (i *LibpodAPI) GetEvents(call iopodman.VarlinkCall, filter []string, since
stream = true
call.Continues = true
}
- filters, err := shared.GenerateEventOptions(filter, since, until)
- if err != nil {
- return call.ReplyErrorOccurred(err.Error())
- }
if len(since) > 0 || len(until) > 0 {
fromStart = true
}
eventChannel := make(chan *events.Event)
go func() {
- eventsError = i.Runtime.Events(fromStart, stream, filters, eventChannel)
+ readOpts := events.ReadOptions{FromStart: fromStart, Stream: stream, Filters: filter, EventChannel: eventChannel}
+ eventsError = i.Runtime.Events(readOpts)
}()
if eventsError != nil {
- return call.ReplyErrorOccurred(err.Error())
+ return call.ReplyErrorOccurred(eventsError.Error())
}
for {
event = <-eventChannel
diff --git a/pkg/varlinkapi/images.go b/pkg/varlinkapi/images.go
index 470eadaeb..cecddf6b3 100644
--- a/pkg/varlinkapi/images.go
+++ b/pkg/varlinkapi/images.go
@@ -4,6 +4,7 @@ package varlinkapi
import (
"bytes"
+ "context"
"encoding/json"
"fmt"
"io"
@@ -49,7 +50,7 @@ func (i *LibpodAPI) ListImages(call iopodman.VarlinkCall) error {
}
size, _ := image.Size(getContext())
- isParent, err := image.IsParent()
+ isParent, err := image.IsParent(context.TODO())
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}
@@ -503,7 +504,7 @@ func (i *LibpodAPI) DeleteUnusedImages(call iopodman.VarlinkCall) error {
return call.ReplyErrorOccurred(err.Error())
}
if len(containers) == 0 {
- if err := img.Remove(false); err != nil {
+ if err := img.Remove(context.TODO(), false); err != nil {
return call.ReplyErrorOccurred(err.Error())
}
deletedImages = append(deletedImages, img.ID())
@@ -739,7 +740,7 @@ func (i *LibpodAPI) ContainerRunlabel(call iopodman.VarlinkCall, input iopodman.
// ImagesPrune ....
func (i *LibpodAPI) ImagesPrune(call iopodman.VarlinkCall, all bool) error {
- prunedImages, err := i.Runtime.ImageRuntime().PruneImages(all)
+ prunedImages, err := i.Runtime.ImageRuntime().PruneImages(context.TODO(), all)
if err != nil {
return call.ReplyErrorOccurred(err.Error())
}