func TestController(t *testing.T) { setkeys := []string{ "/deis/registry/protocol", "deis/registry/host", "/deis/registry/port", "/deis/cache/host", "/deis/cache/port", } setdir := []string{ "/deis/controller", "/deis/cache", "/deis/database", "/deis/registry", "/deis/domains", } testID := utils.NewID() err := dockercli.BuildImage(t, "../", "deis/controller:"+testID) if err != nil { t.Fatal(err) } etcdPort := utils.GetRandomPort() dockercli.RunEtcdTest(t, testID, etcdPort) handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort) etcdutils.Publishvalues(t, handler) dbPort := utils.GetRandomPort() mock.RunMockDatabase(t, testID, etcdPort, dbPort) servicePort := utils.GetRandomPort() fmt.Printf("--- Test deis-controller-%s at port %s\n", testID, servicePort) runDeisControllerTest(t, testID, etcdPort, servicePort) dockercli.DeisServiceTest( t, "deis-controller-"+testID, servicePort, "http") dockercli.ClearTestSession(t, testID) }
func TestController(t *testing.T) { var err error setkeys := []string{ "/deis/registry/protocol", "/deis/registry/host", "/deis/registry/port", "/deis/platform/domain", "/deis/logs/host", } setdir := []string{ "/deis/controller", "/deis/database", "/deis/registry", "/deis/domains", "/deis/scheduler", } tag, etcdPort := utils.BuildTag(), utils.RandomPort() imageName := utils.ImagePrefix() + "controller" + ":" + tag //start etcd container etcdName := "deis-etcd-" + tag cli, stdout, stdoutPipe := dockercli.NewClient() dockercli.RunTestEtcd(t, etcdName, etcdPort) defer cli.CmdRm("-f", etcdName) handler := etcdutils.InitEtcd(setdir, setkeys, etcdPort) etcdutils.PublishEtcd(t, handler) mock.RunMockDatabase(t, tag, etcdPort, utils.RandomPort()) defer cli.CmdRm("-f", "deis-test-database-"+tag) host, port := utils.HostAddress(), utils.RandomPort() fmt.Printf("--- Run %s at %s:%s\n", imageName, host, port) name := "deis-controller-" + tag defer cli.CmdRm("-f", name) go func() { cli.CmdRm("-f", name) err = dockercli.RunContainer(cli, "--name", name, "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "-v", "/var/run/fleet.sock:/var/run/fleet.sock", "-p", port+":8000", "-e", "EXTERNAL_PORT="+port, "-e", "HOST="+host, "-e", "ETCD_PORT="+etcdPort, imageName) }() dockercli.PrintToStdout(t, stdout, stdoutPipe, "Booting") if err != nil { t.Fatal(err) } // FIXME: Wait until etcd keys are published time.Sleep(5000 * time.Millisecond) dockercli.DeisServiceTest(t, name, port, "http") etcdutils.VerifyEtcdValue(t, "/deis/controller/host", host, etcdPort) etcdutils.VerifyEtcdValue(t, "/deis/controller/port", port, etcdPort) }