Admin Interface & Handlers

* In Progress, Not Done Yet
+ Added Handlers to cover public and admin handlers
+ Added WebServer
+ InitHandlers used the new class
This commit is contained in:
Thorsten committed 2014-11-06 17:49:04 +01:00
1 parent f33f7b5c29
commit c1e8ca4b07
10 files changed
+126 -23

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
package WebServer
type ICCCStartUpMessage struct {
IPAddressAndPort string
}
+34
View File
@@ -0,0 +1,34 @@
package WebServer
import (
"github.com/SommerEngineering/Ocean/Handlers"
"github.com/SommerEngineering/Ocean/Log"
LM "github.com/SommerEngineering/Ocean/Log/Meta"
"github.com/SommerEngineering/Ocean/Tools"
"net/http"
"time"
)
func init() {
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameSTARTUP, `Init the web server now.`)
defer Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameSTARTUP, `Done init the web server.`)
serverPublicAddressPort := Tools.LocalIPAddressAndPort()
serverPublic = &http.Server{}
serverPublic.Addr = serverPublicAddressPort
serverPublic.Handler = Handlers.GetPublicMux()
serverPublic.ReadTimeout = 10 * time.Second
serverPublic.WriteTimeout = 10 * time.Second
serverPublic.MaxHeaderBytes = 1024
serverPublic.SetKeepAlivesEnabled(true)
serverAdmin = &http.Server{}
serverAdmin.Addr = serverAdminAddressPort
serverAdmin.Handler = Handlers.GetAdminMux()
serverAdmin.ReadTimeout = 10 * time.Second
serverAdmin.WriteTimeout = 10 * time.Second
serverAdmin.MaxHeaderBytes = 1024
serverAdmin.SetKeepAlivesEnabled(true)
}
+23
View File
@@ -0,0 +1,23 @@
package WebServer
import (
"github.com/SommerEngineering/Ocean/ICCC"
"github.com/SommerEngineering/Ocean/Log"
LM "github.com/SommerEngineering/Ocean/Log/Meta"
)
func Start() {
if serverPublic != nil {
// Tell the whole cluster, that we are up and ready:
data := ICCCStartUpMessage{}
data.IPAddressAndPort = serverPublicAddressPort
ICCC.WriteMessage2All(ICCC.ChannelSYSTEM, `System::Start`, data)
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameSTARTUP, `Web server is now listening.`, `Configuration for hostname and port.`, serverPublicAddressPort)
go serverPublic.ListenAndServe()
}
if serverAdmin != nil {
go serverAdmin.ListenAndServe()
}
}
+14
View File
@@ -0,0 +1,14 @@
package WebServer
import (
LM "github.com/SommerEngineering/Ocean/Log/Meta"
"net/http"
)
var (
senderName LM.Sender = `System::WebServer`
serverPublic *http.Server = nil
serverAdmin *http.Server = nil
serverPublicAddressPort string = ""
serverAdminAddressPort string = ""
)