Skip to content
This repository has been archived by the owner on Mar 29, 2021. It is now read-only.

Commit

Permalink
fix #6 fix #5
Browse files Browse the repository at this point in the history
  • Loading branch information
chavers committed Mar 8, 2021
1 parent c47d68c commit 688e0d9
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 32 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

**ATTN**: This project uses [semantic versioning](http://semver.org/).

## 0.2.2 - 2021-03-08
- Fix #5 select workers
- Fix #6 disable workers

## 0.2.1 - 2019-10-22
- set tokenid to anonymous when no Authorization header found
- Fix empty output, return 204 "no content"
Expand Down
2 changes: 0 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/ezbastion/ezb_lib v0.0.0-20200222105408-548e481d950a h1:ZhkBBtW7LpqUNYCXRFTpoTfEIMenM5urBiLQNJxcLjk=
github.com/ezbastion/ezb_lib v0.0.0-20200222105408-548e481d950a/go.mod h1:ybKk609w7Gi4IRqUx9hDcNKIe/+DtfYuSHLgjYk2td8=
github.com/ezbastion/ezb_lib v0.1.0 h1:eK0XuOXnAXOPXN/Xjn+HX4mKLgjJxY84Rf6w+5KaCkA=
github.com/ezbastion/ezb_lib v0.1.0/go.mod h1:F6U708XN/ROG+xnFvOw6KcBR1RR5Ggvyr9YQGosdA9M=
github.com/gin-contrib/location v0.0.1 h1:5ZtqDL5WA6YXNuT5nGp55K3QSqJMYIl+2d7Lnwh9SGA=
Expand Down
2 changes: 1 addition & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func main() {
}
app := cli.NewApp()
app.Name = "ezb_srv"
app.Version = "0.2.1"
app.Version = "0.2.2"
app.Usage = "ezBastion frontend server."

app.Commands = []cli.Command{
Expand Down
53 changes: 29 additions & 24 deletions middleware/selectWorker.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"errors"
"math/rand"
"net/http"
"sort"
"time"

"github.com/ezbastion/ezb_srv/models"
Expand All @@ -41,7 +40,7 @@ func SelectWorker(c *gin.Context) {
logg.Debug("start")

routeType, _ := c.MustGet("routeType").(string)
// routeType := rt.(string)

if routeType == "worker" {
ac, _ := c.Get("action")
action := ac.(models.EzbActions)
Expand All @@ -61,19 +60,20 @@ func SelectWorker(c *gin.Context) {
}
logg.Debug("one worker found: ", worker.Name, " (", worker.Comment, ")")
c.Set("worker", worker)
// c.Set("action", nil)

trace.Worker = worker.Name
c.Set("trace", trace)
}
if nbW > 1 {
var enableWorkers []models.EzbWorkers
var keys []int
//var keys []int
for _, w := range workers {
if w.Enable {
if checksumISok(w.Fqdn, action.Jobs.Path, action.Jobs.Checksum) {
enableWorkers = append(enableWorkers, w)
keys = append(keys, len(enableWorkers))
logg.Debug("append worker ", w.Name, " :", len(enableWorkers))

//keys = append(keys, len(enableWorkers))
}
}
}
Expand All @@ -82,40 +82,45 @@ func SelectWorker(c *gin.Context) {
c.AbortWithError(http.StatusServiceUnavailable, errors.New("#W0003"))
return
}
var worker models.EzbWorkers
if len(enableWorkers) == 1 {
worker = enableWorkers[0]
} else {
worker = enableWorkers[randomWorker(&enableWorkers)]
}
// switch on config worker algo
worker := enableWorkers[randomWorker(&enableWorkers)]

logg.Debug("found ", len(enableWorkers), " worker, select ", worker.Name, " random")
c.Set("worker", worker)
c.Set("action", nil)

trace.Worker = worker.Name
c.Set("trace", trace)
// tool.Trace(&trace, c)
c.Next()
}
}
c.Next()
}

func orderBYjobs(keys *[]int, workers *[]models.EzbWorkers) {
var nbj []int
for _, _ = range *workers {
var j int // w.fqdn /healthcheck/jobs -> j int goroutine
nbj = append(nbj, j)
}
sort.Ints(nbj)
keys = &nbj

}
func orderBYload(keys *[]int, workers *[]models.EzbWorkers) {
sort.Ints(*keys)
}
//func orderBYjobs(keys *[]int, workers *[]models.EzbWorkers) {
// var nbj []int
// for _, _ = range *workers {
// var j int // w.fqdn /healthcheck/jobs -> j int goroutine
// nbj = append(nbj, j)
// }
// sort.Ints(nbj)
// keys = &nbj
//
//}
//func orderBYload(keys *[]int, workers *[]models.EzbWorkers) {
// sort.Ints(*keys)
//}
func randomWorker(workers *[]models.EzbWorkers) int {
return rand.Intn(len(*workers) - 1)
}
func orderBYroundrobin(keys *[]int, workers *[]models.EzbWorkers) {
sort.Ints(*keys)
}

//func orderBYroundrobin(keys *[]int, workers *[]models.EzbWorkers) {
// sort.Ints(*keys)
//}

func checksumISok(fqdn, path, checksum string) bool {
/*
Expand Down
8 changes: 3 additions & 5 deletions server.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,11 @@ import (
"github.com/ezbastion/ezb_srv/setup"
"github.com/gin-contrib/location"

"net/http"
"os"
"path"

"github.com/gin-gonic/contrib/ginrus"
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"net/http"
"os"
)

var storage cache.Storage
Expand All @@ -47,7 +45,7 @@ func mainGin(serverchan *chan bool) {
if err != nil {
panic(err)
}
logmanager.SetLogLevel(conf.Logger.LogLevel, exPath, path.Join(exPath, "log/ezb_srv.log"), conf.Logger.MaxSize, conf.Logger.MaxBackups, conf.Logger.MaxAge, true, true, true)
logmanager.SetLogLevel(conf.Logger.LogLevel, exPath, "log/ezb_srv.log", conf.Logger.MaxSize, conf.Logger.MaxBackups, conf.Logger.MaxAge, true, true, true)

storage = memory.NewStorage()

Expand Down

0 comments on commit 688e0d9

Please sign in to comment.