func runDeisCacheTest(t *testing.T, testSessionUID string, etcdPort string, servicePort string) { cli, stdout, stdoutPipe := dockercliutils.GetNewClient() done := make(chan bool, 1) err := dockercliutils.BuildImage(t, "../", "deis/cache:"+testSessionUID) if err != nil { t.Fatal(err) } ipaddr := utils.GetHostIPAddress() done <- true go func() { <-done err = dockercliutils.RunContainer(cli, "--name", "deis-cache-"+testSessionUID, "--rm", "-p", servicePort+":6379", "-e", "PUBLISH="+servicePort, "-e", "HOST="+ipaddr, "-e", "ETCD_PORT="+etcdPort, "deis/cache:"+testSessionUID) }() dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "started") if err != nil { t.Fatal(err) } }
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.NewUuid() err := dockercliutils.BuildImage(t, "../", "deis/controller:"+testID) if err != nil { t.Fatal(err) } etcdPort := utils.GetRandomPort() dockercliutils.RunEtcdTest(t, testID, etcdPort) handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort) etcdutils.Publishvalues(t, handler) dbPort := utils.GetRandomPort() mockserviceutils.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) dockercliutils.DeisServiceTest( t, "deis-controller-"+testID, servicePort, "http") dockercliutils.ClearTestSession(t, testID) }
func runDeisBuilderTest( t *testing.T, testSessionUID string, etcdPort string, servicePort string) { cli, stdout, stdoutPipe := dockercliutils.GetNewClient() done := make(chan bool, 1) err := dockercliutils.BuildImage(t, "../", "deis/builder:"+testSessionUID) if err != nil { t.Fatal(err) } dockercliutils.RunDeisDataTest(t, "--name", "deis-builder-data", "-v", "/var/lib/docker", "deis/base", "/bin/true") //docker run --name deis-builder -p 2223:22 -e PUBLISH=22 // -e HOST=${COREOS_PRIVATE_IPV4} -e PORT=2223 // --volumes-from deis-builder-data --privileged deis/builder ipaddr := utils.GetHostIPAddress() done <- true go func() { <-done err = dockercliutils.RunContainer(cli, "--name", "deis-builder-"+testSessionUID, "--rm", "-p", servicePort+":22", "-e", "PUBLISH=22", "-e", "STORAGE_DRIVER=devicemapper", "-e", "HOST="+ipaddr, "-e", "ETCD_PORT="+etcdPort, "-e", "PORT="+servicePort, "--volumes-from", "deis-builder-data", "--privileged", "deis/builder:"+testSessionUID) }() time.Sleep(5000 * time.Millisecond) dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "deis-builder running") if err != nil { t.Fatal(err) } }
func TestBuilder(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", "/deis/services", } testID := utils.NewUuid() err := dockercliutils.BuildImage(t, "../", "deis/builder:"+testID) if err != nil { t.Fatal(err) } etcdPort := utils.GetRandomPort() dockercliutils.RunEtcdTest(t, testID, etcdPort) handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort) etcdutils.Publishvalues(t, handler) servicePort := utils.GetRandomPort() fmt.Printf("--- Test deis-builder-%s at port %s\n", testID, servicePort) runDeisBuilderTest(t, testID, etcdPort, servicePort) // TODO: builder needs a few seconds to wake up here--fixme! time.Sleep(5000 * time.Millisecond) dockercliutils.DeisServiceTest( t, "deis-builder-"+testID, servicePort, "tcp") dockercliutils.ClearTestSession(t, testID) }
func runDeisRegistryTest( t *testing.T, testSessionUID string, etcdPort string, servicePort string) { cli, stdout, stdoutPipe := dockercliutils.GetNewClient() done := make(chan bool, 1) err := dockercliutils.BuildImage(t, "../", "deis/registry:"+testSessionUID) if err != nil { t.Fatal(err) } dockercliutils.RunDeisDataTest(t, "--name", "deis-registry-data", "-v", "/data", "deis/base", "/bin/true") ipaddr := utils.GetHostIPAddress() done <- true go func() { <-done err = dockercliutils.RunContainer(cli, "--name", "deis-registry-"+testSessionUID, "--rm", "-p", servicePort+":5000", "-e", "PUBLISH="+servicePort, "-e", "HOST="+ipaddr, "-e", "ETCD_PORT="+etcdPort, "--volumes-from", "deis-registry-data", "deis/registry:"+testSessionUID) }() time.Sleep(2000 * time.Millisecond) dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "Booting") if err != nil { t.Fatal(err) } }
func runDeisLoggerTest( t *testing.T, testSessionUID string, etcdPort string, servicePort string) { cli, stdout, stdoutPipe := dockercliutils.GetNewClient() done := make(chan bool, 1) err := dockercliutils.BuildImage(t, "../", "deis/logger:"+testSessionUID) if err != nil { t.Fatal(err) } dockercliutils.RunDeisDataTest(t, "--name", "deis-logger-data", "-v", "/var/log/deis", "deis/base", "true") ipaddr := utils.GetHostIPAddress() done <- true go func() { <-done err = dockercliutils.RunContainer(cli, "--name", "deis-logger-"+testSessionUID, "--rm", "-p", servicePort+":514/udp", "-e", "PUBLISH="+servicePort, "-e", "HOST="+ipaddr, "-e", "ETCD_PORT="+etcdPort, "--volumes-from", "deis-logger-data", "deis/logger:"+testSessionUID) }() dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "deis-logger running") if err != nil { t.Fatal(err) } }
func TestDatabase(t *testing.T) { testID := utils.NewUuid() err := dockercliutils.BuildImage(t, "../", "deis/database:"+testID) if err != nil { t.Fatal(err) } etcdPort := utils.GetRandomPort() dockercliutils.RunEtcdTest(t, testID, etcdPort) servicePort := utils.GetRandomPort() fmt.Printf("--- Test deis-database-%s at port %s\n", testID, servicePort) runDeisDatabaseTest(t, testID, etcdPort, servicePort) dockercliutils.DeisServiceTest( t, "deis-database-"+testID, servicePort, "tcp") dockercliutils.ClearTestSession(t, testID) }
func TestRegistry(t *testing.T) { setkeys := []string{ "/deis/cache/host", "/deis/cache/port", } setdir := []string{ "/deis/cache", } testID := utils.NewUuid() err := dockercliutils.BuildImage(t, "../", "deis/registry:"+testID) if err != nil { t.Fatal(err) } etcdPort := utils.GetRandomPort() dockercliutils.RunEtcdTest(t, testID, etcdPort) handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort) etcdutils.Publishvalues(t, handler) servicePort := utils.GetRandomPort() fmt.Printf("--- Test deis-registry-%s at port %s\n", testID, servicePort) runDeisRegistryTest(t, testID, etcdPort, servicePort) dockercliutils.DeisServiceTest( t, "deis-registry-"+testID, servicePort, "http") dockercliutils.ClearTestSession(t, testID) }