func (h *Handler) handleUnmount(name string, actionCall unmountActionHandler) { h.HandleFunc(name, func(w http.ResponseWriter, r *http.Request) { var req UnmountRequest if err := sdk.DecodeRequest(w, r, &req); err != nil { return } res := actionCall(req) sdk.EncodeResponse(w, res, res.Err) }) }
func (h *Handler) initMux() { h.HandleFunc(capabilitiesPath, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, defaultScope) }) h.HandleFunc(createNetworkPath, func(w http.ResponseWriter, r *http.Request) { req := &CreateNetworkRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.CreateNetwork(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(deleteNetworkPath, func(w http.ResponseWriter, r *http.Request) { req := &DeleteNetworkRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DeleteNetwork(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(createEndpointPath, func(w http.ResponseWriter, r *http.Request) { req := &CreateEndpointRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.CreateEndpoint(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(deleteEndpointPath, func(w http.ResponseWriter, r *http.Request) { req := &DeleteEndpointRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DeleteEndpoint(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(endpointInfoPath, func(w http.ResponseWriter, r *http.Request) { req := &InfoRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.driver.EndpointInfo(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(joinPath, func(w http.ResponseWriter, r *http.Request) { req := &JoinRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.driver.Join(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(leavePath, func(w http.ResponseWriter, r *http.Request) { req := &LeaveRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.Leave(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) }
func (h *Handler) initMux() { h.HandleFunc(capabilitiesPath, func(w http.ResponseWriter, r *http.Request) { res, err := h.ipam.GetCapabilities() if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(addressSpacesPath, func(w http.ResponseWriter, r *http.Request) { res, err := h.ipam.GetDefaultAddressSpaces() if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(requestPoolPath, func(w http.ResponseWriter, r *http.Request) { req := &RequestPoolRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.ipam.RequestPool(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(releasePoolPath, func(w http.ResponseWriter, r *http.Request) { req := &ReleasePoolRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.ipam.ReleasePool(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(requestAddressPath, func(w http.ResponseWriter, r *http.Request) { req := &RequestAddressRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.ipam.RequestAddress(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(releaseAddressPath, func(w http.ResponseWriter, r *http.Request) { req := &ReleaseAddressRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.ipam.ReleaseAddress(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, make(map[string]string), "") }) }
func (h *Handler) initMux() { h.HandleFunc(capabilitiesPath, func(w http.ResponseWriter, r *http.Request) { res, err := h.driver.GetCapabilities() if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } if res == nil { msg := "Network driver must implement GetCapabilities" sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(createNetworkPath, func(w http.ResponseWriter, r *http.Request) { log.Println("Entering go-plugins-helpers createnetwork") req := &CreateNetworkRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.CreateNetwork(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(deleteNetworkPath, func(w http.ResponseWriter, r *http.Request) { req := &DeleteNetworkRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DeleteNetwork(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(createEndpointPath, func(w http.ResponseWriter, r *http.Request) { req := &CreateEndpointRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.driver.CreateEndpoint(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(deleteEndpointPath, func(w http.ResponseWriter, r *http.Request) { req := &DeleteEndpointRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DeleteEndpoint(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(endpointInfoPath, func(w http.ResponseWriter, r *http.Request) { req := &InfoRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.driver.EndpointInfo(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(joinPath, func(w http.ResponseWriter, r *http.Request) { req := &JoinRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.driver.Join(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(leavePath, func(w http.ResponseWriter, r *http.Request) { req := &LeaveRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.Leave(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(discoverNewPath, func(w http.ResponseWriter, r *http.Request) { req := &DiscoveryNotification{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DiscoverNew(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(discoverDeletePath, func(w http.ResponseWriter, r *http.Request) { req := &DiscoveryNotification{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DiscoverDelete(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(programExtConnPath, func(w http.ResponseWriter, r *http.Request) { req := &ProgramExternalConnectivityRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.ProgramExternalConnectivity(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(revokeExtConnPath, func(w http.ResponseWriter, r *http.Request) { req := &RevokeExternalConnectivityRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.RevokeExternalConnectivity(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) }
func (h *Handler) initMux() { h.HandleFunc(capabilitiesPath, func(w http.ResponseWriter, r *http.Request) { res, err := h.driver.GetCapabilities() if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } if res == nil { msg := "Network driver must implement GetCapabilities" sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(createNetworkPath, func(w http.ResponseWriter, r *http.Request) { req := &CreateNetworkRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.CreateNetwork(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(deleteNetworkPath, func(w http.ResponseWriter, r *http.Request) { req := &DeleteNetworkRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DeleteNetwork(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(createEndpointPath, func(w http.ResponseWriter, r *http.Request) { req := &CreateEndpointRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.CreateEndpoint(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(deleteEndpointPath, func(w http.ResponseWriter, r *http.Request) { req := &DeleteEndpointRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DeleteEndpoint(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(endpointInfoPath, func(w http.ResponseWriter, r *http.Request) { req := &InfoRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.driver.EndpointInfo(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(joinPath, func(w http.ResponseWriter, r *http.Request) { req := &JoinRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } res, err := h.driver.Join(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) } sdk.EncodeResponse(w, res, "") }) h.HandleFunc(leavePath, func(w http.ResponseWriter, r *http.Request) { req := &LeaveRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.Leave(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(discoverNewPath, func(w http.ResponseWriter, r *http.Request) { req := &DiscoverRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DiscoverNew(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) h.HandleFunc(discoverDeletePath, func(w http.ResponseWriter, r *http.Request) { req := &DiscoverRequest{} err := sdk.DecodeRequest(w, r, req) if err != nil { return } err = h.driver.DiscoverDelete(req) if err != nil { msg := err.Error() sdk.EncodeResponse(w, NewErrorResponse(msg), msg) return } sdk.EncodeResponse(w, make(map[string]string), "") }) }