fixes re: @jcjones
This commit is contained in:
parent
16e0799742
commit
e8ac96d68d
|
|
@ -7,8 +7,6 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
||||||
"log"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/letsencrypt/boulder/ca"
|
"github.com/letsencrypt/boulder/ca"
|
||||||
"github.com/letsencrypt/boulder/cmd"
|
"github.com/letsencrypt/boulder/cmd"
|
||||||
|
|
@ -26,7 +24,7 @@ func main() {
|
||||||
cai, err := ca.NewCertificateAuthorityImpl(auditlogger, c.CA.Server, c.CA.AuthKey, c.CA.Profile)
|
cai, err := ca.NewCertificateAuthorityImpl(auditlogger, c.CA.Server, c.CA.AuthKey, c.CA.Profile)
|
||||||
cmd.FailOnError(err, "Failed to create CA impl")
|
cmd.FailOnError(err, "Failed to create CA impl")
|
||||||
|
|
||||||
for true {
|
for {
|
||||||
ch := cmd.AmqpChannel(c.AMQP.Server)
|
ch := cmd.AmqpChannel(c.AMQP.Server)
|
||||||
closeChan := ch.NotifyClose(make(chan *amqp.Error, 1))
|
closeChan := ch.NotifyClose(make(chan *amqp.Error, 1))
|
||||||
|
|
||||||
|
|
@ -38,17 +36,7 @@ func main() {
|
||||||
cas, err := rpc.NewCertificateAuthorityServer(c.AMQP.CA.Server, ch, cai)
|
cas, err := rpc.NewCertificateAuthorityServer(c.AMQP.CA.Server, ch, cai)
|
||||||
cmd.FailOnError(err, "Unable to create CA server")
|
cmd.FailOnError(err, "Unable to create CA server")
|
||||||
|
|
||||||
forever := make(chan bool)
|
cmd.RunUntilSignaled(auditlogger, cas, closeChan)
|
||||||
go func() {
|
|
||||||
for err := range closeChan {
|
|
||||||
log.Printf(" [!] AMQP Channel closed: [%s]", err)
|
|
||||||
time.Sleep(time.Second*10)
|
|
||||||
log.Printf(" [!] Reconnecting to AMQP...")
|
|
||||||
close(forever)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
cmd.MaybeRunForever(cas, forever)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,6 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
||||||
"log"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/letsencrypt/boulder/cmd"
|
"github.com/letsencrypt/boulder/cmd"
|
||||||
blog "github.com/letsencrypt/boulder/log"
|
blog "github.com/letsencrypt/boulder/log"
|
||||||
|
|
@ -45,17 +43,7 @@ func main() {
|
||||||
ras, err := rpc.NewRegistrationAuthorityServer(c.AMQP.RA.Server, ch, &rai)
|
ras, err := rpc.NewRegistrationAuthorityServer(c.AMQP.RA.Server, ch, &rai)
|
||||||
cmd.FailOnError(err, "Unable to create RA server")
|
cmd.FailOnError(err, "Unable to create RA server")
|
||||||
|
|
||||||
forever := make(chan bool)
|
cmd.RunUntilSignaled(auditlogger, ras, closeChan)
|
||||||
go func() {
|
|
||||||
for err := range closeChan {
|
|
||||||
log.Printf(" [!] AMQP Channel closed: [%s]", err)
|
|
||||||
time.Sleep(time.Second*10)
|
|
||||||
log.Printf(" [!] Reconnecting to AMQP...")
|
|
||||||
close(forever)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
cmd.MaybeRunForever(ras, forever)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,6 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
||||||
"log"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
// Load both drivers to allow configuring either
|
// Load both drivers to allow configuring either
|
||||||
_ "github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/go-sql-driver/mysql"
|
_ "github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/go-sql-driver/mysql"
|
||||||
|
|
@ -23,10 +21,10 @@ func main() {
|
||||||
app := cmd.NewAppShell("boulder-sa")
|
app := cmd.NewAppShell("boulder-sa")
|
||||||
app.Action = func(c cmd.Config) {
|
app.Action = func(c cmd.Config) {
|
||||||
// Set up logging
|
// Set up logging
|
||||||
logger, err := blog.Dial(c.Syslog.Network, c.Syslog.Server, c.Syslog.Tag)
|
auditlogger, err := blog.Dial(c.Syslog.Network, c.Syslog.Server, c.Syslog.Tag)
|
||||||
cmd.FailOnError(err, "Could not connect to Syslog")
|
cmd.FailOnError(err, "Could not connect to Syslog")
|
||||||
|
|
||||||
sai, err := sa.NewSQLStorageAuthority(logger, c.SA.DBDriver, c.SA.DBName)
|
sai, err := sa.NewSQLStorageAuthority(auditlogger, c.SA.DBDriver, c.SA.DBName)
|
||||||
cmd.FailOnError(err, "Failed to create SA impl")
|
cmd.FailOnError(err, "Failed to create SA impl")
|
||||||
|
|
||||||
for true {
|
for true {
|
||||||
|
|
@ -35,17 +33,7 @@ func main() {
|
||||||
|
|
||||||
sas := rpc.NewStorageAuthorityServer(c.AMQP.SA.Server, ch, sai)
|
sas := rpc.NewStorageAuthorityServer(c.AMQP.SA.Server, ch, sai)
|
||||||
|
|
||||||
forever := make(chan bool)
|
cmd.RunUntilSignaled(auditlogger, sas, closeChan)
|
||||||
go func() {
|
|
||||||
for err := range closeChan {
|
|
||||||
log.Printf(" [!] AMQP Channel closed: [%s]", err)
|
|
||||||
time.Sleep(time.Second*10)
|
|
||||||
log.Printf(" [!] Reconnecting to AMQP...")
|
|
||||||
close(forever)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
cmd.MaybeRunForever(sas, forever)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,6 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
||||||
"log"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/letsencrypt/boulder/cmd"
|
"github.com/letsencrypt/boulder/cmd"
|
||||||
blog "github.com/letsencrypt/boulder/log"
|
blog "github.com/letsencrypt/boulder/log"
|
||||||
|
|
@ -37,17 +35,7 @@ func main() {
|
||||||
vas, err := rpc.NewValidationAuthorityServer(c.AMQP.VA.Server, ch, &vai)
|
vas, err := rpc.NewValidationAuthorityServer(c.AMQP.VA.Server, ch, &vai)
|
||||||
cmd.FailOnError(err, "Unable to create VA server")
|
cmd.FailOnError(err, "Unable to create VA server")
|
||||||
|
|
||||||
forever := make(chan bool)
|
cmd.RunUntilSignaled(auditlogger, vas, closeChan)
|
||||||
go func() {
|
|
||||||
for err := range closeChan {
|
|
||||||
log.Printf(" [!] AMQP Channel closed: [%s]", err)
|
|
||||||
time.Sleep(time.Second*10)
|
|
||||||
log.Printf(" [!] Reconnecting to AMQP...")
|
|
||||||
close(forever)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
cmd.MaybeRunForever(vas, forever)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
||||||
"log"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/letsencrypt/boulder/cmd"
|
"github.com/letsencrypt/boulder/cmd"
|
||||||
|
|
@ -50,12 +49,12 @@ func main() {
|
||||||
// with new RA and SA rpc clients.
|
// with new RA and SA rpc clients.
|
||||||
for true {
|
for true {
|
||||||
for err := range closeChan {
|
for err := range closeChan {
|
||||||
log.Printf(" [!] AMQP Channel closed: [%s]", err)
|
auditlogger.Warning(fmt.Sprintf("AMQP Channel closed, will reconnect in 5 seconds: [%s]", err))
|
||||||
time.Sleep(time.Second*10)
|
time.Sleep(time.Second*5)
|
||||||
rac, sac, closeChan = setupWFE(c, auditlogger)
|
rac, sac, closeChan = setupWFE(c, auditlogger)
|
||||||
wfe.RA = &rac
|
wfe.RA = &rac
|
||||||
wfe.SA = &sac
|
wfe.SA = &sac
|
||||||
log.Printf(" [!] Reconnected to AMQP")
|
auditlogger.Warning("Reconnected to AMQP")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
|
||||||
14
cmd/shell.go
14
cmd/shell.go
|
|
@ -26,9 +26,11 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/codegangsta/cli"
|
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/codegangsta/cli"
|
||||||
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/streadway/amqp"
|
||||||
|
blog "github.com/letsencrypt/boulder/log"
|
||||||
"github.com/letsencrypt/boulder/rpc"
|
"github.com/letsencrypt/boulder/rpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -142,9 +144,15 @@ func RunForever(server *rpc.AmqpRPCServer) {
|
||||||
<-forever
|
<-forever
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the server and maybe wait around forever...
|
// Start the server and run until we get something on closeChan
|
||||||
func MaybeRunForever(server *rpc.AmqpRPCServer, forever chan bool) {
|
func RunUntilSignaled(logger *blog.AuditLogger, server *rpc.AmqpRPCServer, closeChan chan *amqp.Error) {
|
||||||
server.Start()
|
server.Start()
|
||||||
fmt.Fprintf(os.Stderr, "Server running...\n")
|
fmt.Fprintf(os.Stderr, "Server running...\n")
|
||||||
<-forever
|
|
||||||
|
// Block until channel closes
|
||||||
|
err := <- closeChan
|
||||||
|
|
||||||
|
logger.Warning(fmt.Sprintf("AMQP Channel closed, will reconnect in 5 seconds: [%s]", err))
|
||||||
|
time.Sleep(time.Second*5)
|
||||||
|
logger.Warning("Reconnecting to AMQP...")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue