Skip to content

Commit

Permalink
Replace gorilla/mux with go-chi/chi in broker server
Browse files Browse the repository at this point in the history
  • Loading branch information
silvestre committed Jul 11, 2023
1 parent fcbab32 commit 0ea8839
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 14 deletions.
10 changes: 5 additions & 5 deletions src/autoscaler/api/brokerserver/broker_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import (
"net/url"

"code.cloudfoundry.org/app-autoscaler/src/autoscaler/api/broker"
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/testhelpers"

"github.com/gorilla/mux"
"github.com/pivotal-cf/brokerapi/v10/handlers"

"code.cloudfoundry.org/app-autoscaler/src/autoscaler/db"
Expand Down Expand Up @@ -76,7 +76,7 @@ var _ = Describe("BrokerHandler", func() {
var body []byte
JustBeforeEach(func() {
req, err = http.NewRequest(http.MethodPut, "", bytes.NewReader(body))
req = mux.SetURLVars(req, map[string]string{"instance_id": testInstanceId})
req = testhelpers.SetURLParams(req, "instance_id", testInstanceId)
handler.Provision(resp, req)
})
BeforeEach(func() {
Expand Down Expand Up @@ -300,7 +300,7 @@ var _ = Describe("BrokerHandler", func() {
callUpdateServiceInstance := func() {
req, err = http.NewRequest(http.MethodPut, "", bytes.NewReader(body))
Expect(err).NotTo(HaveOccurred())
req = mux.SetURLVars(req, map[string]string{"instance_id": testInstanceId})
req = testhelpers.SetURLParams(req, "instance_id", testInstanceId)
handler.Update(resp, req)
}
updatePlanAndDefaultPolicy := func(fromPlan string, targetPlan string, defaultPolicy json.RawMessage) {
Expand Down Expand Up @@ -693,7 +693,7 @@ var _ = Describe("BrokerHandler", func() {
Describe("DeleteServiceInstance", func() {
JustBeforeEach(func() {
req, _ = http.NewRequest(http.MethodDelete, "", nil)
req = mux.SetURLVars(req, map[string]string{"instance_id": testInstanceId})
req = testhelpers.SetURLParams(req, "instance_id", testInstanceId)
values := url.Values{}
values.Set("service_id", "autoscaler-guid")
values.Set("plan_id", "autoscaler-free-plan-id")
Expand Down Expand Up @@ -1100,7 +1100,7 @@ var _ = Describe("BrokerHandler", func() {
Describe("UnBindServiceInstance", func() {
BeforeEach(func() {
req, _ = http.NewRequest(http.MethodDelete, "", nil)
req = mux.SetURLVars(req, map[string]string{"instance_id": testInstanceId, "binding_id": testBindingId})
req = testhelpers.SetURLParams(req, "instance_id", testInstanceId, "binding_id", testBindingId)
values := url.Values{}
values.Set("service_id", "autoscaler-guid")
values.Set("plan_id", "autoscaler-free-plan-id")
Expand Down
11 changes: 2 additions & 9 deletions src/autoscaler/api/brokerserver/broker_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,12 @@ import (
"github.com/pivotal-cf/brokerapi/v10/domain"

"code.cloudfoundry.org/lager/v3"
"github.com/gorilla/mux"
"github.com/go-chi/chi/v5"
"github.com/tedsuo/ifrit"
"github.com/tedsuo/ifrit/http_server"
"golang.org/x/crypto/bcrypt"
)

type VarsFunc func(w http.ResponseWriter, r *http.Request, vars map[string]string)

func (vh VarsFunc) ServeHTTP(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
vh(w, r, vars)
}

type MiddleWareBrokerCredentials struct {
BrokerUsername string
BrokerUsernameHash []byte
Expand Down Expand Up @@ -123,7 +116,7 @@ func NewBrokerServer(logger lager.Logger, conf *config.Config, bindingdb db.Bind
httpStatusCollectMiddleware := healthendpoint.NewHTTPStatusCollectMiddleware(httpStatusCollector)
autoscalerBroker := broker.New(logger.Session("broker"), conf, bindingdb, policydb, catalog.Services, credentials)

r := mux.NewRouter()
r := chi.NewRouter()

r.Use(basicAuthentication.Middleware)
r.Use(httpStatusCollectMiddleware.Collect)
Expand Down
1 change: 1 addition & 0 deletions src/autoscaler/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -797,6 +797,7 @@ github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpx
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
Expand Down
18 changes: 18 additions & 0 deletions src/autoscaler/testhelpers/chi.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package testhelpers

import (
"context"
"net/http"

"github.com/go-chi/chi/v5"
)

func SetURLParams(req *http.Request, params ...string) *http.Request {
rc := chi.NewRouteContext()
for i := 0; i+1 < len(params); i += 2 {
rc.URLParams.Add(params[i], params[i+1])
}
ctx := context.WithValue(req.Context(), chi.RouteCtxKey, rc)
req = req.WithContext(ctx)
return req
}

0 comments on commit 0ea8839

Please sign in to comment.