本文整理匯總了Golang中github.com/cascades-fbp/cascades/components/utils.AssertError函數的典型用法代碼示例。如果您正苦於以下問題:Golang AssertError函數的具體用法?Golang AssertError怎麽用?Golang AssertError使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了AssertError函數的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: openPorts
// openPorts create ZMQ sockets and start socket monitoring loops
func openPorts() {
inPort, err = utils.CreateInputPort("debug/crasher.in", *inputEndpoint, inCh)
utils.AssertError(err)
outPort, err = utils.CreateOutputPort("debug/crasher.out", *outputEndpoint, outCh)
utils.AssertError(err)
}
示例2: openPorts
// openPorts create ZMQ sockets and start socket monitoring loops
func openPorts() {
intervalPort, err = utils.CreateInputPort("ticker.interval", *intervalEndpoint, nil)
utils.AssertError(err)
outPort, err = utils.CreateOutputPort("ticker.out", *outputEndpoint, outCh)
utils.AssertError(err)
}
示例3: openPorts
// openPorts create ZMQ sockets and start socket monitoring loops
func openPorts() {
inPort, err = utils.CreateInputPort("", *inputEndpoint, nil)
utils.AssertError(err)
outPort, err = utils.CreateOutputPort("bonjour/discover.out", *outputEndpoint, outCh)
utils.AssertError(err)
}
示例4: openPorts
// openPorts create ZMQ sockets and start socket monitoring loops
func openPorts() {
optionsPort, err = utils.CreateInputPort("tcp/server.options", *optionsEndpoint, nil)
utils.AssertError(err)
inPort, err = utils.CreateInputPort("tcp/server.in", *inputEndpoint, inCh)
utils.AssertError(err)
}
示例5: openPorts
// openPorts create ZMQ sockets and start socket monitoring loops
func openPorts() {
inPort, err = utils.CreateInputPort("fs/watchdog.in", *inputEndpoint, nil)
utils.AssertError(err)
if *errorEndpoint != "" {
errPort, err = utils.CreateOutputPort("fs/watchdog.err", *errorEndpoint, errCh)
utils.AssertError(err)
}
}
示例6: openPorts
func openPorts() {
context, err = zmq.NewContext()
utils.AssertError(err)
optionsPort, err = utils.CreateInputPort(context, *optionsEndpoint)
utils.AssertError(err)
inPort, err = utils.CreateInputPort(context, *inputEndpoint)
utils.AssertError(err)
}
示例7: openPorts
// openPorts create ZMQ sockets and start socket monitoring loops
func openPorts() {
optionsPort, err = utils.CreateInputPort("influxdb/write.options", *optionsEndpoint, nil)
utils.AssertError(err)
inPort, err = utils.CreateInputPort("influxdb/write.in", *inputEndpoint, inCh)
utils.AssertError(err)
if *errorEndpoint != "" {
errPort, err = utils.CreateOutputPort("influxdb/write.err", *errorEndpoint, errCh)
utils.AssertError(err)
}
}
示例8: openPorts
func openPorts() {
optsPort, err = utils.CreateInputPort("mqtt-property.options", *optionsEndpoint, nil)
utils.AssertError(err)
tmplPort, err = utils.CreateInputPort("mqtt-property.template", *templateEndpoint, nil)
utils.AssertError(err)
propPort, err = utils.CreateOutputPort("mqtt-property.property", *propertyEndpoint, outCh)
utils.AssertError(err)
if *errorEndpoint != "" {
errPort, err = utils.CreateOutputPort("mqtt-property.err", *errorEndpoint, nil)
utils.AssertError(err)
}
}
示例9: mainLoop
// mainLoop initiates all ports and handles the traffic
func mainLoop() {
service := NewService()
openPorts()
defer closePorts()
go func() {
outPort, err = utils.CreateOutputPort("tcp/server.out", *outputEndpoint, outCh)
utils.AssertError(err)
for data := range service.Output {
outPort.SendMessage(runtime.NewOpenBracket())
outPort.SendMessage(runtime.NewPacket(data[0]))
outPort.SendMessage(runtime.NewPacket(data[1]))
outPort.SendMessage(runtime.NewCloseBracket())
}
}()
waitCh := make(chan bool)
go func() {
total := 0
for {
select {
case v := <-inCh:
if !v {
log.Println("IN port is closed. Interrupting execution")
exitCh <- syscall.SIGTERM
break
} else {
total++
}
case v := <-outCh:
if !v {
log.Println("OUT port is closed. Interrupting execution")
exitCh <- syscall.SIGTERM
break
} else {
total++
}
}
if total >= 2 && waitCh != nil {
waitCh <- true
}
}
}()
log.Println("Waiting for port connections to establish... ")
select {
case <-waitCh:
log.Println("Ports connected")
waitCh = nil
case <-time.Tick(30 * time.Second):
log.Println("Timeout: port connections were not established within provided interval")
exitCh <- syscall.SIGTERM
return
}
// Wait for the configuration on the options port
log.Println("Waiting for configuration...")
var bindAddr string
for {
ip, err := optionsPort.RecvMessageBytes(0)
if err != nil {
log.Println("Error receiving IP:", err.Error())
continue
}
if !runtime.IsValidIP(ip) || !runtime.IsPacket(ip) {
continue
}
bindAddr = string(ip[1])
break
}
optionsPort.Close()
// Create binding address listener
laddr, err := net.ResolveTCPAddr("tcp", bindAddr)
if err != nil {
log.Fatalln(err)
}
listener, err := net.ListenTCP("tcp", laddr)
if err != nil {
log.Fatalln(err)
}
log.Println("Listening on", listener.Addr())
go service.Serve(listener)
log.Println("Started...")
var (
connID string
data []byte
)
for {
ip, err := inPort.RecvMessageBytes(0)
if err != nil {
log.Println("Error receiving message:", err.Error())
continue
}
if !runtime.IsValidIP(ip) {
continue
//.........這裏部分代碼省略.........
示例10: mainLoop
//.........這裏部分代碼省略.........
var (
ip [][]byte
clientOptions *httputils.HTTPClientOptions
request *http.Request
)
log.Println("Started")
for {
ip, err = reqPort.RecvMessageBytes(zmq.DONTWAIT)
if err != nil {
select {
case <-reqExitCh:
log.Println("REQ port is closed. Interrupting execution")
exitCh <- syscall.SIGTERM
break
default:
// IN port is still open
}
time.Sleep(2 * time.Second)
continue
}
if !runtime.IsValidIP(ip) {
log.Println("Invalid IP:", ip)
continue
}
err = json.Unmarshal(ip[1], &clientOptions)
if err != nil {
log.Println("ERROR: failed to unmarshal request options:", err.Error())
continue
}
if clientOptions == nil {
log.Println("ERROR: received nil request options")
continue
}
if clientOptions.Form != nil {
request, err = http.NewRequest(clientOptions.Method, clientOptions.URL, strings.NewReader(clientOptions.Form.Encode()))
} else {
request, err = http.NewRequest(clientOptions.Method, clientOptions.URL, nil)
}
utils.AssertError(err)
if clientOptions.ContentType != "" {
request.Header.Add("Content-Type", clientOptions.ContentType)
}
for k, v := range clientOptions.Headers {
request.Header.Add(k, v[0])
}
response, err := client.Do(request)
if err != nil {
log.Printf("ERROR performing HTTP %s %s: %s", request.Method, request.URL, err.Error())
if errPort != nil {
errPort.SendMessageDontwait(runtime.NewPacket([]byte(err.Error())))
}
clientOptions = nil
continue
}
resp, err := httputils.Response2Response(response)
if err != nil {
log.Printf("ERROR converting response to reply: %s", err.Error())
if errPort != nil {
errPort.SendMessageDontwait(runtime.NewPacket([]byte(err.Error())))
}
clientOptions = nil
continue
}
ip, err = httputils.Response2IP(resp)
if err != nil {
log.Printf("ERROR converting reply to IP: %s", err.Error())
if errPort != nil {
errPort.SendMessageDontwait(runtime.NewPacket([]byte(err.Error())))
}
clientOptions = nil
continue
}
if respPort != nil {
respPort.SendMessage(ip)
}
if bodyPort != nil {
bodyPort.SendMessage(runtime.NewPacket(resp.Body))
}
select {
case <-reqCh:
log.Println("REQ port is closed. Interrupting execution")
exitCh <- syscall.SIGTERM
break
default:
// file port is still open
}
clientOptions = nil
continue
}
}
示例11: mainLoop
// mainLoop initiates all ports and handles the traffic
func mainLoop() {
openPorts()
defer closePorts()
waitCh := make(chan bool)
go func() {
for {
v := <-outCh
if v && waitCh != nil {
waitCh <- true
}
if !v {
log.Println("OUT port is closed. Interrupting execution")
exitCh <- syscall.SIGTERM
break
}
}
}()
log.Println("Waiting for port connections to establish... ")
select {
case <-waitCh:
log.Println("Output port connected")
waitCh = nil
case <-time.Tick(30 * time.Second):
log.Println("Timeout: port connections were not established within provided interval")
exitCh <- syscall.SIGTERM
return
}
log.Println("Waiting for configuration IP...")
var options *bonjour.ServiceRecord
for {
ip, err := inPort.RecvMessageBytes(0)
if err != nil {
continue
}
if !runtime.IsValidIP(ip) || !runtime.IsPacket(ip) {
continue
}
if err = json.Unmarshal(ip[1], &options); err != nil {
log.Println("Error decoding options:", err.Error())
continue
}
inPort.Close()
break
}
resolver, err = bonjour.NewResolver(nil)
utils.AssertError(err)
entries := make(chan *bonjour.ServiceEntry)
err = resolver.Browse(options.Service, options.Domain, entries)
utils.AssertError(err)
log.Println("Started...")
for e := range entries {
data, err := json.Marshal(e)
if err != nil {
log.Println("Error encoding entry:", err.Error())
continue
}
outPort.SendMessage(runtime.NewPacket(data))
}
}
示例12: mainLoop
// mainLoop initiates all ports and handles the traffic
func mainLoop() {
openPorts()
defer closePorts()
// Receiver routine
go func() {
inPort, err = utils.CreateInputPort("websocket/server.in", *inputEndpoint, inCh)
utils.AssertError(err)
defer inPort.Close()
for {
ip, err := inPort.RecvMessageBytes(0)
if err != nil {
continue
}
if !runtime.IsValidIP(ip) {
continue
}
msg, err := wsutils.IP2Message(ip)
if err != nil {
log.Println("Failed to convert IP to Message:", err.Error())
continue
}
log.Printf("Received response: %#v\n", msg)
DefaultHub.Outgoing <- *msg
}
}()
// Sender routine
go func() {
outPort, err = utils.CreateOutputPort("websocket/server.out", *outputEndpoint, outCh)
utils.AssertError(err)
defer outPort.Close()
for msg := range DefaultHub.Incoming {
log.Printf("Received data from connection: %#v\n", msg)
ip, err := wsutils.Message2IP(&msg)
if err != nil {
log.Println("Failed to convert Message to IP:", err.Error())
continue
}
outPort.SendMessageDontwait(ip)
}
}()
waitCh := make(chan bool)
go func() {
total := 0
for {
select {
case v := <-inCh:
if !v {
log.Println("IN port is closed. Interrupting execution")
exitCh <- syscall.SIGTERM
break
} else {
total++
}
case v := <-outCh:
if !v {
log.Println("OUT port is closed. Interrupting execution")
exitCh <- syscall.SIGTERM
break
} else {
total++
}
}
if total >= 2 && waitCh != nil {
waitCh <- true
}
}
}()
log.Println("Waiting for port connections to establish... ")
select {
case <-waitCh:
log.Println("Ports connected")
waitCh = nil
case <-time.Tick(30 * time.Second):
log.Println("Timeout: port connections were not established within provided interval")
exitCh <- syscall.SIGTERM
return
}
log.Println("Waiting for configuration...")
var bindAddr string
for {
ip, err := optionsPort.RecvMessageBytes(0)
if err != nil {
continue
}
if !runtime.IsValidIP(ip) || !runtime.IsPacket(ip) {
continue
}
bindAddr = string(ip[1])
break
}
optionsPort.Close()
// Configure & start websocket server
http.Handle("/", websocket.Handler(WebHandler))
//.........這裏部分代碼省略.........
示例13: main
func main() {
flag.Parse()
if *jsonFlag {
doc, _ := registryEntry.JSON()
fmt.Println(string(doc))
os.Exit(0)
}
log.SetFlags(0)
if *debug {
log.SetOutput(os.Stdout)
} else {
log.SetOutput(ioutil.Discard)
}
validateArgs()
openPorts()
defer closePorts()
exitCh := utils.HandleInterruption()
// Wait for the configuration on the options port
var bindAddr string
for {
log.Println("Waiting for configuration...")
ip, err := optionsPort.RecvMultipart(0)
if err != nil {
log.Println("Error receiving IP:", err.Error())
continue
}
if !runtime.IsValidIP(ip) || !runtime.IsPacket(ip) {
continue
}
bindAddr = string(ip[1])
break
}
optionsPort.Close()
// Data from http handler and data to http handler
inCh := make(chan httputils.HTTPResponse)
outCh := make(chan HandlerRequest)
go func(ctx *zmq.Context, endpoint string) {
outPort, err = utils.CreateOutputPort(context, endpoint)
utils.AssertError(err)
// Map of uuid to requests
dataMap := make(map[string]chan httputils.HTTPResponse)
// Start listening in/out channels
for {
select {
case data := <-outCh:
dataMap[data.Request.Id] = data.ResponseCh
ip, _ := httputils.Request2IP(data.Request)
outPort.SendMultipart(ip, 0)
case resp := <-inCh:
if respCh, ok := dataMap[resp.Id]; ok {
log.Println("Resolved channel for response", resp.Id)
respCh <- resp
delete(dataMap, resp.Id)
continue
}
log.Println("Didn't find request handler mapping for a given ID", resp.Id)
}
}
}(context, *outputEndpoint)
// Web server goroutine
go func() {
mux := http.NewServeMux()
mux.HandleFunc("/", Handler(outCh))
s := &http.Server{
Handler: mux,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
ln, err := net.Listen("tcp", bindAddr)
if err != nil {
log.Println(err.Error())
exitCh <- syscall.SIGTERM
return
}
log.Printf("Starting listening %v", bindAddr)
err = s.Serve(ln)
if err != nil {
log.Println(err.Error())
exitCh <- syscall.SIGTERM
return
}
}()
// Process incoming message forever
for {
//.........這裏部分代碼省略.........
示例14: mainLoop
//.........這裏部分代碼省略.........
case intPort:
interval, err = time.ParseDuration(string(ip[1]))
log.Println("Interval specified:", interval)
case reqPort:
err = json.Unmarshal(ip[1], &request)
if err != nil {
log.Println("ERROR: failed to unmarshal request:", err.Error())
continue
}
log.Println("Request specified:", request)
case tmplPort:
err = json.Unmarshal(ip[1], &propTemplate)
if err != nil {
log.Println("ERROR: failed to unmarshal template:", err.Error())
continue
}
log.Printf("Template specified: %+v", propTemplate)
default:
log.Println("ERROR: IP from unhandled socket received!")
continue
}
}
if interval > 0 && request != nil && propTemplate != nil {
log.Println("Component configured. Moving on...")
break
}
}
log.Println("Started...")
ticker := time.NewTicker(interval)
for _ = range ticker.C {
httpRequest, err = http.NewRequest(request.Method, request.URL, nil)
utils.AssertError(err)
// Set the accepted Content-Type
if request.ContentType != "" {
httpRequest.Header.Add("Content-Type", request.ContentType)
}
// Set any additional headers if provided
for k, v := range request.Headers {
httpRequest.Header.Add(k, v[0])
}
response, err := client.Do(httpRequest)
if err != nil {
log.Printf("ERROR performing HTTP %s %s: %s\n", request.Method, request.URL, err.Error())
if errPort != nil {
errPort.SendMessageDontwait(runtime.NewPacket([]byte(err.Error())))
}
continue
}
resp, err := httputils.Response2Response(response)
if err != nil {
log.Println("ERROR converting response to reply:", err.Error())
if errPort != nil {
errPort.SendMessageDontwait(runtime.NewPacket([]byte(err.Error())))
}
continue
}
// Property output socket
if propPort != nil {
var data interface{}