open-nomad/drivers/docker/network_test.go
2023-04-10 15:36:59 +00:00

80 lines
2.2 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package docker
import (
"testing"
docker "github.com/fsouza/go-dockerclient"
"github.com/hashicorp/nomad/ci"
"github.com/hashicorp/nomad/plugins/drivers"
"github.com/stretchr/testify/assert"
)
func TestDriver_createSandboxContainerConfig(t *testing.T) {
ci.Parallel(t)
testCases := []struct {
inputAllocID string
inputNetworkCreateRequest *drivers.NetworkCreateRequest
expectedOutputOpts *docker.CreateContainerOptions
name string
}{
{
inputAllocID: "768b5e8c-a52e-825c-d564-51100230eb62",
inputNetworkCreateRequest: &drivers.NetworkCreateRequest{
Hostname: "",
},
expectedOutputOpts: &docker.CreateContainerOptions{
Name: "nomad_init_768b5e8c-a52e-825c-d564-51100230eb62",
Config: &docker.Config{
Image: "gcr.io/google_containers/pause-amd64:3.1",
Labels: map[string]string{
dockerLabelAllocID: "768b5e8c-a52e-825c-d564-51100230eb62",
},
},
HostConfig: &docker.HostConfig{
NetworkMode: "none",
RestartPolicy: docker.RestartUnlessStopped(),
},
},
name: "no input hostname",
},
{
inputAllocID: "768b5e8c-a52e-825c-d564-51100230eb62",
inputNetworkCreateRequest: &drivers.NetworkCreateRequest{
Hostname: "linux",
},
expectedOutputOpts: &docker.CreateContainerOptions{
Name: "nomad_init_768b5e8c-a52e-825c-d564-51100230eb62",
Config: &docker.Config{
Image: "gcr.io/google_containers/pause-amd64:3.1",
Hostname: "linux",
Labels: map[string]string{
dockerLabelAllocID: "768b5e8c-a52e-825c-d564-51100230eb62",
},
},
HostConfig: &docker.HostConfig{
NetworkMode: "none",
RestartPolicy: docker.RestartUnlessStopped(),
},
},
name: "supplied input hostname",
},
}
d := &Driver{
config: &DriverConfig{
InfraImage: "gcr.io/google_containers/pause-amd64:3.1",
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
actualOutput, err := d.createSandboxContainerConfig(tc.inputAllocID, tc.inputNetworkCreateRequest)
assert.Nil(t, err, tc.name)
assert.Equal(t, tc.expectedOutputOpts, actualOutput, tc.name)
})
}
}