mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
mock container networking and fix filtering bug
This commit is contained in:
parent
51033c4dec
commit
63f7836d39
@ -410,7 +410,7 @@ func (f *FakeDockerClient) ListContainers(options dockertypes.ContainerListOptio
|
|||||||
var filtered []dockertypes.Container
|
var filtered []dockertypes.Container
|
||||||
for _, container := range containerList {
|
for _, container := range containerList {
|
||||||
for _, statusFilter := range statusFilters {
|
for _, statusFilter := range statusFilters {
|
||||||
if container.Status == statusFilter {
|
if toDockerContainerStatus(container.Status) == statusFilter {
|
||||||
filtered = append(filtered, container)
|
filtered = append(filtered, container)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -443,6 +443,19 @@ func (f *FakeDockerClient) ListContainers(options dockertypes.ContainerListOptio
|
|||||||
return containerList, err
|
return containerList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func toDockerContainerStatus(state string) string {
|
||||||
|
switch {
|
||||||
|
case strings.HasPrefix(state, StatusCreatedPrefix):
|
||||||
|
return "created"
|
||||||
|
case strings.HasPrefix(state, StatusRunningPrefix):
|
||||||
|
return "running"
|
||||||
|
case strings.HasPrefix(state, StatusExitedPrefix):
|
||||||
|
return "exited"
|
||||||
|
default:
|
||||||
|
return "unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// InspectContainer is a test-spy implementation of Interface.InspectContainer.
|
// InspectContainer is a test-spy implementation of Interface.InspectContainer.
|
||||||
// It adds an entry "inspect" to the internal method call record.
|
// It adds an entry "inspect" to the internal method call record.
|
||||||
func (f *FakeDockerClient) InspectContainer(id string) (*dockertypes.ContainerJSON, error) {
|
func (f *FakeDockerClient) InspectContainer(id string) (*dockertypes.ContainerJSON, error) {
|
||||||
@ -565,6 +578,18 @@ func (f *FakeDockerClient) StartContainer(id string) error {
|
|||||||
}
|
}
|
||||||
f.appendContainerTrace("Started", id)
|
f.appendContainerTrace("Started", id)
|
||||||
container, ok := f.ContainerMap[id]
|
container, ok := f.ContainerMap[id]
|
||||||
|
if container.HostConfig.NetworkMode.IsContainer() {
|
||||||
|
hostContainerID := container.HostConfig.NetworkMode.ConnectedContainer()
|
||||||
|
found := false
|
||||||
|
for _, container := range f.RunningContainerList {
|
||||||
|
if container.ID == hostContainerID {
|
||||||
|
found = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
return fmt.Errorf("failed to start container \"%s\": Error response from daemon: cannot join network of a non running container: %s", id, hostContainerID)
|
||||||
|
}
|
||||||
|
}
|
||||||
timestamp := f.Clock.Now()
|
timestamp := f.Clock.Now()
|
||||||
if !ok {
|
if !ok {
|
||||||
container = convertFakeContainer(&FakeContainer{ID: id, Name: id, CreatedAt: timestamp})
|
container = convertFakeContainer(&FakeContainer{ID: id, Name: id, CreatedAt: timestamp})
|
||||||
|
Loading…
Reference in New Issue
Block a user