[TASK] extract runtime package from models + test-coverage one package at the time
This commit is contained in:
parent
147ce23fa0
commit
ccdde10d31
|
@ -9,7 +9,7 @@ FAIL=0
|
||||||
for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d);
|
for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d);
|
||||||
do
|
do
|
||||||
if ls $dir/*.go &> /dev/null; then
|
if ls $dir/*.go &> /dev/null; then
|
||||||
go test -v -covermode=count -coverprofile=profile.tmp $dir || FAIL=$?
|
go test -p 1 -v -covermode=count -coverprofile=profile.tmp $dir || FAIL=$?
|
||||||
if [ -f profile.tmp ]
|
if [ -f profile.tmp ]
|
||||||
then
|
then
|
||||||
tail -n +2 < profile.tmp >> profile.cov
|
tail -n +2 < profile.tmp >> profile.cov
|
||||||
|
|
|
@ -15,6 +15,7 @@ import (
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/log"
|
"github.com/genofire/hs_master-kss-monolith/lib/log"
|
||||||
"github.com/genofire/hs_master-kss-monolith/models"
|
"github.com/genofire/hs_master-kss-monolith/models"
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -29,7 +30,7 @@ func main() {
|
||||||
// load config
|
// load config
|
||||||
config = models.ReadConfigFile(configFile)
|
config = models.ReadConfigFile(configFile)
|
||||||
web.GoodAvailablityTemplate = config.GoodAvailablityTemplate
|
web.GoodAvailablityTemplate = config.GoodAvailablityTemplate
|
||||||
models.CacheConfig = config.CacheClean
|
runtime.CacheConfig = config.CacheClean
|
||||||
|
|
||||||
log.Log.Info("Starting rezension monolith")
|
log.Log.Info("Starting rezension monolith")
|
||||||
|
|
||||||
|
@ -37,8 +38,8 @@ func main() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Log.Panic(err)
|
log.Log.Panic(err)
|
||||||
}
|
}
|
||||||
grw := models.NewGoodReleaseWorker(config.GoodRelease)
|
grw := runtime.NewGoodReleaseWorker(config.GoodRelease)
|
||||||
cw := models.NewCacheWorker()
|
cw := runtime.NewCacheWorker()
|
||||||
go grw.Start()
|
go grw.Start()
|
||||||
go cw.Start()
|
go cw.Start()
|
||||||
// Startwebsrver
|
// Startwebsrver
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
lib "github.com/genofire/hs_master-kss-monolith/lib/http"
|
lib "github.com/genofire/hs_master-kss-monolith/lib/http"
|
||||||
logger "github.com/genofire/hs_master-kss-monolith/lib/log"
|
logger "github.com/genofire/hs_master-kss-monolith/lib/log"
|
||||||
"github.com/genofire/hs_master-kss-monolith/models"
|
"github.com/genofire/hs_master-kss-monolith/models"
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
func listGoods(w http.ResponseWriter, r *http.Request) {
|
func listGoods(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@ -42,7 +43,7 @@ func getGoodAvailablityCount(w http.ResponseWriter, r *http.Request) (int, *logr
|
||||||
return -1, log
|
return -1, log
|
||||||
}
|
}
|
||||||
log = log.WithField("productid", id)
|
log = log.WithField("productid", id)
|
||||||
product := models.Product{ID: id}
|
product := runtime.Product{ID: id}
|
||||||
ok, err := product.Exists()
|
ok, err := product.Exists()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warn("product could not verified on other microservice")
|
log.Warn("product could not verified on other microservice")
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
||||||
"github.com/genofire/hs_master-kss-monolith/models"
|
"github.com/genofire/hs_master-kss-monolith/models"
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/runtime"
|
||||||
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/test"
|
"github.com/genofire/hs_master-kss-monolith/test"
|
||||||
)
|
)
|
||||||
|
@ -84,14 +85,12 @@ func TestGetGoodAvailable(t *testing.T) {
|
||||||
assertion.Equal(http.StatusNotFound, w.StatusCode)
|
assertion.Equal(http.StatusNotFound, w.StatusCode)
|
||||||
|
|
||||||
test.CloseServer()
|
test.CloseServer()
|
||||||
|
runtime.CacheConfig.After = models.Duration{Duration: time.Duration(5) * time.Millisecond}
|
||||||
models.CacheConfig.After = models.Duration{Duration: time.Duration(5) * time.Millisecond}
|
|
||||||
time.Sleep(time.Duration(10) * time.Millisecond)
|
time.Sleep(time.Duration(10) * time.Millisecond)
|
||||||
models.CleanCache()
|
runtime.CleanCache()
|
||||||
|
|
||||||
result, w = session.JSONRequest("GET", "/api/good/availablity/3", nil)
|
result, w = session.JSONRequest("GET", "/api/good/availablity/3", nil)
|
||||||
assertion.Equal(http.StatusGatewayTimeout, w.StatusCode)
|
assertion.Equal(http.StatusGatewayTimeout, w.StatusCode)
|
||||||
|
|
||||||
test.Close()
|
test.Close()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ var (
|
||||||
Write *gorm.DB
|
Write *gorm.DB
|
||||||
Read *gorm.DB
|
Read *gorm.DB
|
||||||
config *Config
|
config *Config
|
||||||
models []interface{}
|
runtime []interface{}
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
|
@ -48,7 +48,7 @@ func Open(c Config) (err error) {
|
||||||
} else {
|
} else {
|
||||||
Read = Write
|
Read = Write
|
||||||
}
|
}
|
||||||
Write.AutoMigrate(models...)
|
Write.AutoMigrate(runtime...)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,5 +62,5 @@ func Close() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddModel(m interface{}) {
|
func AddModel(m interface{}) {
|
||||||
models = append(models, m)
|
runtime = append(runtime, m)
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,16 @@ type Config struct {
|
||||||
CacheClean CacheWorkerConfig `toml:"cache_clean"`
|
CacheClean CacheWorkerConfig `toml:"cache_clean"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CacheWorkerConfig struct {
|
||||||
|
Every Duration
|
||||||
|
After Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
type GoodReleaseConfig struct {
|
||||||
|
After Duration `toml:"after"`
|
||||||
|
Every Duration `toml:"every"`
|
||||||
|
}
|
||||||
|
|
||||||
// ReadConfigFile reads a config model from path of a yml file
|
// ReadConfigFile reads a config model from path of a yml file
|
||||||
func ReadConfigFile(path string) *Config {
|
func ReadConfigFile(path string) *Config {
|
||||||
config := &Config{}
|
config := &Config{}
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
package models
|
|
||||||
|
|
||||||
import (
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/worker"
|
|
||||||
)
|
|
||||||
|
|
||||||
type GoodReleaseConfig struct {
|
|
||||||
After Duration `toml:"after"`
|
|
||||||
Every Duration `toml:"every"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewGoodReleaseWorker(grc GoodReleaseConfig) *worker.Worker {
|
|
||||||
return worker.NewWorker(grc.Every.Duration, func() {
|
|
||||||
goodRelease(grc.After.Duration)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func goodRelease(unlockAfter time.Duration) int64 {
|
|
||||||
res := database.Write.Model(&Good{}).Where("locked_secret is not NULL and locked_at < ?", time.Now().Add(-unlockAfter)).Updates(map[string]interface{}{"locked_secret": "", "locked_at": nil})
|
|
||||||
return res.RowsAffected
|
|
||||||
}
|
|
|
@ -10,6 +10,12 @@ import (
|
||||||
func TestGood(t *testing.T) {
|
func TestGood(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
database.Open(database.Config{
|
||||||
|
Type: "sqlite3",
|
||||||
|
Logging: true,
|
||||||
|
Connection: ":memory:",
|
||||||
|
})
|
||||||
|
|
||||||
good := &Good{}
|
good := &Good{}
|
||||||
assert.False(good.IsLock())
|
assert.False(good.IsLock())
|
||||||
|
|
||||||
|
|
129
profile.cov
129
profile.cov
|
@ -1,38 +1,4 @@
|
||||||
mode: count
|
mode: count
|
||||||
github.com/genofire/hs_master-kss-monolith/models/cache_worker.go:10.59,11.49 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/cache_worker.go:11.49,13.47 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/cache_worker.go:19.3,19.45 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/cache_worker.go:13.47,14.69 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/cache_worker.go:14.69,16.5 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/cache_worker.go:19.45,20.69 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/cache_worker.go:20.69,22.5 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/worker.go:11.59,18.2 2 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/worker.go:20.26,22.6 2 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/worker.go:22.6,23.10 1 6
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/worker.go:24.19,25.11 1 5
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/worker.go:26.17,28.10 2 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/worker.go:32.26,34.2 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/good_release.go:14.58,15.46 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/good_release.go:15.46,17.3 1 5
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/good_release.go:20.51,23.2 2 7
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/product_cache.go:21.13,23.2 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/product_cache.go:25.42,26.46 1 2
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/product_cache.go:34.2,42.43 5 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/product_cache.go:26.46,29.38 2 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/product_cache.go:29.38,31.4 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:27.81,29.39 2 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:37.2,45.36 5 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:29.39,32.38 2 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:32.38,34.4 1 0
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:50.13,52.2 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:54.64,56.9 2 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:63.2,63.50 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/auth.go:56.9,62.3 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/config.go:22.42,25.16 3 3
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/config.go:29.2,29.53 1 2
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/config.go:33.2,33.15 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/config.go:25.16,27.3 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/config.go:29.53,31.3 1 1
|
|
||||||
github.com/genofire/hs_master-kss-monolith/models/duration.go:19.67,21.30 2 20
|
github.com/genofire/hs_master-kss-monolith/models/duration.go:19.67,21.30 2 20
|
||||||
github.com/genofire/hs_master-kss-monolith/models/duration.go:28.2,28.19 1 19
|
github.com/genofire/hs_master-kss-monolith/models/duration.go:28.2,28.19 1 19
|
||||||
github.com/genofire/hs_master-kss-monolith/models/duration.go:32.2,34.16 3 18
|
github.com/genofire/hs_master-kss-monolith/models/duration.go:32.2,34.16 3 18
|
||||||
|
@ -56,6 +22,11 @@ github.com/genofire/hs_master-kss-monolith/models/good.go:40.44,41.30 1 2
|
||||||
github.com/genofire/hs_master-kss-monolith/models/good.go:46.2,46.35 1 1
|
github.com/genofire/hs_master-kss-monolith/models/good.go:46.2,46.35 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/models/good.go:41.30,45.3 3 1
|
github.com/genofire/hs_master-kss-monolith/models/good.go:41.30,45.3 3 1
|
||||||
github.com/genofire/hs_master-kss-monolith/models/good.go:49.13,51.2 1 1
|
github.com/genofire/hs_master-kss-monolith/models/good.go:49.13,51.2 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/models/config.go:33.42,36.16 3 3
|
||||||
|
github.com/genofire/hs_master-kss-monolith/models/config.go:40.2,40.53 1 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/models/config.go:44.2,44.15 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/models/config.go:36.16,38.3 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/models/config.go:40.53,42.3 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/log/main.go:14.13,18.2 2 1
|
github.com/genofire/hs_master-kss-monolith/lib/log/main.go:14.13,18.2 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/log/main.go:21.42,23.18 2 1
|
github.com/genofire/hs_master-kss-monolith/lib/log/main.go:21.42,23.18 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/log/main.go:26.2,30.4 1 1
|
github.com/genofire/hs_master-kss-monolith/lib/log/main.go:26.2,30.4 1 1
|
||||||
|
@ -72,32 +43,70 @@ github.com/genofire/hs_master-kss-monolith/lib/database/main.go:55.14,58.36 3 2
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/database/main.go:61.2,61.12 1 2
|
github.com/genofire/hs_master-kss-monolith/lib/database/main.go:61.2,61.12 1 2
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/database/main.go:58.36,60.3 1 1
|
github.com/genofire/hs_master-kss-monolith/lib/database/main.go:58.36,60.3 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/database/main.go:64.30,66.2 1 2
|
github.com/genofire/hs_master-kss-monolith/lib/database/main.go:64.30,66.2 1 2
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/http/main.go:10.56,11.56 1 2
|
github.com/genofire/hs_master-kss-monolith/lib/worker/worker.go:11.59,18.2 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/http/main.go:15.2,16.8 2 1
|
github.com/genofire/hs_master-kss-monolith/lib/worker/worker.go:20.26,22.6 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/http/main.go:11.56,14.3 2 1
|
github.com/genofire/hs_master-kss-monolith/lib/worker/worker.go:22.6,23.10 1 4
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/http/main.go:20.53,22.16 2 2
|
github.com/genofire/hs_master-kss-monolith/lib/worker/worker.go:24.19,25.11 1 3
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/http/main.go:26.2,27.13 2 1
|
github.com/genofire/hs_master-kss-monolith/lib/worker/worker.go:26.17,28.10 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/lib/http/main.go:22.16,25.3 2 1
|
github.com/genofire/hs_master-kss-monolith/lib/worker/worker.go:32.26,34.2 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/main.go:8.32,12.2 3 3
|
github.com/genofire/hs_master-kss-monolith/lib/http/io.go:10.56,11.56 1 2
|
||||||
github.com/genofire/hs_master-kss-monolith/http/status.go:12.53,31.2 8 1
|
github.com/genofire/hs_master-kss-monolith/lib/http/io.go:15.2,16.8 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:16.56,19.16 3 3
|
github.com/genofire/hs_master-kss-monolith/lib/http/io.go:11.56,14.3 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:24.2,27.30 4 2
|
github.com/genofire/hs_master-kss-monolith/lib/http/io.go:20.53,22.16 2 2
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:32.2,33.18 2 1
|
github.com/genofire/hs_master-kss-monolith/lib/http/io.go:26.2,27.13 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:19.16,23.3 3 1
|
github.com/genofire/hs_master-kss-monolith/lib/http/io.go:22.16,25.3 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:27.30,31.3 3 1
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:7.153,8.54 1 4
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:36.91,39.16 3 4
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:8.54,10.17 2 4
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:44.2,47.16 4 3
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:14.3,15.17 2 3
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:51.2,51.9 1 3
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:19.3,19.9 1 2
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:56.2,58.24 3 3
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:23.3,23.53 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:39.16,43.3 3 1
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:10.17,13.4 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:47.16,50.3 2 0
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:15.17,18.4 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:51.9,55.3 3 0
|
github.com/genofire/hs_master-kss-monolith/lib/http/permission.go:19.9,22.4 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:60.65,62.15 2 4
|
github.com/genofire/hs_master-kss-monolith/http/good.go:17.56,20.16 3 3
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:65.2,66.38 2 3
|
github.com/genofire/hs_master-kss-monolith/http/good.go:25.2,28.30 4 2
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:72.2,72.18 1 3
|
github.com/genofire/hs_master-kss-monolith/http/good.go:33.2,34.18 2 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:62.15,64.3 1 1
|
github.com/genofire/hs_master-kss-monolith/http/good.go:20.16,24.3 3 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:67.26,68.22 1 2
|
github.com/genofire/hs_master-kss-monolith/http/good.go:28.30,32.3 3 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good.go:69.10,70.34 1 1
|
github.com/genofire/hs_master-kss-monolith/http/good.go:37.91,40.16 3 6
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:45.2,48.16 4 5
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:53.2,53.9 1 4
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:58.2,60.24 3 3
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:40.16,44.3 3 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:48.16,52.3 3 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:53.9,57.3 3 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:62.65,64.15 2 6
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:67.2,68.38 2 3
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:74.2,74.18 1 3
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:64.15,66.3 1 3
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:69.26,70.22 1 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/good.go:71.10,72.34 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good_temp.go:13.38,15.2 1 1
|
github.com/genofire/hs_master-kss-monolith/http/good_temp.go:13.38,15.2 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good_temp.go:17.56,19.2 1 1
|
github.com/genofire/hs_master-kss-monolith/http/good_temp.go:17.56,19.2 1 1
|
||||||
github.com/genofire/hs_master-kss-monolith/http/good_temp.go:21.62,37.2 10 1
|
github.com/genofire/hs_master-kss-monolith/http/good_temp.go:21.62,37.2 10 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/main.go:8.32,12.2 3 3
|
||||||
|
github.com/genofire/hs_master-kss-monolith/http/status.go:12.53,31.2 8 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:27.81,29.39 2 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:36.2,44.36 5 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:29.39,31.36 2 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:31.36,33.4 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:49.13,51.2 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:53.64,55.9 2 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:62.2,62.50 1 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/auth.go:55.9,61.3 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/cache_worker.go:12.19,15.46 2 4
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/cache_worker.go:21.2,21.44 1 4
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/cache_worker.go:15.46,16.36 1 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/cache_worker.go:16.36,18.4 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/cache_worker.go:21.44,22.36 1 4
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/cache_worker.go:22.36,24.4 1 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/cache_worker.go:27.42,29.2 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/good_release.go:11.72,12.53 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/good_release.go:12.53,14.3 1 5
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/good_release.go:17.51,20.2 2 7
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/product_cache.go:21.13,23.2 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/product_cache.go:25.42,26.46 1 2
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/product_cache.go:30.2,33.16 4 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/product_cache.go:39.2,39.43 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/product_cache.go:26.46,28.3 1 1
|
||||||
|
github.com/genofire/hs_master-kss-monolith/runtime/product_cache.go:33.16,38.3 1 1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
|
@ -1,17 +1,13 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/worker"
|
"github.com/genofire/hs_master-kss-monolith/lib/worker"
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
var CacheConfig CacheWorkerConfig
|
var CacheConfig models.CacheWorkerConfig
|
||||||
|
|
||||||
type CacheWorkerConfig struct {
|
|
||||||
Every Duration
|
|
||||||
After Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
func CleanCache() {
|
func CleanCache() {
|
||||||
before := time.Now().Add(-CacheConfig.After.Duration)
|
before := time.Now().Add(-CacheConfig.After.Duration)
|
|
@ -1,8 +1,10 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCacheWorker(t *testing.T) {
|
func TestCacheWorker(t *testing.T) {
|
||||||
|
@ -13,9 +15,9 @@ func TestCacheWorker(t *testing.T) {
|
||||||
session: "blub",
|
session: "blub",
|
||||||
permissions: make(map[Permission]boolMicroServiceCache),
|
permissions: make(map[Permission]boolMicroServiceCache),
|
||||||
}
|
}
|
||||||
CacheConfig = CacheWorkerConfig{
|
CacheConfig = models.CacheWorkerConfig{
|
||||||
Every: Duration{Duration: time.Duration(3) * time.Millisecond},
|
Every: models.Duration{Duration: time.Duration(3) * time.Millisecond},
|
||||||
After: Duration{Duration: time.Duration(5) * time.Millisecond},
|
After: models.Duration{Duration: time.Duration(5) * time.Millisecond},
|
||||||
}
|
}
|
||||||
cw := NewCacheWorker()
|
cw := NewCacheWorker()
|
||||||
go cw.Start()
|
go cw.Start()
|
|
@ -0,0 +1,20 @@
|
||||||
|
package runtime
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/lib/worker"
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
func NewGoodReleaseWorker(grc models.GoodReleaseConfig) *worker.Worker {
|
||||||
|
return worker.NewWorker(grc.Every.Duration, func() {
|
||||||
|
goodRelease(grc.After.Duration)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func goodRelease(unlockAfter time.Duration) int64 {
|
||||||
|
res := database.Write.Model(&models.Good{}).Where("locked_secret is not NULL and locked_at < ?", time.Now().Add(-unlockAfter)).Updates(map[string]interface{}{"locked_secret": "", "locked_at": nil})
|
||||||
|
return res.RowsAffected
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -7,6 +7,7 @@ import (
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
||||||
|
"github.com/genofire/hs_master-kss-monolith/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGoodRelease(t *testing.T) {
|
func TestGoodRelease(t *testing.T) {
|
||||||
|
@ -17,7 +18,7 @@ func TestGoodRelease(t *testing.T) {
|
||||||
Connection: ":memory:",
|
Connection: ":memory:",
|
||||||
})
|
})
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
good := Good{
|
good := models.Good{
|
||||||
LockedAt: &now,
|
LockedAt: &now,
|
||||||
LockedSecret: "never used",
|
LockedSecret: "never used",
|
||||||
}
|
}
|
||||||
|
@ -31,9 +32,9 @@ func TestGoodRelease(t *testing.T) {
|
||||||
count = goodRelease(time.Duration(3) * time.Second)
|
count = goodRelease(time.Duration(3) * time.Second)
|
||||||
assert.Equal(int64(1), count, "unlock after timeout")
|
assert.Equal(int64(1), count, "unlock after timeout")
|
||||||
|
|
||||||
grw := NewGoodReleaseWorker(GoodReleaseConfig{
|
grw := NewGoodReleaseWorker(models.GoodReleaseConfig{
|
||||||
Every: Duration{Duration: time.Duration(3) * time.Millisecond},
|
Every: models.Duration{Duration: time.Duration(3) * time.Millisecond},
|
||||||
After: Duration{Duration: time.Duration(5) * time.Millisecond},
|
After: models.Duration{Duration: time.Duration(5) * time.Millisecond},
|
||||||
})
|
})
|
||||||
go grw.Start()
|
go grw.Start()
|
||||||
time.Sleep(time.Duration(15) * time.Millisecond)
|
time.Sleep(time.Duration(15) * time.Millisecond)
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
type Product struct {
|
type Product struct {
|
||||||
ID int64
|
ID int64
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
Reference in New Issue