@@ -10,6 +10,7 @@ import (
1010 "github.com/deis/builder/pkg/conf"
1111 "github.com/deis/builder/pkg/gitreceive"
1212 "github.com/deis/builder/pkg/gitreceive/storage"
13+ "github.com/deis/builder/pkg/healthsrv"
1314 "github.com/deis/builder/pkg/sshd"
1415 pkglog "github.com/deis/pkg/log"
1516)
@@ -43,15 +44,33 @@ func main() {
4344 pkglog .Err ("getting config for %s [%s]" , serverConfAppName , err )
4445 os .Exit (1 )
4546 }
46- s3Client , err := storage .GetClient
47+ s3Client , err := storage .GetClient ( cnf . HealthSrvTestStorageRegion )
4748 if err != nil {
4849 pkglog .Err ("getting s3 client [%s]" , err )
4950 os .Exit (1 )
5051 }
5152 pkglog .Info ("starting health check server on port %d" , cnf .HealthSrvPort )
52- go healthsrv .Start (cnf .HealtHSrvPort , s3Client )
53+ healthSrvCh := make (chan error )
54+ go func () {
55+ if err := healthsrv .Start (cnf .HealthSrvPort , s3Client ); err != nil {
56+ healthSrvCh <- err
57+ }
58+ }()
59+
5360 pkglog .Info ("starting SSH server on %s:%d" , cnf .SSHHostIP , cnf .SSHHostPort )
54- os .Exit (pkg .Run (cnf .SSHHostIP , cnf .SSHHostPort , "boot" ))
61+ sshCh := make (chan int )
62+ go func () {
63+ sshCh <- pkg .Run (cnf .SSHHostIP , cnf .SSHHostPort , "boot" )
64+ }()
65+
66+ select {
67+ case err := <- healthSrvCh :
68+ pkglog .Err ("Error running health server (%s)" , err )
69+ os .Exit (1 )
70+ case i := <- sshCh :
71+ pkglog .Err ("Unexpected SSH server stop with code %d" , i )
72+ os .Exit (i )
73+ }
5574 },
5675 },
5776 {
0 commit comments