func findContainersForProject(name string) ([]types.Container, error) { client, err := client.NewEnvClient() if err != nil { return []types.Container{}, err } filterArgs := filters.NewArgs() if filterArgs, err = filters.ParseFlag(docker.KermitLabelFilter, filterArgs); err != nil { return []types.Container{}, err } return client.ContainerList(context.Background(), types.ContainerListOptions{ All: true, Filter: filterArgs, }) }
func (s *CliSuite) TearDownTest(c *C) { // Delete all containers client := GetClient(c) containers, err := client.ContainerList(context.Background(), types.ContainerListOptions{ All: true, }) c.Assert(err, IsNil) for _, container := range containers { // Unpause container (if paused) and ignore error (if wasn't paused) client.ContainerUnpause(context.Background(), container.ID) // And remove force \o/ err := client.ContainerRemove(context.Background(), container.ID, types.ContainerRemoveOptions{ Force: true, RemoveVolumes: true, }) c.Assert(err, IsNil) } }
// Looks for the specified running container and makes sure it's running either // SUSE or openSUSE. func checkContainerRunning(id string) (types.Container, error) { client := getDockerClient() var container types.Container containers, err := client.ContainerList(types.ContainerListOptions{}) if err != nil { return container, fmt.Errorf("Error while fetching running containers: %v", err) } found := false for _, c := range containers { if id == c.ID { container = c found = true break } // look also for the short version of the container ID if len(id) >= 12 && strings.Index(c.ID, id) == 0 { container = c found = true break } // for some reason the daemon has all the names prefixed by "/" if arrayIncludeString(c.Names, "/"+id) { container = c found = true break } } if !found { return container, fmt.Errorf("Cannot find running container: %s", id) } cache := getCacheFile() if !cache.isSUSE(container.Image) { return container, fmt.Errorf( "The container %s is based on the Docker image %s which is not a SUSE system", id, container.Image) } return container, nil }