func TestNewFromDocker(t *testing.T) { cfg, err := config.NewFromFile("config/testdata/compose.yml", containerTestVars, map[string]interface{}{}, false) if err != nil { t.Fatal(err) } container := NewContainerFromConfig(config.NewContainerName("myapp", "main"), cfg.Containers["main"]) opts, err := container.CreateContainerOptions() if err != nil { t.Fatal(err) } apiContainer := &docker.Container{ Config: &docker.Config{ Labels: opts.Config.Labels, }, State: docker.State{ Running: true, }, Name: "/myapp.main", } configFromAPI, err := config.NewFromDocker(apiContainer) if err != nil { t.Fatal(err) } compareResult := cfg.Containers["main"].IsEqualTo(configFromAPI) assert.True(t, compareResult, "container spec converted from API should be equal to one fetched from config file, failed on field: %s", cfg.Containers["main"].LastCompareField()) }
func TestClientResolveVersions(t *testing.T) { t.Skip() dockerCli, err := dockerclient.New() if err != nil { t.Fatal(err) } client, err := NewClient(&DockerClient{ Docker: dockerCli, }) if err != nil { t.Fatal(err) } containers := []*Container{ &Container{ Name: config.NewContainerName("test", "test"), Image: imagename.NewFromString("golang:1.4.*"), }, } if err := client.resolveVersions(true, true, template.Vars{}, containers); err != nil { t.Fatal(err) } pretty.Println(containers) }
// GetContainersFromConfig returns the list of Container objects from // a spec Config object. func GetContainersFromConfig(cfg *config.Config) []*Container { var containers []*Container for name, containerConfig := range cfg.Containers { if strings.HasPrefix(name, "_") { continue } containerName := config.NewContainerName(cfg.Namespace, name) containers = append(containers, NewContainerFromConfig(containerName, containerConfig)) } return containers }
func TestCreateContainerOptions(t *testing.T) { cfg, err := config.NewFromFile("config/testdata/compose.yml", containerTestVars, map[string]interface{}{}, false) if err != nil { t.Fatal(err) } container := NewContainerFromConfig(config.NewContainerName("myapp", "main"), cfg.Containers["main"]) opts, err := container.CreateContainerOptions() if err != nil { t.Fatal(err) } assert.IsType(t, &docker.CreateContainerOptions{}, opts) }