Skip to content

Commit

Permalink
Rename RouterTemplate to DynamicRouter
Browse files Browse the repository at this point in the history
  • Loading branch information
cezarsa committed Jul 6, 2020
1 parent d0590db commit 3618ade
Show file tree
Hide file tree
Showing 22 changed files with 351 additions and 351 deletions.
34 changes: 17 additions & 17 deletions api/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import (
// 400: Invalid router
// 409: Router already exists
func addRouter(w http.ResponseWriter, r *http.Request, t auth.Token) (err error) {
var routerTemplate routerTypes.RouterTemplate
err = ParseInput(r, &routerTemplate)
var dynamicRouter routerTypes.DynamicRouter
err = ParseInput(r, &dynamicRouter)
if err != nil {
return err
}
Expand All @@ -39,23 +39,23 @@ func addRouter(w http.ResponseWriter, r *http.Request, t auth.Token) (err error)
return permission.ErrUnauthorized
}

_, err = servicemanager.RouterTemplate.Get(routerTemplate.Name)
_, err = servicemanager.DynamicRouter.Get(dynamicRouter.Name)
if err == nil {
return &errors.HTTP{Code: http.StatusConflict, Message: "router template already exists"}
return &errors.HTTP{Code: http.StatusConflict, Message: "dynamic router already exists"}
}

evt, err := event.New(&event.Opts{
Target: event.Target{Type: event.TargetTypeRouter, Value: routerTemplate.Name},
Target: event.Target{Type: event.TargetTypeRouter, Value: dynamicRouter.Name},
Kind: permission.PermRouterCreate,
Owner: t,
CustomData: event.FormToCustomData(InputFields(r)),
Allowed: event.Allowed(permission.PermRouterReadEvents, permTypes.PermissionContext{CtxType: permTypes.CtxRouter, Value: routerTemplate.Name}),
Allowed: event.Allowed(permission.PermRouterReadEvents, permTypes.PermissionContext{CtxType: permTypes.CtxRouter, Value: dynamicRouter.Name}),
})
if err != nil {
return err
}
defer func() { evt.Done(err) }()
err = servicemanager.RouterTemplate.Create(routerTemplate)
err = servicemanager.DynamicRouter.Create(dynamicRouter)
if err == nil {
w.WriteHeader(http.StatusCreated)
}
Expand All @@ -70,35 +70,35 @@ func addRouter(w http.ResponseWriter, r *http.Request, t auth.Token) (err error)
// 400: Invalid router
// 404: Router not found
func updateRouter(w http.ResponseWriter, r *http.Request, t auth.Token) (err error) {
var routerTemplate routerTypes.RouterTemplate
var dynamicRouter routerTypes.DynamicRouter

routerName := r.URL.Query().Get(":name")
err = ParseInput(r, &routerTemplate)
err = ParseInput(r, &dynamicRouter)
if err != nil {
return err
}
routerTemplate.Name = routerName
dynamicRouter.Name = routerName

allowed := permission.Check(t, permission.PermRouterUpdate, permTypes.PermissionContext{CtxType: permTypes.CtxRouter, Value: routerTemplate.Name})
allowed := permission.Check(t, permission.PermRouterUpdate, permTypes.PermissionContext{CtxType: permTypes.CtxRouter, Value: dynamicRouter.Name})
if !allowed {
return permission.ErrUnauthorized
}

evt, err := event.New(&event.Opts{
Target: event.Target{Type: event.TargetTypeRouter, Value: routerTemplate.Name},
Target: event.Target{Type: event.TargetTypeRouter, Value: dynamicRouter.Name},
Kind: permission.PermRouterUpdate,
Owner: t,
CustomData: event.FormToCustomData(InputFields(r)),
Allowed: event.Allowed(permission.PermRouterReadEvents, permTypes.PermissionContext{CtxType: permTypes.CtxRouter, Value: routerTemplate.Name}),
Allowed: event.Allowed(permission.PermRouterReadEvents, permTypes.PermissionContext{CtxType: permTypes.CtxRouter, Value: dynamicRouter.Name}),
})
if err != nil {
return err
}
defer func() { evt.Done(err) }()

err = servicemanager.RouterTemplate.Update(routerTemplate)
err = servicemanager.DynamicRouter.Update(dynamicRouter)
if err != nil {
if err == routerTypes.ErrRouterTemplateNotFound {
if err == routerTypes.ErrDynamicRouterNotFound {
return &errors.HTTP{Code: http.StatusNotFound, Message: err.Error()}
}
return err
Expand Down Expand Up @@ -132,9 +132,9 @@ func deleteRouter(w http.ResponseWriter, r *http.Request, t auth.Token) (err err
}
defer func() { evt.Done(err) }()

err = servicemanager.RouterTemplate.Remove(routerName)
err = servicemanager.DynamicRouter.Remove(routerName)
if err != nil {
if err == routerTypes.ErrRouterTemplateNotFound {
if err == routerTypes.ErrDynamicRouterNotFound {
return &errors.HTTP{Code: http.StatusNotFound, Message: err.Error()}
}
return err
Expand Down
32 changes: 16 additions & 16 deletions api/router_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ import (
)

func (s *S) TestRoutersAdd(c *check.C) {
var created routerTypes.RouterTemplate
s.mockService.RouterTemplate.OnCreate = func(rt routerTypes.RouterTemplate) error {
created = rt
var created routerTypes.DynamicRouter
s.mockService.DynamicRouter.OnCreate = func(dr routerTypes.DynamicRouter) error {
created = dr
return nil
}
body := `{"name": "r1", "type": "t1", "config": {"a": "b"}}`
Expand All @@ -36,17 +36,17 @@ func (s *S) TestRoutersAdd(c *check.C) {
request.Header.Set("Authorization", "bearer "+s.token.GetValue())
s.testServer.ServeHTTP(recorder, request)
c.Assert(recorder.Code, check.Equals, http.StatusCreated)
c.Assert(created, check.DeepEquals, routerTypes.RouterTemplate{
c.Assert(created, check.DeepEquals, routerTypes.DynamicRouter{
Name: "r1",
Type: "t1",
Config: map[string]interface{}{"a": "b"},
})
}

func (s *S) TestRoutersUpdate(c *check.C) {
var updated routerTypes.RouterTemplate
s.mockService.RouterTemplate.OnUpdate = func(rt routerTypes.RouterTemplate) error {
updated = rt
var updated routerTypes.DynamicRouter
s.mockService.DynamicRouter.OnUpdate = func(dr routerTypes.DynamicRouter) error {
updated = dr
return nil
}
body := `{"type": "t1", "config": {"a": "b"}}`
Expand All @@ -57,7 +57,7 @@ func (s *S) TestRoutersUpdate(c *check.C) {
request.Header.Set("Authorization", "bearer "+s.token.GetValue())
s.testServer.ServeHTTP(recorder, request)
c.Assert(recorder.Code, check.Equals, http.StatusOK)
c.Assert(updated, check.DeepEquals, routerTypes.RouterTemplate{
c.Assert(updated, check.DeepEquals, routerTypes.DynamicRouter{
Name: "r1",
Type: "t1",
Config: map[string]interface{}{"a": "b"},
Expand All @@ -66,7 +66,7 @@ func (s *S) TestRoutersUpdate(c *check.C) {

func (s *S) TestRoutersDelete(c *check.C) {
var removed string
s.mockService.RouterTemplate.OnRemove = func(rtName string) error {
s.mockService.DynamicRouter.OnRemove = func(rtName string) error {
removed = rtName
return nil
}
Expand All @@ -93,16 +93,16 @@ func (s *S) TestRoutersListNoContent(c *check.C) {
}

func (s *S) TestRoutersList(c *check.C) {
rt := routerTypes.RouterTemplate{
Name: "rt1",
dr := routerTypes.DynamicRouter{
Name: "dr1",
Type: "foo",
Config: map[string]interface{}{"a": "b"},
}
s.mockService.RouterTemplate.OnList = func() ([]routerTypes.RouterTemplate, error) {
return []routerTypes.RouterTemplate{rt}, nil
s.mockService.DynamicRouter.OnList = func() ([]routerTypes.DynamicRouter, error) {
return []routerTypes.DynamicRouter{dr}, nil
}
s.mockService.RouterTemplate.OnGet = func(name string) (*routerTypes.RouterTemplate, error) {
return &rt, nil
s.mockService.DynamicRouter.OnGet = func(name string) (*routerTypes.DynamicRouter, error) {
return &dr, nil
}
config.Set("routers:router1:type", "foo")
config.Set("routers:router2:type", "bar")
Expand All @@ -115,11 +115,11 @@ func (s *S) TestRoutersList(c *check.C) {
defer router.Unregister("bar")
recorder := httptest.NewRecorder()
expected := []router.PlanRouter{
{Name: "dr1", Type: "foo", Dynamic: true, Config: map[string]interface{}{"a": "b"}},
{Name: "fake", Type: "fake", Default: true},
{Name: "fake-tls", Type: "fake-tls"},
{Name: "router1", Type: "foo"},
{Name: "router2", Type: "bar", Config: map[string]interface{}{"mycfg": "1"}},
{Name: "rt1", Type: "foo", Dynamic: true, Config: map[string]interface{}{"a": "b"}},
}
request, err := http.NewRequest("GET", "/routers", nil)
c.Assert(err, check.IsNil)
Expand Down
2 changes: 1 addition & 1 deletion api/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ func setupServices() error {
if err != nil {
return err
}
servicemanager.RouterTemplate, err = router.TemplateService()
servicemanager.DynamicRouter, err = router.DynamicRouterService()
if err != nil {
return err
}
Expand Down
26 changes: 13 additions & 13 deletions docs/reference/api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2483,18 +2483,18 @@ paths:
/1.8/routers:
post:
operationId: RouterCreate
description: Adds a new router template
description: Adds a new dynamic router
consumes:
- application/json
parameters:
- name: router
in: body
required: true
schema:
$ref: "#/definitions/RouterTemplate"
$ref: "#/definitions/DynamicRouter"
responses:
"200":
description: Router template added
description: Dynamic router added
"400":
description: Invalid data
schema:
Expand All @@ -2514,29 +2514,29 @@ paths:
required: true
type: string
minLength: 1
description: Router template name.
description: Dynamic router name.
put:
operationId: RouterUpdate
description: Updates a router template
description: Updates a dynamic router
consumes:
- application/json
parameters:
- name: router
required: true
in: body
schema:
$ref: "#/definitions/RouterTemplate"
$ref: "#/definitions/DynamicRouter"
responses:
"200":
description: Router template updated
description: Dynamic router updated
schema:
$ref: "#/definitions/TeamToken"
"401":
description: Unauthorized.
schema:
$ref: "#/definitions/ErrorMessage"
"404":
description: Router template not found
description: Dynamic router not found
schema:
$ref: "#/definitions/ErrorMessage"
tags:
Expand All @@ -2545,27 +2545,27 @@ paths:
- Bearer: []
delete:
operationId: RouterDelete
description: Deletes a router template
description: Deletes a dynamic router
responses:
"200":
description: Router template deleted
description: Dynamic router deleted
schema:
$ref: "#/definitions/TeamToken"
"401":
description: Unauthorized.
schema:
$ref: "#/definitions/ErrorMessage"
"404":
description: Router template not found
description: Dynamic router not found
schema:
$ref: "#/definitions/ErrorMessage"
tags:
- router
security:
- Bearer: []
definitions:
RouterTemplate:
description: Router template
DynamicRouter:
description: Dynamic router
type: object
properties:
name:
Expand Down
30 changes: 15 additions & 15 deletions router/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,35 @@ type ConfigGetter interface {
Hash() (string, error)
}

var _ ConfigGetter = &templateConfigGetter{}
var _ ConfigGetter = &dynamicConfigGetter{}
var _ ConfigGetter = &StaticConfigGetter{}

type templateConfigGetter struct {
template router.RouterTemplate
type dynamicConfigGetter struct {
router router.DynamicRouter
}

type StaticConfigGetter struct {
Prefix string
}

func (g *templateConfigGetter) Get(name string) (interface{}, error) {
v, ok := g.template.Config[name]
func (g *dynamicConfigGetter) Get(name string) (interface{}, error) {
v, ok := g.router.Config[name]
if !ok {
return "", ErrRouterConfigNotFound
}
return v, nil
}

func (g *templateConfigGetter) GetString(name string) (string, error) {
v, ok := g.template.Config[name]
func (g *dynamicConfigGetter) GetString(name string) (string, error) {
v, ok := g.router.Config[name]
if !ok {
return "", ErrRouterConfigNotFound
}
return fmt.Sprint(v), nil
}

func (g *templateConfigGetter) GetInt(name string) (int, error) {
value, ok := g.template.Config[name]
func (g *dynamicConfigGetter) GetInt(name string) (int, error) {
value, ok := g.router.Config[name]
if !ok {
return 0, ErrRouterConfigNotFound
}
Expand All @@ -70,8 +70,8 @@ func (g *templateConfigGetter) GetInt(name string) (int, error) {
return 0, errors.New("not a number")
}

func (g *templateConfigGetter) GetBool(name string) (bool, error) {
value, ok := g.template.Config[name]
func (g *dynamicConfigGetter) GetBool(name string) (bool, error) {
value, ok := g.router.Config[name]
if !ok {
return false, ErrRouterConfigNotFound
}
Expand All @@ -84,8 +84,8 @@ func (g *templateConfigGetter) GetBool(name string) (bool, error) {
return false, errors.New("not a boolean")
}

func (g *templateConfigGetter) GetFloat(name string) (float64, error) {
value, ok := g.template.Config[name]
func (g *dynamicConfigGetter) GetFloat(name string) (float64, error) {
value, ok := g.router.Config[name]
if !ok {
return 0, ErrRouterConfigNotFound
}
Expand All @@ -98,8 +98,8 @@ func (g *templateConfigGetter) GetFloat(name string) (float64, error) {
return 0, errors.New("not a float")
}

func (g *templateConfigGetter) Hash() (string, error) {
cfg, err := json.Marshal(g.template.Config)
func (g *dynamicConfigGetter) Hash() (string, error) {
cfg, err := json.Marshal(g.router.Config)
if err != nil {
return "", err
}
Expand Down
14 changes: 7 additions & 7 deletions router/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ type ConfigSuite struct {

func init() {
check.Suite(&ConfigSuite{getter: &StaticConfigGetter{}})
check.Suite(&ConfigSuite{getter: &templateConfigGetter{}})
check.Suite(&ConfigSuite{getter: &dynamicConfigGetter{}})
}

func (s *ConfigSuite) SetUpTest(c *check.C) {
Expand Down Expand Up @@ -51,19 +51,19 @@ func (s *ConfigSuite) SetUpTest(c *check.C) {
switch g := s.getter.(type) {
case *StaticConfigGetter:
g.Prefix = "mine"
case *templateConfigGetter:
svc, err := TemplateService()
case *dynamicConfigGetter:
svc, err := DynamicRouterService()
c.Assert(err, check.IsNil)
rt := router.RouterTemplate{
dr := router.DynamicRouter{
Name: "mine",
Type: "myrouter",
Config: routerConfig,
}
err = svc.Create(rt)
err = svc.Create(dr)
c.Assert(err, check.IsNil)
dbRt, err := svc.Get(rt.Name)
dbDR, err := svc.Get(dr.Name)
c.Assert(err, check.IsNil)
g.template = *dbRt
g.router = *dbDR
}
}

Expand Down
Loading

0 comments on commit 3618ade

Please sign in to comment.