import from minilb repo
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"helmet/app/logger"
|
||||
|
||||
"helmet/app/config"
|
||||
"helmet/app/rproxy"
|
||||
)
|
||||
|
||||
type OperatorConfig struct {
|
||||
@@ -13,13 +14,15 @@ type OperatorConfig struct {
|
||||
type Operator struct {
|
||||
log *logger.Logger
|
||||
auths []config.Auth
|
||||
proxy *rproxy.Proxy
|
||||
}
|
||||
|
||||
func NewOperator(conf *OperatorConfig) (*Operator, error) {
|
||||
var err error
|
||||
lg := &Operator{
|
||||
oper := &Operator{
|
||||
auths: conf.Auths,
|
||||
}
|
||||
lg.log = logger.NewLogger("operator")
|
||||
return lg, err
|
||||
oper.log = logger.NewLogger("operator")
|
||||
oper.proxy = rproxy.NewProxy()
|
||||
return oper, err
|
||||
}
|
||||
|
||||
44
app/operator/proxy.go
Normal file
44
app/operator/proxy.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package operator
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"helmet/pkg/mlbctl"
|
||||
)
|
||||
|
||||
func (oper *Operator) ListForwarders(ctx context.Context, params *mlbctl.ListForwardersParams) (*mlbctl.ListForwardersResult, error) {
|
||||
var err error
|
||||
|
||||
res := &mlbctl.ListForwardersResult{
|
||||
Forwarders: make([]*mlbctl.Forwarder, 0),
|
||||
}
|
||||
for _, forw := range oper.proxy.Forwarders {
|
||||
oForw := &mlbctl.Forwarder{
|
||||
Lport: forw.Lport,
|
||||
Dport: forw.Dport,
|
||||
Destinations: make([]*mlbctl.Destination, 0),
|
||||
}
|
||||
for _, dest := range forw.Dests {
|
||||
oDest := &mlbctl.Destination{
|
||||
Address: dest.Address,
|
||||
}
|
||||
oForw.Destinations = append(oForw.Destinations, oDest)
|
||||
}
|
||||
res.Forwarders = append(res.Forwarders, oForw)
|
||||
}
|
||||
return res, err
|
||||
}
|
||||
|
||||
func (oper *Operator) CreateForwarder(ctx context.Context, params *mlbctl.CreateForwarderParams) (*mlbctl.CreateForwarderResult, error) {
|
||||
var err error
|
||||
res := &mlbctl.CreateForwarderResult{}
|
||||
err = oper.proxy.AddForwarder(ctx, params.Lport, params.Dport, params.Destinations...)
|
||||
return res, err
|
||||
}
|
||||
|
||||
func (oper *Operator) DeleteForwarder(ctx context.Context, params *mlbctl.DeleteForwarderParams) (*mlbctl.DeleteForwarderResult, error) {
|
||||
var err error
|
||||
res := &mlbctl.DeleteForwarderResult{}
|
||||
err = oper.proxy.DeleteForwarder(ctx, params.Lport)
|
||||
return res, err
|
||||
}
|
||||
Reference in New Issue
Block a user