|
@@ -19,10 +19,9 @@ import (
|
|
|
"time"
|
|
|
|
|
|
"github.com/docker/docker/api/types"
|
|
|
- "github.com/docker/docker/api/types/container"
|
|
|
eventtypes "github.com/docker/docker/api/types/events"
|
|
|
- networktypes "github.com/docker/docker/api/types/network"
|
|
|
"github.com/docker/docker/client"
|
|
|
+ "github.com/docker/docker/integration/internal/container"
|
|
|
"github.com/docker/docker/integration/internal/request"
|
|
|
"github.com/docker/docker/internal/test/environment"
|
|
|
"github.com/docker/docker/pkg/authorization"
|
|
@@ -91,17 +90,15 @@ func TestAuthZPluginAllowRequest(t *testing.T) {
|
|
|
client, err := d.NewClient()
|
|
|
require.Nil(t, err)
|
|
|
|
|
|
- // Ensure command successful
|
|
|
- createResponse, err := client.ContainerCreate(context.Background(), &container.Config{Cmd: []string{"top"}, Image: "busybox"}, &container.HostConfig{}, &networktypes.NetworkingConfig{}, "")
|
|
|
- require.Nil(t, err)
|
|
|
+ ctx := context.Background()
|
|
|
|
|
|
- err = client.ContainerStart(context.Background(), createResponse.ID, types.ContainerStartOptions{})
|
|
|
- require.Nil(t, err)
|
|
|
+ // Ensure command successful
|
|
|
+ cID := container.Run(t, ctx, client)
|
|
|
|
|
|
assertURIRecorded(t, ctrl.requestsURIs, "/containers/create")
|
|
|
- assertURIRecorded(t, ctrl.requestsURIs, fmt.Sprintf("/containers/%s/start", createResponse.ID))
|
|
|
+ assertURIRecorded(t, ctrl.requestsURIs, fmt.Sprintf("/containers/%s/start", cID))
|
|
|
|
|
|
- _, err = client.ServerVersion(context.Background())
|
|
|
+ _, err = client.ServerVersion(ctx)
|
|
|
require.Nil(t, err)
|
|
|
require.Equal(t, 1, ctrl.versionReqCount)
|
|
|
require.Equal(t, 1, ctrl.versionResCount)
|
|
@@ -213,19 +210,17 @@ func TestAuthZPluginAllowEventStream(t *testing.T) {
|
|
|
client, err := d.NewClient()
|
|
|
require.Nil(t, err)
|
|
|
|
|
|
+ ctx := context.Background()
|
|
|
+
|
|
|
startTime := strconv.FormatInt(systemTime(t, client, testEnv).Unix(), 10)
|
|
|
events, errs, cancel := systemEventsSince(client, startTime)
|
|
|
defer cancel()
|
|
|
|
|
|
// Create a container and wait for the creation events
|
|
|
- createResponse, err := client.ContainerCreate(context.Background(), &container.Config{Cmd: []string{"top"}, Image: "busybox"}, &container.HostConfig{}, &networktypes.NetworkingConfig{}, "")
|
|
|
- require.Nil(t, err)
|
|
|
-
|
|
|
- err = client.ContainerStart(context.Background(), createResponse.ID, types.ContainerStartOptions{})
|
|
|
- require.Nil(t, err)
|
|
|
+ cID := container.Run(t, ctx, client)
|
|
|
|
|
|
for i := 0; i < 100; i++ {
|
|
|
- c, err := client.ContainerInspect(context.Background(), createResponse.ID)
|
|
|
+ c, err := client.ContainerInspect(ctx, cID)
|
|
|
require.Nil(t, err)
|
|
|
if c.State.Running {
|
|
|
break
|
|
@@ -241,7 +236,7 @@ func TestAuthZPluginAllowEventStream(t *testing.T) {
|
|
|
for !created && !started {
|
|
|
select {
|
|
|
case event := <-events:
|
|
|
- if event.Type == eventtypes.ContainerEventType && event.Actor.ID == createResponse.ID {
|
|
|
+ if event.Type == eventtypes.ContainerEventType && event.Actor.ID == cID {
|
|
|
if event.Action == "create" {
|
|
|
created = true
|
|
|
}
|
|
@@ -264,7 +259,7 @@ func TestAuthZPluginAllowEventStream(t *testing.T) {
|
|
|
// authorization plugin
|
|
|
assertURIRecorded(t, ctrl.requestsURIs, "/events")
|
|
|
assertURIRecorded(t, ctrl.requestsURIs, "/containers/create")
|
|
|
- assertURIRecorded(t, ctrl.requestsURIs, fmt.Sprintf("/containers/%s/start", createResponse.ID))
|
|
|
+ assertURIRecorded(t, ctrl.requestsURIs, fmt.Sprintf("/containers/%s/start", cID))
|
|
|
}
|
|
|
|
|
|
func systemTime(t *testing.T, client client.APIClient, testEnv *environment.Execution) time.Time {
|
|
@@ -347,6 +342,8 @@ func TestAuthZPluginEnsureLoadImportWorking(t *testing.T) {
|
|
|
client, err := d.NewClient()
|
|
|
require.Nil(t, err)
|
|
|
|
|
|
+ ctx := context.Background()
|
|
|
+
|
|
|
tmp, err := ioutil.TempDir("", "test-authz-load-import")
|
|
|
require.Nil(t, err)
|
|
|
defer os.RemoveAll(tmp)
|
|
@@ -360,13 +357,9 @@ func TestAuthZPluginEnsureLoadImportWorking(t *testing.T) {
|
|
|
|
|
|
exportedImagePath := filepath.Join(tmp, "export.tar")
|
|
|
|
|
|
- createResponse, err := client.ContainerCreate(context.Background(), &container.Config{Cmd: []string{}, Image: "busybox"}, &container.HostConfig{}, &networktypes.NetworkingConfig{}, "")
|
|
|
- require.Nil(t, err)
|
|
|
-
|
|
|
- err = client.ContainerStart(context.Background(), createResponse.ID, types.ContainerStartOptions{})
|
|
|
- require.Nil(t, err)
|
|
|
+ cID := container.Run(t, ctx, client)
|
|
|
|
|
|
- responseReader, err := client.ContainerExport(context.Background(), createResponse.ID)
|
|
|
+ responseReader, err := client.ContainerExport(context.Background(), cID)
|
|
|
require.Nil(t, err)
|
|
|
defer responseReader.Close()
|
|
|
file, err := os.Create(exportedImagePath)
|