func runDeisControllerTest( t *testing.T, testID string, etcdPort string, servicePort string) { var err error cli, stdout, stdoutPipe := dockercli.GetNewClient() go func() { err = dockercli.RunContainer(cli, "--name", "deis-controller-"+testID, "--rm", "-p", servicePort+":8000", "-e", "PUBLISH="+servicePort, "-e", "HOST="+utils.GetHostIPAddress(), "-e", "ETCD_PORT="+etcdPort, "deis/controller:"+testID) }() dockercli.PrintToStdout(t, stdout, stdoutPipe, "Booting") if err != nil { t.Fatal(err) } }
func runDeisDatabaseTest( t *testing.T, testID string, etcdPort string, servicePort string) { var err error dockercli.RunDeisDataTest(t, "--name", "deis-database-data", "-v", "/var/lib/postgresql", "deis/base", "true") cli, stdout, stdoutPipe := dockercli.GetNewClient() go func() { err = dockercli.RunContainer(cli, "--name", "deis-database-"+testID, "--rm", "-p", servicePort+":5432", "-e", "PUBLISH="+servicePort, "-e", "HOST="+utils.GetHostIPAddress(), "-e", "ETCD_PORT="+etcdPort, "--volumes-from", "deis-database-data", "deis/database:"+testID) }() dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-database running") if err != nil { t.Fatal(err) } }
// RunMockDatabase starts a mock postgresql database for testing. func RunMockDatabase(t *testing.T, uid string, etcdPort string, dbPort string) { var err error cli, stdout, stdoutPipe := dockercli.GetNewClient() done := make(chan bool, 1) dbImage := "paintedfox/postgresql:latest" ipaddr := utils.GetHostIPAddress() done <- true go func() { <-done err = dockercli.RunContainer(cli, "--name", "deis-test-database-"+uid, "--rm", "-p", dbPort+":5432", "-e", "PUBLISH="+dbPort, "-e", "HOST="+ipaddr, "-e", "USER=deis", "-e", "DB=deis", "-e", "PASS=deis", dbImage) }() time.Sleep(1000 * time.Millisecond) dockercli.PrintToStdout(t, stdout, stdoutPipe, "Starting") setkeys := []string{ "/deis/database/user", "/deis/database/password", "/deis/database/name", } setdir := []string{} dbhandler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort) etcdutils.Publishvalues(t, dbhandler) etcdutils.SetEtcdValues(t, []string{"/deis/database/host", "/deis/database/port", "/deis/database/engine"}, []string{ipaddr, dbPort, "postgresql_psycopg2"}, dbhandler.C) if err != nil { t.Fatal(err) } }
func runDeisBuilderTest( t *testing.T, testID string, etcdPort string, servicePort string) { var err error dockercli.RunDeisDataTest(t, "--name", "deis-builder-data", "-v", "/var/lib/docker", "deis/base", "true") cli, stdout, stdoutPipe := dockercli.GetNewClient() go func() { err = dockercli.RunContainer(cli, "--name", "deis-builder-"+testID, "--rm", "-p", servicePort+":22", "-e", "PUBLISH=22", "-e", "STORAGE_DRIVER=aufs", "-e", "HOST="+utils.GetHostIPAddress(), "-e", "ETCD_PORT="+etcdPort, "-e", "PORT="+servicePort, "--volumes-from", "deis-builder-data", "--privileged", "deis/builder:"+testID) }() dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-builder running") if err != nil { t.Fatal(err) } }