Put it all together
This commit is contained in:
+37
-3
@@ -41,8 +41,10 @@ Its job is to:
|
|||||||
package router
|
package router
|
||||||
|
|
||||||
import (
|
import (
|
||||||
// "fmt"
|
"fmt"
|
||||||
// "net/http"
|
"net/http"
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
flag "github.com/ogier/pflag"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -59,12 +61,44 @@ type (
|
|||||||
options struct {
|
options struct {
|
||||||
port int
|
port int
|
||||||
poolManagerUrl string
|
poolManagerUrl string
|
||||||
|
controllerUrl string
|
||||||
//...
|
//...
|
||||||
}
|
}
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// request url ---[trigger]---> function(name,uid) ----[pool mgr]----> k8s service url
|
// request url ---[mux]---> function(name,uid) ----[fmap]----> k8s service url
|
||||||
|
|
||||||
// request url ---[trigger]---> function(name, deployment) ----[deployment]----> function(name, uid) ----[pool mgr]---> k8s service url
|
// request url ---[trigger]---> function(name, deployment) ----[deployment]----> function(name, uid) ----[pool mgr]---> k8s service url
|
||||||
|
|
||||||
|
func router(httpTriggerSet *HTTPTriggerSet) (*mutableRouter) {
|
||||||
|
muxRouter := mux.NewRouter()
|
||||||
|
mr := NewMutableRouter(muxRouter)
|
||||||
|
httpTriggerSet.subscribeRouter(mr)
|
||||||
|
return mr
|
||||||
|
}
|
||||||
|
|
||||||
|
func server(port int, httpTriggerSet *HTTPTriggerSet) {
|
||||||
|
mr := router(httpTriggerSet)
|
||||||
|
url := fmt.Sprintf(":%v", port)
|
||||||
|
http.ListenAndServe(url, mr)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getOptions() (*options) {
|
||||||
|
options := &options{}
|
||||||
|
|
||||||
|
flag.IntVar(&options.port, "port", 80, "Port to listen on")
|
||||||
|
|
||||||
|
// default to using dns service discovery
|
||||||
|
flag.StringVar(&options.poolManagerUrl, "poolmanager_url", "http://poolmanager/", "URL for the PoolManager service")
|
||||||
|
flag.StringVar(&options.controllerUrl, "controller_url", "http://controller/", "URL for the controller service")
|
||||||
|
|
||||||
|
return options
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
options := getOptions()
|
||||||
|
fmap := makeFunctionServiceMap()
|
||||||
|
triggers := makeHTTPTriggerSet(fmap, options.controllerUrl, options.poolManagerUrl)
|
||||||
|
server(options.port, triggers)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user